From 312186a70857a9ae3d32210f16ab748d1f02eb21 Mon Sep 17 00:00:00 2001 From: Chirag Aggarwal Date: Wed, 22 Jul 2026 16:29:08 +0530 Subject: [PATCH] feat: update 1.9.x specs --- .../java/account/delete-consent-token.md | 25 + .../java/account/delete-consent.md | 24 + .../java/account/get-consent-token.md | 25 + .../java/account/get-consent.md | 24 + .../java/account/list-consent-tokens.md | 26 + .../java/account/list-consents.md | 25 + .../kotlin/account/delete-consent-token.md | 16 + .../kotlin/account/delete-consent.md | 15 + .../kotlin/account/get-consent-token.md | 16 + .../kotlin/account/get-consent.md | 15 + .../kotlin/account/list-consent-tokens.md | 17 + .../kotlin/account/list-consents.md | 16 + .../examples/account/delete-consent-token.md | 15 + .../examples/account/delete-consent.md | 14 + .../examples/account/get-consent-token.md | 15 + .../examples/account/get-consent.md | 14 + .../examples/account/list-consent-tokens.md | 16 + .../examples/account/list-consents.md | 15 + .../examples/account/delete-consent-token.md | 14 + .../examples/account/delete-consent.md | 13 + .../examples/account/get-consent-token.md | 14 + .../examples/account/get-consent.md | 13 + .../examples/account/list-consent-tokens.md | 15 + .../examples/account/list-consents.md | 14 + .../examples/account/delete-consent-token.md | 18 + .../examples/account/delete-consent.md | 16 + .../examples/account/get-consent-token.md | 20 + .../examples/account/get-consent.md | 18 + .../examples/account/list-consent-tokens.md | 24 + .../examples/account/list-consents.md | 22 + .../client-graphql/examples/locale/get.md | 11 + .../examples/account/delete-consent-token.md | 16 + .../examples/account/delete-consent.md | 15 + .../examples/account/get-consent-token.md | 16 + .../examples/account/get-consent.md | 15 + .../examples/account/list-consent-tokens.md | 17 + .../examples/account/list-consents.md | 16 + .../examples/account/delete-consent-token.md | 10 + .../examples/account/delete-consent.md | 10 + .../examples/account/get-consent-token.md | 8 + .../examples/account/get-consent.md | 8 + .../examples/account/list-consent-tokens.md | 8 + .../examples/account/list-consents.md | 8 + .../examples/account/delete-consent-token.md | 16 + .../examples/account/delete-consent.md | 15 + .../examples/account/get-consent-token.md | 16 + .../examples/account/get-consent.md | 15 + .../examples/account/list-consent-tokens.md | 17 + .../examples/account/list-consents.md | 16 + .../examples/account/delete-consent-token.md | 5 + .../examples/account/delete-consent.md | 4 + .../examples/account/get-consent-token.md | 5 + .../examples/account/get-consent.md | 4 + .../examples/account/list-consent-tokens.md | 5 + .../examples/account/list-consents.md | 4 + .../examples/health/get-geo-premium.md | 3 + .../console-cli/examples/health/get-geo.md | 3 + .../health/get-queue-notifications.md | 3 + .../examples/migrations/create-csv-export.md | 3 +- .../examples/migrations/create-csv-import.md | 3 +- .../examples/migrations/create-json-export.md | 3 +- .../examples/migrations/create-json-import.md | 3 +- .../examples/notifications/list.md | 4 + .../examples/notifications/update.md | 5 + .../examples/oauth2/authorize-post.md | 3 + .../console-cli/examples/oauth2/authorize.md | 6 +- .../console-cli/examples/oauth2/create-par.md | 6 + .../examples/oauth2/list-organizations.md | 3 + .../examples/oauth2/list-projects.md | 3 + .../examples/oauth2/logout-post.md | 3 + .../organization/create-membership.md | 4 + .../organization/delete-membership.md | 4 + .../examples/organization/delete.md | 3 + .../examples/organization/get-membership.md | 4 + .../console-cli/examples/organization/get.md | 3 + .../examples/organization/list-memberships.md | 4 + .../organization/update-membership.md | 5 + .../examples/organization/update.md | 4 + .../create-premium-geo-db-addon.md | 4 + .../project/update-o-auth-2-appwrite.md | 3 + .../projects/confirm-addon-payment.md | 5 + .../projects/create-premium-geo-db-addon.md | 4 + .../examples/projects/delete-addon.md | 5 + .../examples/projects/get-addon-price.md | 5 + .../examples/projects/get-addon.md | 5 + .../examples/projects/list-addons.md | 4 + .../examples/projects/list-stages.md | 4 + .../examples/projects/update-stage.md | 5 + .../examples/tablesdb/create-failover.md | 4 + .../examples/tablesdb/create-migration.md | 5 + .../examples/tablesdb/delete-migration.md | 5 + .../examples/tablesdb/get-migration.md | 5 + .../examples/tablesdb/get-replicas.md | 4 + .../examples/tablesdb/get-status.md | 4 + .../examples/tablesdb/list-migrations.md | 4 + .../examples/tablesdb/list-specifications.md | 3 + .../examples/waf/create-bypass-rule.md | 6 + .../examples/waf/create-deny-rule.md | 6 + .../examples/waf/create-rate-limit-rule.md | 8 + .../examples/waf/create-redirect-rule.md | 8 + .../console-cli/examples/waf/delete-rule.md | 4 + .../console-cli/examples/waf/get-rule.md | 4 + .../console-cli/examples/waf/list-rules.md | 4 + .../examples/waf/update-bypass-rule.md | 4 + .../examples/waf/update-deny-rule.md | 4 + .../examples/waf/update-rate-limit-rule.md | 4 + .../examples/waf/update-redirect-rule.md | 4 + .../examples/account/delete-consent-token.md | 16 + .../examples/account/delete-consent.md | 15 + .../examples/account/get-consent-token.md | 16 + .../examples/account/get-consent.md | 15 + .../examples/account/list-consent-tokens.md | 17 + .../examples/account/list-consents.md | 16 + .../examples/apps/list-o-auth-2-scopes.md | 13 + .../examples/apps/update-labels.md | 16 + .../examples/console/list-databases.md | 17 + .../console/list-postgres-extensions.md | 13 + .../examples/documentsdb/create-failover.md | 16 + .../examples/documentsdb/create.md | 3 +- .../examples/documentsdb/get-replicas.md | 15 + .../examples/documentsdb/get-status.md | 15 + .../documentsdb/list-specifications.md | 13 + .../examples/documentsdb/update.md | 3 +- .../examples/domains/update-nameservers.md | 3 +- .../examples/domains/verify-nameservers.md | 15 + .../functions/get-deployment-download.md | 3 +- .../examples/health/get-geo-premium.md | 13 + .../console-web/examples/health/get-geo.md | 13 + .../health/get-queue-notifications.md | 15 + .../examples/manager/create-block.md | 3 +- .../examples/migrations/create-csv-export.md | 3 +- .../examples/migrations/create-csv-import.md | 3 +- .../examples/migrations/create-json-export.md | 3 +- .../examples/migrations/create-json-import.md | 3 +- .../examples/mongo/create-backup-policy.md | 21 + .../examples/mongo/create-backup.md | 16 + .../examples/mongo/create-branch.md | 17 + .../examples/mongo/create-failover.md | 16 + .../examples/mongo/create-migration.md | 17 + .../examples/mongo/create-restoration.md | 18 + .../examples/mongo/create-upgrade.md | 16 + .../console-web/examples/mongo/create.md | 30 + .../examples/mongo/delete-backup-policy.md | 16 + .../examples/mongo/delete-backup.md | 16 + .../examples/mongo/delete-branch.md | 16 + .../console-web/examples/mongo/delete.md | 15 + .../examples/mongo/get-backup-policy.md | 16 + .../console-web/examples/mongo/get-backup.md | 16 + .../console-web/examples/mongo/get-pitr.md | 15 + .../examples/mongo/get-replicas.md | 15 + .../examples/mongo/get-restoration.md | 16 + .../console-web/examples/mongo/get-status.md | 15 + .../1.9.x/console-web/examples/mongo/get.md | 15 + .../examples/mongo/list-backup-policies.md | 16 + .../examples/mongo/list-backups.md | 16 + .../examples/mongo/list-branches.md | 15 + .../examples/mongo/list-restorations.md | 19 + .../examples/mongo/list-specifications.md | 13 + .../1.9.x/console-web/examples/mongo/list.md | 15 + .../examples/mongo/update-backup-policy.md | 20 + .../examples/mongo/update-backup-storage.md | 22 + .../examples/mongo/update-credentials.md | 15 + .../examples/mongo/update-maintenance.md | 17 + .../console-web/examples/mongo/update.md | 37 + .../examples/mysql/create-backup-policy.md | 21 + .../examples/mysql/create-backup.md | 16 + .../examples/mysql/create-branch.md | 17 + .../examples/mysql/create-execution.md | 18 + .../examples/mysql/create-failover.md | 16 + .../examples/mysql/create-migration.md | 17 + .../examples/mysql/create-restoration.md | 18 + .../examples/mysql/create-upgrade.md | 16 + .../console-web/examples/mysql/create.md | 30 + .../examples/mysql/delete-backup-policy.md | 16 + .../examples/mysql/delete-backup.md | 16 + .../examples/mysql/delete-branch.md | 16 + .../console-web/examples/mysql/delete.md | 15 + .../examples/mysql/get-backup-policy.md | 16 + .../console-web/examples/mysql/get-backup.md | 16 + .../console-web/examples/mysql/get-pitr.md | 15 + .../console-web/examples/mysql/get-pooler.md | 15 + .../examples/mysql/get-replicas.md | 15 + .../examples/mysql/get-restoration.md | 16 + .../console-web/examples/mysql/get-status.md | 15 + .../1.9.x/console-web/examples/mysql/get.md | 15 + .../examples/mysql/list-backup-policies.md | 16 + .../examples/mysql/list-backups.md | 16 + .../examples/mysql/list-branches.md | 15 + .../examples/mysql/list-restorations.md | 19 + .../examples/mysql/list-specifications.md | 13 + .../1.9.x/console-web/examples/mysql/list.md | 15 + .../examples/mysql/update-backup-policy.md | 20 + .../examples/mysql/update-backup-storage.md | 22 + .../examples/mysql/update-credentials.md | 15 + .../examples/mysql/update-maintenance.md | 17 + .../examples/mysql/update-pooler.md | 23 + .../console-web/examples/mysql/update.md | 37 + .../examples/notifications/list.md | 15 + .../examples/notifications/update.md | 16 + .../console-web/examples/oauth2/approve.md | 3 +- .../examples/oauth2/authorize-post.md | 28 + .../console-web/examples/oauth2/authorize.md | 12 +- .../oauth2/create-device-authorization.md | 3 +- .../console-web/examples/oauth2/create-par.md | 27 + .../examples/oauth2/create-token.md | 3 +- .../examples/oauth2/list-organizations.md | 17 + .../examples/oauth2/list-projects.md | 17 + .../examples/oauth2/logout-post.md | 20 + .../organization/create-membership.md | 20 + .../organization/delete-membership.md | 15 + .../examples/organization/delete.md | 13 + .../examples/organization/get-membership.md | 15 + .../console-web/examples/organization/get.md | 13 + .../examples/organization/list-memberships.md | 17 + .../organization/update-membership.md | 16 + .../examples/organization/update.md | 15 + .../create-premium-geo-db-addon.md | 15 + .../postgresql/create-backup-policy.md | 21 + .../examples/postgresql/create-backup.md | 16 + .../examples/postgresql/create-branch.md | 17 + .../examples/postgresql/create-execution.md | 18 + .../examples/postgresql/create-extension.md | 16 + .../examples/postgresql/create-failover.md | 16 + .../examples/postgresql/create-migration.md | 17 + .../examples/postgresql/create-restoration.md | 18 + .../examples/postgresql/create-upgrade.md | 16 + .../console-web/examples/postgresql/create.md | 30 + .../postgresql/delete-backup-policy.md | 16 + .../examples/postgresql/delete-backup.md | 16 + .../examples/postgresql/delete-branch.md | 16 + .../examples/postgresql/delete-extension.md | 16 + .../console-web/examples/postgresql/delete.md | 15 + .../examples/postgresql/get-backup-policy.md | 16 + .../examples/postgresql/get-backup.md | 16 + .../examples/postgresql/get-pitr.md | 15 + .../examples/postgresql/get-pooler.md | 15 + .../examples/postgresql/get-replicas.md | 15 + .../examples/postgresql/get-restoration.md | 16 + .../examples/postgresql/get-status.md | 15 + .../console-web/examples/postgresql/get.md | 15 + .../postgresql/list-backup-policies.md | 16 + .../examples/postgresql/list-backups.md | 16 + .../examples/postgresql/list-branches.md | 15 + .../examples/postgresql/list-extensions.md | 15 + .../examples/postgresql/list-restorations.md | 19 + .../postgresql/list-specifications.md | 13 + .../console-web/examples/postgresql/list.md | 15 + .../postgresql/update-backup-policy.md | 20 + .../postgresql/update-backup-storage.md | 22 + .../examples/postgresql/update-credentials.md | 15 + .../examples/postgresql/update-maintenance.md | 17 + .../examples/postgresql/update-pooler.md | 23 + .../console-web/examples/postgresql/update.md | 37 + .../project/update-o-auth-2-appwrite.md | 17 + .../examples/project/update-o-auth-2-oidc.md | 4 +- .../project/update-o-auth-2-server.md | 3 +- .../projects/confirm-addon-payment.md | 16 + .../projects/create-premium-geo-db-addon.md | 15 + .../examples/projects/delete-addon.md | 16 + .../examples/projects/get-addon-price.md | 16 + .../examples/projects/get-addon.md | 16 + .../examples/projects/list-addons.md | 15 + .../examples/projects/list-stages.md | 15 + .../examples/projects/update-stage.md | 17 + .../examples/sites/get-deployment-download.md | 3 +- .../examples/tablesdb/create-failover.md | 16 + .../examples/tablesdb/create-migration.md | 16 + .../console-web/examples/tablesdb/create.md | 3 +- .../examples/tablesdb/delete-migration.md | 16 + .../examples/tablesdb/get-migration.md | 16 + .../examples/tablesdb/get-replicas.md | 15 + .../examples/tablesdb/get-status.md | 15 + .../examples/tablesdb/list-migrations.md | 15 + .../examples/tablesdb/list-specifications.md | 13 + .../console-web/examples/tablesdb/update.md | 3 +- .../console-web/examples/usage/list-events.md | 3 +- .../console-web/examples/usage/list-gauges.md | 3 +- .../examples/vectorsdb/create-failover.md | 16 + .../console-web/examples/vectorsdb/create.md | 3 +- .../examples/vectorsdb/get-replicas.md | 15 + .../examples/vectorsdb/get-status.md | 15 + .../examples/vectorsdb/list-specifications.md | 13 + .../console-web/examples/vectorsdb/update.md | 3 +- .../examples/waf/create-bypass-rule.md | 22 + .../examples/waf/create-deny-rule.md | 22 + .../examples/waf/create-rate-limit-rule.md | 24 + .../examples/waf/create-redirect-rule.md | 24 + .../console-web/examples/waf/delete-rule.md | 15 + .../console-web/examples/waf/get-rule.md | 15 + .../console-web/examples/waf/list-rules.md | 17 + .../examples/waf/update-bypass-rule.md | 22 + .../examples/waf/update-deny-rule.md | 22 + .../examples/waf/update-rate-limit-rule.md | 24 + .../examples/waf/update-redirect-rule.md | 24 + .../examples/account/delete-consent-token.md | 15 + .../examples/account/delete-consent.md | 14 + .../examples/account/get-consent-token.md | 15 + .../examples/account/get-consent.md | 14 + .../examples/account/list-consent-tokens.md | 16 + .../examples/account/list-consents.md | 15 + .../functions/get-deployment-download.md | 1 + .../examples/health/get-geo-premium.md | 12 + .../server-dart/examples/health/get-geo.md | 12 + .../health/get-queue-notifications.md | 14 + .../organization/create-membership.md | 19 + .../organization/delete-membership.md | 14 + .../examples/organization/delete.md | 12 + .../examples/organization/get-membership.md | 14 + .../server-dart/examples/organization/get.md | 12 + .../examples/organization/list-memberships.md | 16 + .../organization/update-membership.md | 15 + .../examples/organization/update.md | 14 + .../project/update-o-auth-2-appwrite.md | 16 + .../examples/project/update-o-auth-2-oidc.md | 3 + .../project/update-o-auth-2-server.md | 1 + .../examples/sites/get-deployment-download.md | 1 + .../examples/tablesdb/create-failover.md | 15 + .../server-dart/examples/tablesdb/create.md | 3 +- .../examples/tablesdb/get-replicas.md | 14 + .../examples/tablesdb/get-status.md | 14 + .../examples/tablesdb/list-specifications.md | 12 + .../server-dart/examples/tablesdb/update.md | 1 + .../server-dart/examples/usage/list-events.md | 3 +- .../server-dart/examples/usage/list-gauges.md | 3 +- .../examples/account/delete-consent-token.md | 16 + .../examples/account/delete-consent.md | 15 + .../examples/account/get-consent-token.md | 16 + .../examples/account/get-consent.md | 15 + .../examples/account/list-consent-tokens.md | 17 + .../examples/account/list-consents.md | 16 + .../functions/get-deployment-download.md | 3 +- .../examples/health/get-geo-premium.md | 14 + .../server-dotnet/examples/health/get-geo.md | 14 + .../health/get-queue-notifications.md | 15 + .../organization/create-membership.md | 20 + .../organization/delete-membership.md | 15 + .../examples/organization/delete.md | 14 + .../examples/organization/get-membership.md | 15 + .../examples/organization/get.md | 14 + .../examples/organization/list-memberships.md | 17 + .../organization/update-membership.md | 16 + .../examples/organization/update.md | 15 + .../project/update-o-auth-2-appwrite.md | 17 + .../examples/project/update-o-auth-2-oidc.md | 3 + .../project/update-o-auth-2-server.md | 3 +- .../examples/sites/get-deployment-download.md | 3 +- .../examples/tablesdb/create-failover.md | 16 + .../server-dotnet/examples/tablesdb/create.md | 3 +- .../examples/tablesdb/get-replicas.md | 15 + .../examples/tablesdb/get-status.md | 15 + .../examples/tablesdb/list-specifications.md | 14 + .../server-dotnet/examples/tablesdb/update.md | 3 +- .../examples/usage/list-events.md | 3 +- .../examples/usage/list-gauges.md | 3 +- .../account/create-anonymous-session.md | 4 +- .../account/create-email-password-session.md | 4 +- .../examples/account/create-email-token.md | 4 +- .../account/create-email-verification.md | 4 +- .../server-go/examples/account/create-jwt.md | 4 +- .../account/create-magic-url-token.md | 4 +- .../account/create-mfa-authenticator.md | 4 +- .../examples/account/create-mfa-challenge.md | 4 +- .../account/create-mfa-recovery-codes.md | 4 +- .../examples/account/create-o-auth-2-token.md | 4 +- .../examples/account/create-phone-token.md | 4 +- .../account/create-phone-verification.md | 4 +- .../examples/account/create-recovery.md | 4 +- .../examples/account/create-session.md | 4 +- .../examples/account/create-verification.md | 4 +- .../server-go/examples/account/create.md | 4 +- .../examples/account/delete-consent-token.md | 22 + .../examples/account/delete-consent.md | 21 + .../examples/account/delete-identity.md | 4 +- .../account/delete-mfa-authenticator.md | 4 +- .../examples/account/delete-session.md | 4 +- .../examples/account/delete-sessions.md | 4 +- .../examples/account/get-consent-token.md | 22 + .../server-go/examples/account/get-consent.md | 21 + .../account/get-mfa-recovery-codes.md | 4 +- .../server-go/examples/account/get-prefs.md | 4 +- .../server-go/examples/account/get-session.md | 4 +- .../1.9.x/server-go/examples/account/get.md | 4 +- .../examples/account/list-consent-tokens.md | 23 + .../examples/account/list-consents.md | 22 + .../examples/account/list-identities.md | 4 +- .../server-go/examples/account/list-logs.md | 4 +- .../examples/account/list-mfa-factors.md | 4 +- .../examples/account/list-sessions.md | 4 +- .../account/update-email-verification.md | 4 +- .../examples/account/update-email.md | 4 +- .../account/update-magic-url-session.md | 4 +- .../account/update-mfa-authenticator.md | 4 +- .../examples/account/update-mfa-challenge.md | 4 +- .../account/update-mfa-recovery-codes.md | 4 +- .../server-go/examples/account/update-mfa.md | 4 +- .../server-go/examples/account/update-name.md | 4 +- .../examples/account/update-password.md | 4 +- .../examples/account/update-phone-session.md | 4 +- .../account/update-phone-verification.md | 4 +- .../examples/account/update-phone.md | 4 +- .../examples/account/update-prefs.md | 4 +- .../examples/account/update-recovery.md | 4 +- .../examples/account/update-session.md | 4 +- .../examples/account/update-status.md | 4 +- .../examples/account/update-verification.md | 4 +- .../examples/activities/get-event.md | 4 +- .../examples/activities/list-events.md | 4 +- .../examples/advisor/delete-report.md | 4 +- .../server-go/examples/advisor/get-insight.md | 4 +- .../server-go/examples/advisor/get-report.md | 4 +- .../examples/advisor/list-insights.md | 4 +- .../examples/advisor/list-reports.md | 4 +- .../server-go/examples/avatars/get-browser.md | 4 +- .../examples/avatars/get-credit-card.md | 4 +- .../server-go/examples/avatars/get-favicon.md | 4 +- .../server-go/examples/avatars/get-flag.md | 4 +- .../server-go/examples/avatars/get-image.md | 4 +- .../examples/avatars/get-initials.md | 4 +- .../server-go/examples/avatars/get-qr.md | 4 +- .../examples/avatars/get-screenshot.md | 4 +- .../examples/backups/create-archive.md | 4 +- .../examples/backups/create-policy.md | 4 +- .../examples/backups/create-restoration.md | 4 +- .../examples/backups/delete-archive.md | 4 +- .../examples/backups/delete-policy.md | 4 +- .../server-go/examples/backups/get-archive.md | 4 +- .../server-go/examples/backups/get-policy.md | 4 +- .../examples/backups/get-restoration.md | 4 +- .../examples/backups/list-archives.md | 4 +- .../examples/backups/list-policies.md | 4 +- .../examples/backups/list-restorations.md | 4 +- .../examples/backups/update-policy.md | 4 +- .../databases/create-big-int-attribute.md | 4 +- .../databases/create-boolean-attribute.md | 4 +- .../examples/databases/create-collection.md | 4 +- .../databases/create-datetime-attribute.md | 4 +- .../examples/databases/create-document.md | 4 +- .../examples/databases/create-documents.md | 4 +- .../databases/create-email-attribute.md | 4 +- .../databases/create-enum-attribute.md | 4 +- .../databases/create-float-attribute.md | 4 +- .../examples/databases/create-index.md | 4 +- .../databases/create-integer-attribute.md | 4 +- .../examples/databases/create-ip-attribute.md | 4 +- .../databases/create-line-attribute.md | 4 +- .../databases/create-longtext-attribute.md | 4 +- .../databases/create-mediumtext-attribute.md | 4 +- .../examples/databases/create-operations.md | 4 +- .../databases/create-point-attribute.md | 4 +- .../databases/create-polygon-attribute.md | 4 +- .../create-relationship-attribute.md | 4 +- .../databases/create-string-attribute.md | 4 +- .../databases/create-text-attribute.md | 4 +- .../examples/databases/create-transaction.md | 4 +- .../databases/create-url-attribute.md | 4 +- .../databases/create-varchar-attribute.md | 4 +- .../server-go/examples/databases/create.md | 4 +- .../databases/decrement-document-attribute.md | 4 +- .../examples/databases/delete-attribute.md | 4 +- .../examples/databases/delete-collection.md | 4 +- .../examples/databases/delete-document.md | 4 +- .../examples/databases/delete-documents.md | 4 +- .../examples/databases/delete-index.md | 4 +- .../examples/databases/delete-transaction.md | 4 +- .../server-go/examples/databases/delete.md | 4 +- .../examples/databases/get-attribute.md | 4 +- .../examples/databases/get-collection.md | 4 +- .../examples/databases/get-document.md | 4 +- .../server-go/examples/databases/get-index.md | 4 +- .../examples/databases/get-transaction.md | 4 +- .../1.9.x/server-go/examples/databases/get.md | 4 +- .../databases/increment-document-attribute.md | 4 +- .../examples/databases/list-attributes.md | 4 +- .../examples/databases/list-collections.md | 4 +- .../examples/databases/list-documents.md | 4 +- .../examples/databases/list-indexes.md | 4 +- .../examples/databases/list-transactions.md | 4 +- .../server-go/examples/databases/list.md | 4 +- .../databases/update-big-int-attribute.md | 4 +- .../databases/update-boolean-attribute.md | 4 +- .../examples/databases/update-collection.md | 4 +- .../databases/update-datetime-attribute.md | 4 +- .../examples/databases/update-document.md | 4 +- .../examples/databases/update-documents.md | 4 +- .../databases/update-email-attribute.md | 4 +- .../databases/update-enum-attribute.md | 4 +- .../databases/update-float-attribute.md | 4 +- .../databases/update-integer-attribute.md | 4 +- .../examples/databases/update-ip-attribute.md | 4 +- .../databases/update-line-attribute.md | 4 +- .../databases/update-longtext-attribute.md | 4 +- .../databases/update-mediumtext-attribute.md | 4 +- .../databases/update-point-attribute.md | 4 +- .../databases/update-polygon-attribute.md | 4 +- .../update-relationship-attribute.md | 4 +- .../databases/update-string-attribute.md | 4 +- .../databases/update-text-attribute.md | 4 +- .../examples/databases/update-transaction.md | 4 +- .../databases/update-url-attribute.md | 4 +- .../databases/update-varchar-attribute.md | 4 +- .../server-go/examples/databases/update.md | 4 +- .../examples/databases/upsert-document.md | 4 +- .../examples/databases/upsert-documents.md | 4 +- .../examples/functions/create-deployment.md | 4 +- .../functions/create-duplicate-deployment.md | 4 +- .../examples/functions/create-execution.md | 4 +- .../functions/create-template-deployment.md | 4 +- .../examples/functions/create-variable.md | 4 +- .../functions/create-vcs-deployment.md | 4 +- .../server-go/examples/functions/create.md | 4 +- .../examples/functions/delete-deployment.md | 4 +- .../examples/functions/delete-execution.md | 4 +- .../examples/functions/delete-variable.md | 4 +- .../server-go/examples/functions/delete.md | 4 +- .../functions/get-deployment-download.md | 5 +- .../examples/functions/get-deployment.md | 4 +- .../examples/functions/get-execution.md | 4 +- .../examples/functions/get-variable.md | 4 +- .../1.9.x/server-go/examples/functions/get.md | 4 +- .../examples/functions/list-deployments.md | 4 +- .../examples/functions/list-executions.md | 4 +- .../examples/functions/list-runtimes.md | 4 +- .../examples/functions/list-specifications.md | 4 +- .../examples/functions/list-variables.md | 4 +- .../server-go/examples/functions/list.md | 4 +- .../functions/update-deployment-status.md | 4 +- .../functions/update-function-deployment.md | 4 +- .../examples/functions/update-variable.md | 4 +- .../server-go/examples/functions/update.md | 4 +- .../server-go/examples/graphql/mutation.md | 4 +- .../1.9.x/server-go/examples/graphql/query.md | 4 +- .../examples/health/get-geo-premium.md | 19 + .../server-go/examples/health/get-geo.md | 19 + .../health/get-queue-notifications.md | 21 + .../1.9.x/server-go/examples/locale/get.md | 4 +- .../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 +- .../messaging/create-apns-provider.md | 4 +- .../examples/messaging/create-email.md | 4 +- .../examples/messaging/create-fcm-provider.md | 4 +- .../messaging/create-mailgun-provider.md | 4 +- .../messaging/create-msg-91-provider.md | 4 +- .../examples/messaging/create-push.md | 4 +- .../messaging/create-resend-provider.md | 4 +- .../messaging/create-sendgrid-provider.md | 4 +- .../examples/messaging/create-ses-provider.md | 4 +- .../examples/messaging/create-sms.md | 4 +- .../messaging/create-smtp-provider.md | 4 +- .../examples/messaging/create-subscriber.md | 4 +- .../messaging/create-telesign-provider.md | 4 +- .../messaging/create-textmagic-provider.md | 4 +- .../examples/messaging/create-topic.md | 4 +- .../messaging/create-twilio-provider.md | 4 +- .../messaging/create-vonage-provider.md | 4 +- .../examples/messaging/delete-provider.md | 4 +- .../examples/messaging/delete-subscriber.md | 4 +- .../examples/messaging/delete-topic.md | 4 +- .../server-go/examples/messaging/delete.md | 4 +- .../examples/messaging/get-message.md | 4 +- .../examples/messaging/get-provider.md | 4 +- .../examples/messaging/get-subscriber.md | 4 +- .../server-go/examples/messaging/get-topic.md | 4 +- .../examples/messaging/list-messages.md | 4 +- .../examples/messaging/list-providers.md | 4 +- .../examples/messaging/list-subscribers.md | 4 +- .../examples/messaging/list-targets.md | 4 +- .../examples/messaging/list-topics.md | 4 +- .../messaging/update-apns-provider.md | 4 +- .../examples/messaging/update-email.md | 4 +- .../examples/messaging/update-fcm-provider.md | 4 +- .../messaging/update-mailgun-provider.md | 4 +- .../messaging/update-msg-91-provider.md | 4 +- .../examples/messaging/update-push.md | 4 +- .../messaging/update-resend-provider.md | 4 +- .../messaging/update-sendgrid-provider.md | 4 +- .../examples/messaging/update-ses-provider.md | 4 +- .../examples/messaging/update-sms.md | 4 +- .../messaging/update-smtp-provider.md | 4 +- .../messaging/update-telesign-provider.md | 4 +- .../messaging/update-textmagic-provider.md | 4 +- .../examples/messaging/update-topic.md | 4 +- .../messaging/update-twilio-provider.md | 4 +- .../messaging/update-vonage-provider.md | 4 +- .../examples/mongo/create-backup-policy.md | 27 + .../server-go/examples/mongo/create-backup.md | 22 + .../server-go/examples/mongo/create-branch.md | 23 + .../examples/mongo/create-failover.md | 22 + .../examples/mongo/create-migration.md | 23 + .../examples/mongo/create-restoration.md | 24 + .../examples/mongo/create-upgrade.md | 22 + .../1.9.x/server-go/examples/mongo/create.md | 35 + .../examples/mongo/delete-backup-policy.md | 22 + .../server-go/examples/mongo/delete-backup.md | 22 + .../server-go/examples/mongo/delete-branch.md | 22 + .../1.9.x/server-go/examples/mongo/delete.md | 21 + .../examples/mongo/get-backup-policy.md | 22 + .../server-go/examples/mongo/get-backup.md | 22 + .../server-go/examples/mongo/get-pitr.md | 21 + .../server-go/examples/mongo/get-replicas.md | 21 + .../examples/mongo/get-restoration.md | 22 + .../server-go/examples/mongo/get-status.md | 21 + .../1.9.x/server-go/examples/mongo/get.md | 21 + .../examples/mongo/list-backup-policies.md | 22 + .../server-go/examples/mongo/list-backups.md | 22 + .../server-go/examples/mongo/list-branches.md | 21 + .../examples/mongo/list-restorations.md | 25 + .../examples/mongo/list-specifications.md | 19 + .../1.9.x/server-go/examples/mongo/list.md | 21 + .../examples/mongo/update-backup-policy.md | 26 + .../examples/mongo/update-backup-storage.md | 28 + .../examples/mongo/update-credentials.md | 21 + .../examples/mongo/update-maintenance.md | 23 + .../1.9.x/server-go/examples/mongo/update.md | 41 + .../examples/mysql/create-backup-policy.md | 27 + .../server-go/examples/mysql/create-backup.md | 22 + .../server-go/examples/mysql/create-branch.md | 23 + .../examples/mysql/create-execution.md | 24 + .../examples/mysql/create-failover.md | 22 + .../examples/mysql/create-migration.md | 23 + .../examples/mysql/create-restoration.md | 24 + .../examples/mysql/create-upgrade.md | 22 + .../1.9.x/server-go/examples/mysql/create.md | 35 + .../examples/mysql/delete-backup-policy.md | 22 + .../server-go/examples/mysql/delete-backup.md | 22 + .../server-go/examples/mysql/delete-branch.md | 22 + .../1.9.x/server-go/examples/mysql/delete.md | 21 + .../examples/mysql/get-backup-policy.md | 22 + .../server-go/examples/mysql/get-backup.md | 22 + .../server-go/examples/mysql/get-pitr.md | 21 + .../server-go/examples/mysql/get-pooler.md | 21 + .../server-go/examples/mysql/get-replicas.md | 21 + .../examples/mysql/get-restoration.md | 22 + .../server-go/examples/mysql/get-status.md | 21 + .../1.9.x/server-go/examples/mysql/get.md | 21 + .../examples/mysql/list-backup-policies.md | 22 + .../server-go/examples/mysql/list-backups.md | 22 + .../server-go/examples/mysql/list-branches.md | 21 + .../examples/mysql/list-restorations.md | 25 + .../examples/mysql/list-specifications.md | 19 + .../1.9.x/server-go/examples/mysql/list.md | 21 + .../examples/mysql/update-backup-policy.md | 26 + .../examples/mysql/update-backup-storage.md | 28 + .../examples/mysql/update-credentials.md | 21 + .../examples/mysql/update-maintenance.md | 23 + .../server-go/examples/mysql/update-pooler.md | 29 + .../1.9.x/server-go/examples/mysql/update.md | 41 + .../examples/organization/create-key.md | 4 +- .../organization/create-membership.md | 26 + .../examples/organization/create-project.md | 4 +- .../examples/organization/delete-key.md | 4 +- .../organization/delete-membership.md | 21 + .../examples/organization/delete-project.md | 4 +- .../server-go/examples/organization/delete.md | 19 + .../examples/organization/get-key.md | 4 +- .../examples/organization/get-membership.md | 21 + .../examples/organization/get-project.md | 4 +- .../server-go/examples/organization/get.md | 19 + .../examples/organization/list-keys.md | 4 +- .../examples/organization/list-memberships.md | 23 + .../examples/organization/list-projects.md | 4 +- .../examples/organization/update-key.md | 4 +- .../organization/update-membership.md | 22 + .../examples/organization/update-project.md | 4 +- .../server-go/examples/organization/update.md | 21 + .../postgresql/create-backup-policy.md | 27 + .../examples/postgresql/create-backup.md | 22 + .../examples/postgresql/create-branch.md | 23 + .../examples/postgresql/create-execution.md | 24 + .../examples/postgresql/create-extension.md | 22 + .../examples/postgresql/create-failover.md | 22 + .../examples/postgresql/create-migration.md | 23 + .../examples/postgresql/create-restoration.md | 24 + .../examples/postgresql/create-upgrade.md | 22 + .../server-go/examples/postgresql/create.md | 35 + .../postgresql/delete-backup-policy.md | 22 + .../examples/postgresql/delete-backup.md | 22 + .../examples/postgresql/delete-branch.md | 22 + .../examples/postgresql/delete-extension.md | 22 + .../server-go/examples/postgresql/delete.md | 21 + .../examples/postgresql/get-backup-policy.md | 22 + .../examples/postgresql/get-backup.md | 22 + .../server-go/examples/postgresql/get-pitr.md | 21 + .../examples/postgresql/get-pooler.md | 21 + .../examples/postgresql/get-replicas.md | 21 + .../examples/postgresql/get-restoration.md | 22 + .../examples/postgresql/get-status.md | 21 + .../server-go/examples/postgresql/get.md | 21 + .../postgresql/list-backup-policies.md | 22 + .../examples/postgresql/list-backups.md | 22 + .../examples/postgresql/list-branches.md | 21 + .../examples/postgresql/list-extensions.md | 21 + .../examples/postgresql/list-restorations.md | 25 + .../postgresql/list-specifications.md | 19 + .../server-go/examples/postgresql/list.md | 21 + .../postgresql/update-backup-policy.md | 26 + .../postgresql/update-backup-storage.md | 28 + .../examples/postgresql/update-credentials.md | 21 + .../examples/postgresql/update-maintenance.md | 23 + .../examples/postgresql/update-pooler.md | 29 + .../server-go/examples/postgresql/update.md | 41 + .../server-go/examples/presences/delete.md | 4 +- .../1.9.x/server-go/examples/presences/get.md | 4 +- .../server-go/examples/presences/list.md | 4 +- .../server-go/examples/presences/update.md | 4 +- .../server-go/examples/presences/upsert.md | 4 +- .../project/create-android-platform.md | 4 +- .../examples/project/create-apple-platform.md | 4 +- .../examples/project/create-ephemeral-key.md | 4 +- .../server-go/examples/project/create-key.md | 4 +- .../examples/project/create-linux-platform.md | 4 +- .../examples/project/create-mock-phone.md | 4 +- .../examples/project/create-smtp-test.md | 4 +- .../examples/project/create-variable.md | 4 +- .../examples/project/create-web-platform.md | 4 +- .../project/create-windows-platform.md | 4 +- .../server-go/examples/project/delete-key.md | 4 +- .../examples/project/delete-mock-phone.md | 4 +- .../examples/project/delete-platform.md | 4 +- .../examples/project/delete-variable.md | 4 +- .../server-go/examples/project/delete.md | 4 +- .../examples/project/get-email-template.md | 4 +- .../server-go/examples/project/get-key.md | 4 +- .../examples/project/get-mock-phone.md | 4 +- .../examples/project/get-o-auth-2-provider.md | 4 +- .../examples/project/get-platform.md | 4 +- .../server-go/examples/project/get-policy.md | 4 +- .../examples/project/get-variable.md | 4 +- .../1.9.x/server-go/examples/project/get.md | 4 +- .../examples/project/list-email-templates.md | 4 +- .../server-go/examples/project/list-keys.md | 4 +- .../examples/project/list-mock-phones.md | 4 +- .../project/list-o-auth-2-providers.md | 4 +- .../examples/project/list-platforms.md | 4 +- .../examples/project/list-policies.md | 4 +- .../examples/project/list-variables.md | 4 +- .../project/update-android-platform.md | 4 +- .../examples/project/update-apple-platform.md | 4 +- .../examples/project/update-auth-method.md | 4 +- .../update-deny-aliased-email-policy.md | 4 +- .../update-deny-corporate-email-policy.md | 4 +- .../update-deny-disposable-email-policy.md | 4 +- .../project/update-deny-free-email-policy.md | 4 +- .../examples/project/update-email-template.md | 4 +- .../server-go/examples/project/update-key.md | 4 +- .../examples/project/update-labels.md | 4 +- .../examples/project/update-linux-platform.md | 4 +- .../update-membership-privacy-policy.md | 4 +- .../examples/project/update-mock-phone.md | 4 +- .../project/update-o-auth-2-amazon.md | 4 +- .../examples/project/update-o-auth-2-apple.md | 4 +- .../project/update-o-auth-2-appwrite.md | 23 + .../project/update-o-auth-2-auth-0.md | 4 +- .../project/update-o-auth-2-authentik.md | 4 +- .../project/update-o-auth-2-autodesk.md | 4 +- .../project/update-o-auth-2-bitbucket.md | 4 +- .../examples/project/update-o-auth-2-bitly.md | 4 +- .../examples/project/update-o-auth-2-box.md | 4 +- .../project/update-o-auth-2-dailymotion.md | 4 +- .../project/update-o-auth-2-discord.md | 4 +- .../project/update-o-auth-2-disqus.md | 4 +- .../project/update-o-auth-2-dropbox.md | 4 +- .../examples/project/update-o-auth-2-etsy.md | 4 +- .../project/update-o-auth-2-facebook.md | 4 +- .../examples/project/update-o-auth-2-figma.md | 4 +- .../project/update-o-auth-2-fusion-auth.md | 4 +- .../project/update-o-auth-2-git-hub.md | 4 +- .../project/update-o-auth-2-gitlab.md | 4 +- .../project/update-o-auth-2-google.md | 4 +- .../project/update-o-auth-2-keycloak.md | 4 +- .../examples/project/update-o-auth-2-kick.md | 4 +- .../project/update-o-auth-2-linkedin.md | 4 +- .../project/update-o-auth-2-microsoft.md | 4 +- .../project/update-o-auth-2-notion.md | 4 +- .../examples/project/update-o-auth-2-oidc.md | 6 +- .../examples/project/update-o-auth-2-okta.md | 4 +- .../project/update-o-auth-2-paypal-sandbox.md | 4 +- .../project/update-o-auth-2-paypal.md | 4 +- .../examples/project/update-o-auth-2-podio.md | 4 +- .../project/update-o-auth-2-salesforce.md | 4 +- .../project/update-o-auth-2-server.md | 5 +- .../examples/project/update-o-auth-2-slack.md | 4 +- .../project/update-o-auth-2-spotify.md | 4 +- .../project/update-o-auth-2-stripe.md | 4 +- .../update-o-auth-2-tradeshift-sandbox.md | 4 +- .../project/update-o-auth-2-tradeshift.md | 4 +- .../project/update-o-auth-2-twitch.md | 4 +- .../project/update-o-auth-2-word-press.md | 4 +- .../examples/project/update-o-auth-2-yahoo.md | 4 +- .../project/update-o-auth-2-yandex.md | 4 +- .../examples/project/update-o-auth-2-zoho.md | 4 +- .../examples/project/update-o-auth-2-zoom.md | 4 +- .../examples/project/update-o-auth-2x.md | 4 +- .../update-password-dictionary-policy.md | 4 +- .../project/update-password-history-policy.md | 4 +- .../update-password-personal-data-policy.md | 4 +- .../update-password-strength-policy.md | 4 +- .../examples/project/update-protocol.md | 4 +- .../examples/project/update-service.md | 4 +- .../project/update-session-alert-policy.md | 4 +- .../project/update-session-duration-policy.md | 4 +- .../update-session-invalidation-policy.md | 4 +- .../project/update-session-limit-policy.md | 4 +- .../server-go/examples/project/update-smtp.md | 4 +- .../project/update-user-limit-policy.md | 4 +- .../examples/project/update-variable.md | 4 +- .../server-go/examples/project/update-waf.md | 21 + .../examples/project/update-web-platform.md | 4 +- .../project/update-windows-platform.md | 4 +- .../examples/proxy/create-api-rule.md | 4 +- .../examples/proxy/create-function-rule.md | 4 +- .../examples/proxy/create-redirect-rule.md | 4 +- .../examples/proxy/create-site-rule.md | 4 +- .../server-go/examples/proxy/delete-rule.md | 4 +- .../server-go/examples/proxy/get-rule.md | 4 +- .../server-go/examples/proxy/list-rules.md | 4 +- .../examples/proxy/update-rule-status.md | 4 +- .../examples/sites/create-deployment.md | 4 +- .../sites/create-duplicate-deployment.md | 4 +- .../sites/create-template-deployment.md | 4 +- .../examples/sites/create-variable.md | 4 +- .../examples/sites/create-vcs-deployment.md | 4 +- .../1.9.x/server-go/examples/sites/create.md | 4 +- .../examples/sites/delete-deployment.md | 4 +- .../server-go/examples/sites/delete-log.md | 4 +- .../examples/sites/delete-variable.md | 4 +- .../1.9.x/server-go/examples/sites/delete.md | 4 +- .../examples/sites/get-deployment-download.md | 5 +- .../examples/sites/get-deployment.md | 4 +- .../1.9.x/server-go/examples/sites/get-log.md | 4 +- .../server-go/examples/sites/get-variable.md | 4 +- .../1.9.x/server-go/examples/sites/get.md | 4 +- .../examples/sites/list-deployments.md | 4 +- .../examples/sites/list-frameworks.md | 4 +- .../server-go/examples/sites/list-logs.md | 4 +- .../examples/sites/list-specifications.md | 4 +- .../examples/sites/list-variables.md | 4 +- .../1.9.x/server-go/examples/sites/list.md | 4 +- .../sites/update-deployment-status.md | 4 +- .../examples/sites/update-site-deployment.md | 4 +- .../examples/sites/update-variable.md | 4 +- .../1.9.x/server-go/examples/sites/update.md | 4 +- .../examples/storage/create-bucket.md | 4 +- .../server-go/examples/storage/create-file.md | 4 +- .../examples/storage/delete-bucket.md | 4 +- .../server-go/examples/storage/delete-file.md | 4 +- .../server-go/examples/storage/get-bucket.md | 4 +- .../examples/storage/get-file-download.md | 4 +- .../examples/storage/get-file-preview.md | 4 +- .../examples/storage/get-file-view.md | 4 +- .../server-go/examples/storage/get-file.md | 4 +- .../examples/storage/list-buckets.md | 4 +- .../server-go/examples/storage/list-files.md | 4 +- .../examples/storage/update-bucket.md | 4 +- .../server-go/examples/storage/update-file.md | 4 +- .../tablesdb/create-big-int-column.md | 4 +- .../tablesdb/create-boolean-column.md | 4 +- .../tablesdb/create-datetime-column.md | 4 +- .../examples/tablesdb/create-email-column.md | 4 +- .../examples/tablesdb/create-enum-column.md | 4 +- .../examples/tablesdb/create-failover.md | 22 + .../examples/tablesdb/create-float-column.md | 4 +- .../examples/tablesdb/create-index.md | 4 +- .../tablesdb/create-integer-column.md | 4 +- .../examples/tablesdb/create-ip-column.md | 4 +- .../examples/tablesdb/create-line-column.md | 4 +- .../tablesdb/create-longtext-column.md | 4 +- .../tablesdb/create-mediumtext-column.md | 4 +- .../examples/tablesdb/create-operations.md | 4 +- .../examples/tablesdb/create-point-column.md | 4 +- .../tablesdb/create-polygon-column.md | 4 +- .../tablesdb/create-relationship-column.md | 4 +- .../server-go/examples/tablesdb/create-row.md | 4 +- .../examples/tablesdb/create-rows.md | 4 +- .../examples/tablesdb/create-string-column.md | 4 +- .../examples/tablesdb/create-table.md | 4 +- .../examples/tablesdb/create-text-column.md | 4 +- .../examples/tablesdb/create-transaction.md | 4 +- .../examples/tablesdb/create-url-column.md | 4 +- .../tablesdb/create-varchar-column.md | 4 +- .../server-go/examples/tablesdb/create.md | 7 +- .../examples/tablesdb/decrement-row-column.md | 4 +- .../examples/tablesdb/delete-column.md | 4 +- .../examples/tablesdb/delete-index.md | 4 +- .../server-go/examples/tablesdb/delete-row.md | 4 +- .../examples/tablesdb/delete-rows.md | 4 +- .../examples/tablesdb/delete-table.md | 4 +- .../examples/tablesdb/delete-transaction.md | 4 +- .../server-go/examples/tablesdb/delete.md | 4 +- .../server-go/examples/tablesdb/get-column.md | 4 +- .../server-go/examples/tablesdb/get-index.md | 4 +- .../examples/tablesdb/get-replicas.md | 21 + .../server-go/examples/tablesdb/get-row.md | 4 +- .../server-go/examples/tablesdb/get-status.md | 21 + .../server-go/examples/tablesdb/get-table.md | 4 +- .../examples/tablesdb/get-transaction.md | 4 +- .../1.9.x/server-go/examples/tablesdb/get.md | 4 +- .../examples/tablesdb/increment-row-column.md | 4 +- .../examples/tablesdb/list-columns.md | 4 +- .../examples/tablesdb/list-indexes.md | 4 +- .../server-go/examples/tablesdb/list-rows.md | 4 +- .../examples/tablesdb/list-specifications.md | 19 + .../examples/tablesdb/list-tables.md | 4 +- .../examples/tablesdb/list-transactions.md | 4 +- .../1.9.x/server-go/examples/tablesdb/list.md | 4 +- .../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 | 4 +- .../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 | 4 +- .../tablesdb/update-longtext-column.md | 4 +- .../tablesdb/update-mediumtext-column.md | 4 +- .../examples/tablesdb/update-point-column.md | 4 +- .../tablesdb/update-polygon-column.md | 4 +- .../tablesdb/update-relationship-column.md | 4 +- .../server-go/examples/tablesdb/update-row.md | 4 +- .../examples/tablesdb/update-rows.md | 4 +- .../examples/tablesdb/update-string-column.md | 4 +- .../examples/tablesdb/update-table.md | 4 +- .../examples/tablesdb/update-text-column.md | 4 +- .../examples/tablesdb/update-transaction.md | 4 +- .../examples/tablesdb/update-url-column.md | 4 +- .../tablesdb/update-varchar-column.md | 4 +- .../server-go/examples/tablesdb/update.md | 5 +- .../server-go/examples/tablesdb/upsert-row.md | 4 +- .../examples/tablesdb/upsert-rows.md | 4 +- .../examples/teams/create-membership.md | 4 +- .../1.9.x/server-go/examples/teams/create.md | 4 +- .../examples/teams/delete-membership.md | 4 +- .../1.9.x/server-go/examples/teams/delete.md | 4 +- .../examples/teams/get-membership.md | 4 +- .../server-go/examples/teams/get-prefs.md | 4 +- .../1.9.x/server-go/examples/teams/get.md | 4 +- .../examples/teams/list-memberships.md | 4 +- .../1.9.x/server-go/examples/teams/list.md | 4 +- .../teams/update-membership-status.md | 4 +- .../examples/teams/update-membership.md | 4 +- .../server-go/examples/teams/update-name.md | 4 +- .../server-go/examples/teams/update-prefs.md | 4 +- .../examples/tokens/create-file-token.md | 4 +- .../1.9.x/server-go/examples/tokens/delete.md | 4 +- .../1.9.x/server-go/examples/tokens/get.md | 4 +- .../1.9.x/server-go/examples/tokens/list.md | 4 +- .../1.9.x/server-go/examples/tokens/update.md | 4 +- .../server-go/examples/usage/list-events.md | 3 +- .../server-go/examples/usage/list-gauges.md | 3 +- .../examples/users/create-argon-2-user.md | 4 +- .../examples/users/create-bcrypt-user.md | 4 +- .../server-go/examples/users/create-jwt.md | 4 +- .../examples/users/create-md-5-user.md | 4 +- .../users/create-mfa-recovery-codes.md | 4 +- .../examples/users/create-ph-pass-user.md | 4 +- .../users/create-scrypt-modified-user.md | 4 +- .../examples/users/create-scrypt-user.md | 4 +- .../examples/users/create-session.md | 4 +- .../examples/users/create-sha-user.md | 4 +- .../server-go/examples/users/create-target.md | 4 +- .../server-go/examples/users/create-token.md | 4 +- .../1.9.x/server-go/examples/users/create.md | 4 +- .../examples/users/delete-identity.md | 4 +- .../users/delete-mfa-authenticator.md | 4 +- .../examples/users/delete-session.md | 4 +- .../examples/users/delete-sessions.md | 4 +- .../server-go/examples/users/delete-target.md | 4 +- .../1.9.x/server-go/examples/users/delete.md | 4 +- .../examples/users/get-mfa-recovery-codes.md | 4 +- .../server-go/examples/users/get-prefs.md | 4 +- .../server-go/examples/users/get-target.md | 4 +- .../1.9.x/server-go/examples/users/get.md | 4 +- .../examples/users/list-identities.md | 4 +- .../server-go/examples/users/list-logs.md | 4 +- .../examples/users/list-memberships.md | 4 +- .../examples/users/list-mfa-factors.md | 4 +- .../server-go/examples/users/list-sessions.md | 4 +- .../server-go/examples/users/list-targets.md | 4 +- .../1.9.x/server-go/examples/users/list.md | 4 +- .../users/update-email-verification.md | 4 +- .../server-go/examples/users/update-email.md | 4 +- .../examples/users/update-impersonator.md | 4 +- .../server-go/examples/users/update-labels.md | 4 +- .../users/update-mfa-recovery-codes.md | 4 +- .../server-go/examples/users/update-mfa.md | 4 +- .../server-go/examples/users/update-name.md | 4 +- .../examples/users/update-password.md | 4 +- .../users/update-phone-verification.md | 4 +- .../server-go/examples/users/update-phone.md | 4 +- .../server-go/examples/users/update-prefs.md | 4 +- .../server-go/examples/users/update-status.md | 4 +- .../server-go/examples/users/update-target.md | 4 +- .../examples/waf/create-bypass-rule.md | 28 + .../examples/waf/create-deny-rule.md | 28 + .../examples/waf/create-rate-limit-rule.md | 30 + .../examples/waf/create-redirect-rule.md | 30 + .../server-go/examples/waf/delete-rule.md | 21 + .../1.9.x/server-go/examples/waf/get-rule.md | 21 + .../server-go/examples/waf/list-rules.md | 23 + .../examples/waf/update-bypass-rule.md | 28 + .../examples/waf/update-deny-rule.md | 28 + .../examples/waf/update-rate-limit-rule.md | 30 + .../examples/waf/update-redirect-rule.md | 30 + .../server-go/examples/webhooks/create.md | 4 +- .../server-go/examples/webhooks/delete.md | 4 +- .../1.9.x/server-go/examples/webhooks/get.md | 4 +- .../1.9.x/server-go/examples/webhooks/list.md | 4 +- .../examples/webhooks/update-secret.md | 4 +- .../server-go/examples/webhooks/update.md | 4 +- .../examples/account/delete-consent-token.md | 18 + .../examples/account/delete-consent.md | 16 + .../examples/account/get-consent-token.md | 20 + .../examples/account/get-consent.md | 18 + .../examples/account/list-consent-tokens.md | 24 + .../examples/account/list-consents.md | 22 + .../examples/activities/get-event.md | 13 +- .../examples/activities/list-events.md | 13 +- .../examples/databases/create.md | 8 + .../server-graphql/examples/databases/get.md | 4 + .../server-graphql/examples/databases/list.md | 4 + .../examples/databases/update.md | 8 + .../functions/get-deployment-download.md | 3 +- .../examples/health/get-geo-premium.md | 9 + .../server-graphql/examples/health/get-geo.md | 9 + .../health/get-queue-notifications.md | 9 + .../server-graphql/examples/locale/get.md | 11 + .../organization/create-membership.md | 54 + .../examples/organization/create-project.md | 8 + .../organization/delete-membership.md | 9 + .../examples/organization/delete.md | 7 + .../examples/organization/get-membership.md | 23 + .../examples/organization/get.md | 269 + .../examples/organization/list-memberships.md | 28 + .../examples/organization/list-projects.md | 4 + .../organization/update-membership.md | 46 + .../examples/organization/update-project.md | 8 + .../examples/organization/update.md | 540 + .../examples/project/update-auth-method.md | 8 + .../update-deny-aliased-email-policy.md | 8 + .../update-deny-corporate-email-policy.md | 8 + .../update-deny-disposable-email-policy.md | 8 + .../project/update-deny-free-email-policy.md | 8 + .../examples/project/update-labels.md | 8 + .../update-membership-privacy-policy.md | 8 + .../project/update-o-auth-2-appwrite.md | 26 + .../examples/project/update-o-auth-2-oidc.md | 8 + .../project/update-o-auth-2-server.md | 14 +- .../update-password-dictionary-policy.md | 8 + .../project/update-password-history-policy.md | 8 + .../update-password-personal-data-policy.md | 8 + .../examples/project/update-protocol.md | 8 + .../examples/project/update-service.md | 8 + .../project/update-session-alert-policy.md | 8 + .../project/update-session-duration-policy.md | 8 + .../update-session-invalidation-policy.md | 8 + .../project/update-session-limit-policy.md | 8 + .../examples/project/update-smtp.md | 8 + .../project/update-user-limit-policy.md | 8 + .../examples/sites/get-deployment-download.md | 3 +- .../examples/tablesdb/create-failover.md | 114 + .../examples/tablesdb/create.md | 14 +- .../examples/tablesdb/get-replicas.md | 16 + .../examples/tablesdb/get-status.md | 29 + .../server-graphql/examples/tablesdb/get.md | 4 + .../examples/tablesdb/list-specifications.md | 25 + .../server-graphql/examples/tablesdb/list.md | 4 + .../examples/tablesdb/update.md | 14 +- .../examples/usage/list-events.md | 6 +- .../examples/usage/list-gauges.md | 6 +- .../java/account/delete-consent-token.md | 26 + .../java/account/delete-consent.md | 25 + .../java/account/get-consent-token.md | 26 + .../server-kotlin/java/account/get-consent.md | 25 + .../java/account/list-consent-tokens.md | 27 + .../java/account/list-consents.md | 26 + .../java/functions/get-deployment-download.md | 1 + .../java/health/get-geo-premium.md | 21 + .../server-kotlin/java/health/get-geo.md | 21 + .../java/health/get-queue-notifications.md | 25 + .../java/organization/create-membership.md | 30 + .../java/organization/delete-membership.md | 25 + .../server-kotlin/java/organization/delete.md | 21 + .../java/organization/get-membership.md | 25 + .../server-kotlin/java/organization/get.md | 21 + .../java/organization/list-memberships.md | 27 + .../java/organization/update-membership.md | 26 + .../server-kotlin/java/organization/update.md | 25 + .../java/project/update-o-auth-2-appwrite.md | 27 + .../java/project/update-o-auth-2-oidc.md | 3 + .../java/project/update-o-auth-2-server.md | 1 + .../java/sites/get-deployment-download.md | 1 + .../java/tablesdb/create-failover.md | 26 + .../server-kotlin/java/tablesdb/create.md | 3 +- .../java/tablesdb/get-replicas.md | 25 + .../server-kotlin/java/tablesdb/get-status.md | 25 + .../java/tablesdb/list-specifications.md | 21 + .../server-kotlin/java/tablesdb/update.md | 1 + .../server-kotlin/java/usage/list-events.md | 3 +- .../server-kotlin/java/usage/list-gauges.md | 3 +- .../kotlin/account/delete-consent-token.md | 17 + .../kotlin/account/delete-consent.md | 16 + .../kotlin/account/get-consent-token.md | 17 + .../kotlin/account/get-consent.md | 16 + .../kotlin/account/list-consent-tokens.md | 18 + .../kotlin/account/list-consents.md | 17 + .../functions/get-deployment-download.md | 3 +- .../kotlin/health/get-geo-premium.md | 14 + .../server-kotlin/kotlin/health/get-geo.md | 14 + .../kotlin/health/get-queue-notifications.md | 16 + .../kotlin/organization/create-membership.md | 21 + .../kotlin/organization/delete-membership.md | 16 + .../kotlin/organization/delete.md | 14 + .../kotlin/organization/get-membership.md | 16 + .../server-kotlin/kotlin/organization/get.md | 14 + .../kotlin/organization/list-memberships.md | 18 + .../kotlin/organization/update-membership.md | 17 + .../kotlin/organization/update.md | 16 + .../project/update-o-auth-2-appwrite.md | 18 + .../kotlin/project/update-o-auth-2-oidc.md | 3 + .../kotlin/project/update-o-auth-2-server.md | 3 +- .../kotlin/sites/get-deployment-download.md | 3 +- .../kotlin/tablesdb/create-failover.md | 17 + .../server-kotlin/kotlin/tablesdb/create.md | 3 +- .../kotlin/tablesdb/get-replicas.md | 16 + .../kotlin/tablesdb/get-status.md | 16 + .../kotlin/tablesdb/list-specifications.md | 14 + .../server-kotlin/kotlin/tablesdb/update.md | 3 +- .../server-kotlin/kotlin/usage/list-events.md | 3 +- .../server-kotlin/kotlin/usage/list-gauges.md | 3 +- .../examples/account/delete-consent-token.md | 15 + .../examples/account/delete-consent.md | 14 + .../examples/account/get-consent-token.md | 15 + .../examples/account/get-consent.md | 14 + .../examples/account/list-consent-tokens.md | 16 + .../examples/account/list-consents.md | 15 + .../functions/get-deployment-download.md | 3 +- .../examples/health/get-geo-premium.md | 12 + .../server-nodejs/examples/health/get-geo.md | 12 + .../health/get-queue-notifications.md | 14 + .../organization/create-membership.md | 19 + .../organization/delete-membership.md | 14 + .../examples/organization/delete.md | 12 + .../examples/organization/get-membership.md | 14 + .../examples/organization/get.md | 12 + .../examples/organization/list-memberships.md | 16 + .../organization/update-membership.md | 15 + .../examples/organization/update.md | 14 + .../project/update-o-auth-2-appwrite.md | 16 + .../examples/project/update-o-auth-2-oidc.md | 2 + .../project/update-o-auth-2-server.md | 3 +- .../examples/sites/get-deployment-download.md | 3 +- .../examples/tablesdb/create-failover.md | 15 + .../server-nodejs/examples/tablesdb/create.md | 3 +- .../examples/tablesdb/get-replicas.md | 14 + .../examples/tablesdb/get-status.md | 14 + .../examples/tablesdb/list-specifications.md | 12 + .../server-nodejs/examples/tablesdb/update.md | 3 +- .../examples/usage/list-events.md | 3 +- .../examples/usage/list-gauges.md | 3 +- .../examples/account/delete-consent-token.md | 17 + .../examples/account/delete-consent.md | 16 + .../examples/account/get-consent-token.md | 17 + .../examples/account/get-consent.md | 16 + .../examples/account/list-consent-tokens.md | 18 + .../examples/account/list-consents.md | 17 + .../functions/get-deployment-download.md | 3 +- .../examples/health/get-geo-premium.md | 15 + .../server-php/examples/health/get-geo.md | 15 + .../health/get-queue-notifications.md | 16 + .../organization/create-membership.md | 21 + .../organization/delete-membership.md | 16 + .../examples/organization/delete.md | 15 + .../examples/organization/get-membership.md | 16 + .../server-php/examples/organization/get.md | 15 + .../examples/organization/list-memberships.md | 18 + .../organization/update-membership.md | 17 + .../examples/organization/update.md | 16 + .../project/update-o-auth-2-appwrite.md | 18 + .../examples/project/update-o-auth-2-oidc.md | 3 + .../project/update-o-auth-2-server.md | 3 +- .../examples/sites/get-deployment-download.md | 3 +- .../examples/tablesdb/create-failover.md | 17 + .../server-php/examples/tablesdb/create.md | 3 +- .../examples/tablesdb/get-replicas.md | 16 + .../examples/tablesdb/get-status.md | 16 + .../examples/tablesdb/list-specifications.md | 15 + .../server-php/examples/tablesdb/update.md | 3 +- .../server-php/examples/usage/list-events.md | 3 +- .../server-php/examples/usage/list-gauges.md | 3 +- .../examples/account/delete-consent-token.md | 16 + .../examples/account/delete-consent.md | 15 + .../examples/account/get-consent-token.md | 19 + .../examples/account/get-consent.md | 18 + .../examples/account/list-consent-tokens.md | 20 + .../examples/account/list-consents.md | 19 + .../examples/apps/list-o-auth-2-scopes.md | 16 + .../examples/apps/update-labels.md | 19 + .../functions/get-deployment-download.md | 3 +- .../examples/health/get-geo-premium.md | 16 + .../server-python/examples/health/get-geo.md | 16 + .../health/get-queue-notifications.md | 18 + .../server-python/examples/oauth2/approve.md | 3 +- .../examples/oauth2/authorize-post.md | 31 + .../examples/oauth2/authorize.md | 12 +- .../oauth2/create-device-authorization.md | 3 +- .../examples/oauth2/create-par.md | 30 + .../examples/oauth2/create-token.md | 3 +- .../examples/oauth2/list-organizations.md | 20 + .../examples/oauth2/list-projects.md | 20 + .../organization/create-membership.md | 23 + .../organization/delete-membership.md | 15 + .../examples/organization/delete.md | 13 + .../examples/organization/get-membership.md | 18 + .../examples/organization/get.md | 16 + .../examples/organization/list-memberships.md | 20 + .../organization/update-membership.md | 19 + .../examples/organization/update.md | 18 + .../project/update-o-auth-2-appwrite.md | 20 + .../examples/project/update-o-auth-2-oidc.md | 3 + .../project/update-o-auth-2-server.md | 3 +- .../examples/sites/get-deployment-download.md | 3 +- .../examples/tablesdb/create-failover.md | 19 + .../server-python/examples/tablesdb/create.md | 3 +- .../examples/tablesdb/get-replicas.md | 18 + .../examples/tablesdb/get-status.md | 18 + .../examples/tablesdb/list-specifications.md | 16 + .../server-python/examples/tablesdb/update.md | 3 +- .../examples/usage/list-events.md | 3 +- .../examples/usage/list-gauges.md | 3 +- .../examples/waf/create-bypass-rule.md | 25 + .../examples/waf/create-deny-rule.md | 25 + .../examples/waf/create-rate-limit-rule.md | 27 + .../examples/waf/create-redirect-rule.md | 27 + .../server-python/examples/waf/delete-rule.md | 15 + .../server-python/examples/waf/get-rule.md | 18 + .../server-python/examples/waf/list-rules.md | 20 + .../examples/waf/update-bypass-rule.md | 25 + .../examples/waf/update-deny-rule.md | 25 + .../examples/waf/update-rate-limit-rule.md | 27 + .../examples/waf/update-redirect-rule.md | 27 + .../examples/account/delete-consent-token.md | 10 + .../examples/account/delete-consent.md | 10 + .../examples/account/get-consent-token.md | 8 + .../examples/account/get-consent.md | 8 + .../examples/account/list-consent-tokens.md | 8 + .../examples/account/list-consents.md | 8 + .../examples/health/get-geo-premium.md | 8 + .../server-rest/examples/health/get-geo.md | 8 + .../health/get-queue-notifications.md | 8 + .../organization/create-membership.md | 26 + .../organization/delete-membership.md | 8 + .../examples/organization/delete.md | 8 + .../examples/organization/get-membership.md | 8 + .../server-rest/examples/organization/get.md | 8 + .../examples/organization/list-memberships.md | 8 + .../organization/update-membership.md | 16 + .../examples/organization/update.md | 16 + .../project/update-o-auth-2-appwrite.md | 20 + .../examples/project/update-o-auth-2-oidc.md | 4 + .../project/update-o-auth-2-server.md | 6 +- .../examples/tablesdb/create-failover.md | 16 + .../server-rest/examples/tablesdb/create.md | 6 +- .../examples/tablesdb/get-replicas.md | 8 + .../examples/tablesdb/get-status.md | 8 + .../examples/tablesdb/list-specifications.md | 8 + .../server-rest/examples/tablesdb/update.md | 6 +- .../examples/account/delete-consent-token.md | 17 + .../examples/account/delete-consent.md | 16 + .../examples/account/get-consent-token.md | 17 + .../examples/account/get-consent.md | 16 + .../examples/account/list-consent-tokens.md | 18 + .../examples/account/list-consents.md | 17 + .../functions/get-deployment-download.md | 3 +- .../examples/health/get-geo-premium.md | 14 + .../server-ruby/examples/health/get-geo.md | 14 + .../health/get-queue-notifications.md | 16 + .../organization/create-membership.md | 21 + .../organization/delete-membership.md | 16 + .../examples/organization/delete.md | 14 + .../examples/organization/get-membership.md | 16 + .../server-ruby/examples/organization/get.md | 14 + .../examples/organization/list-memberships.md | 18 + .../organization/update-membership.md | 17 + .../examples/organization/update.md | 16 + .../project/update-o-auth-2-appwrite.md | 18 + .../examples/project/update-o-auth-2-oidc.md | 3 + .../project/update-o-auth-2-server.md | 3 +- .../examples/sites/get-deployment-download.md | 3 +- .../examples/tablesdb/create-failover.md | 17 + .../server-ruby/examples/tablesdb/create.md | 3 +- .../examples/tablesdb/get-replicas.md | 16 + .../examples/tablesdb/get-status.md | 16 + .../examples/tablesdb/list-specifications.md | 14 + .../server-ruby/examples/tablesdb/update.md | 3 +- .../server-ruby/examples/usage/list-events.md | 3 +- .../server-ruby/examples/usage/list-gauges.md | 3 +- .../examples/account/delete-consent-token.md | 23 + .../examples/account/delete-consent.md | 22 + .../examples/account/get-consent-token.md | 23 + .../examples/account/get-consent.md | 22 + .../examples/account/list-consent-tokens.md | 24 + .../examples/account/list-consents.md | 23 + .../functions/get-deployment-download.md | 3 +- .../examples/health/get-geo-premium.md | 20 + .../server-rust/examples/health/get-geo.md | 20 + .../health/get-queue-notifications.md | 22 + .../organization/create-membership.md | 27 + .../organization/delete-membership.md | 20 + .../examples/organization/delete.md | 18 + .../examples/organization/get-membership.md | 22 + .../server-rust/examples/organization/get.md | 20 + .../examples/organization/list-memberships.md | 24 + .../organization/update-membership.md | 23 + .../examples/organization/update.md | 22 + .../project/update-o-auth-2-appwrite.md | 24 + .../examples/project/update-o-auth-2-oidc.md | 2 + .../project/update-o-auth-2-server.md | 3 +- .../examples/sites/get-deployment-download.md | 3 +- .../examples/tablesdb/create-failover.md | 23 + .../server-rust/examples/tablesdb/create.md | 3 +- .../examples/tablesdb/get-replicas.md | 22 + .../examples/tablesdb/get-status.md | 22 + .../examples/tablesdb/list-specifications.md | 20 + .../server-rust/examples/tablesdb/update.md | 3 +- .../server-rust/examples/usage/list-events.md | 3 +- .../server-rust/examples/usage/list-gauges.md | 3 +- .../examples/account/delete-consent-token.md | 16 + .../examples/account/delete-consent.md | 15 + .../examples/account/get-consent-token.md | 16 + .../examples/account/get-consent.md | 15 + .../examples/account/list-consent-tokens.md | 17 + .../examples/account/list-consents.md | 16 + .../functions/get-deployment-download.md | 3 +- .../examples/health/get-geo-premium.md | 13 + .../server-swift/examples/health/get-geo.md | 13 + .../health/get-queue-notifications.md | 15 + .../organization/create-membership.md | 20 + .../organization/delete-membership.md | 15 + .../examples/organization/delete.md | 13 + .../examples/organization/get-membership.md | 15 + .../server-swift/examples/organization/get.md | 13 + .../examples/organization/list-memberships.md | 17 + .../organization/update-membership.md | 16 + .../examples/organization/update.md | 15 + .../project/update-o-auth-2-appwrite.md | 17 + .../examples/project/update-o-auth-2-oidc.md | 3 + .../project/update-o-auth-2-server.md | 3 +- .../examples/sites/get-deployment-download.md | 3 +- .../examples/tablesdb/create-failover.md | 16 + .../server-swift/examples/tablesdb/create.md | 3 +- .../examples/tablesdb/get-replicas.md | 15 + .../examples/tablesdb/get-status.md | 15 + .../examples/tablesdb/list-specifications.md | 13 + .../server-swift/examples/tablesdb/update.md | 3 +- .../examples/usage/list-events.md | 3 +- .../examples/usage/list-gauges.md | 3 +- specs/1.9.x/open-api3-1.9.x-client.json | 1607 +- specs/1.9.x/open-api3-1.9.x-console.json | 71650 ++++++++-------- specs/1.9.x/open-api3-1.9.x-server.json | 41839 +++++---- 1364 files changed, 78005 insertions(+), 52603 deletions(-) create mode 100644 examples/1.9.x/client-android/java/account/delete-consent-token.md create mode 100644 examples/1.9.x/client-android/java/account/delete-consent.md create mode 100644 examples/1.9.x/client-android/java/account/get-consent-token.md create mode 100644 examples/1.9.x/client-android/java/account/get-consent.md create mode 100644 examples/1.9.x/client-android/java/account/list-consent-tokens.md create mode 100644 examples/1.9.x/client-android/java/account/list-consents.md create mode 100644 examples/1.9.x/client-android/kotlin/account/delete-consent-token.md create mode 100644 examples/1.9.x/client-android/kotlin/account/delete-consent.md create mode 100644 examples/1.9.x/client-android/kotlin/account/get-consent-token.md create mode 100644 examples/1.9.x/client-android/kotlin/account/get-consent.md create mode 100644 examples/1.9.x/client-android/kotlin/account/list-consent-tokens.md create mode 100644 examples/1.9.x/client-android/kotlin/account/list-consents.md create mode 100644 examples/1.9.x/client-apple/examples/account/delete-consent-token.md create mode 100644 examples/1.9.x/client-apple/examples/account/delete-consent.md create mode 100644 examples/1.9.x/client-apple/examples/account/get-consent-token.md create mode 100644 examples/1.9.x/client-apple/examples/account/get-consent.md create mode 100644 examples/1.9.x/client-apple/examples/account/list-consent-tokens.md create mode 100644 examples/1.9.x/client-apple/examples/account/list-consents.md create mode 100644 examples/1.9.x/client-flutter/examples/account/delete-consent-token.md create mode 100644 examples/1.9.x/client-flutter/examples/account/delete-consent.md create mode 100644 examples/1.9.x/client-flutter/examples/account/get-consent-token.md create mode 100644 examples/1.9.x/client-flutter/examples/account/get-consent.md create mode 100644 examples/1.9.x/client-flutter/examples/account/list-consent-tokens.md create mode 100644 examples/1.9.x/client-flutter/examples/account/list-consents.md create mode 100644 examples/1.9.x/client-graphql/examples/account/delete-consent-token.md create mode 100644 examples/1.9.x/client-graphql/examples/account/delete-consent.md create mode 100644 examples/1.9.x/client-graphql/examples/account/get-consent-token.md create mode 100644 examples/1.9.x/client-graphql/examples/account/get-consent.md create mode 100644 examples/1.9.x/client-graphql/examples/account/list-consent-tokens.md create mode 100644 examples/1.9.x/client-graphql/examples/account/list-consents.md create mode 100644 examples/1.9.x/client-react-native/examples/account/delete-consent-token.md create mode 100644 examples/1.9.x/client-react-native/examples/account/delete-consent.md create mode 100644 examples/1.9.x/client-react-native/examples/account/get-consent-token.md create mode 100644 examples/1.9.x/client-react-native/examples/account/get-consent.md create mode 100644 examples/1.9.x/client-react-native/examples/account/list-consent-tokens.md create mode 100644 examples/1.9.x/client-react-native/examples/account/list-consents.md create mode 100644 examples/1.9.x/client-rest/examples/account/delete-consent-token.md create mode 100644 examples/1.9.x/client-rest/examples/account/delete-consent.md create mode 100644 examples/1.9.x/client-rest/examples/account/get-consent-token.md create mode 100644 examples/1.9.x/client-rest/examples/account/get-consent.md create mode 100644 examples/1.9.x/client-rest/examples/account/list-consent-tokens.md create mode 100644 examples/1.9.x/client-rest/examples/account/list-consents.md create mode 100644 examples/1.9.x/client-web/examples/account/delete-consent-token.md create mode 100644 examples/1.9.x/client-web/examples/account/delete-consent.md create mode 100644 examples/1.9.x/client-web/examples/account/get-consent-token.md create mode 100644 examples/1.9.x/client-web/examples/account/get-consent.md create mode 100644 examples/1.9.x/client-web/examples/account/list-consent-tokens.md create mode 100644 examples/1.9.x/client-web/examples/account/list-consents.md create mode 100644 examples/1.9.x/console-cli/examples/account/delete-consent-token.md create mode 100644 examples/1.9.x/console-cli/examples/account/delete-consent.md create mode 100644 examples/1.9.x/console-cli/examples/account/get-consent-token.md create mode 100644 examples/1.9.x/console-cli/examples/account/get-consent.md create mode 100644 examples/1.9.x/console-cli/examples/account/list-consent-tokens.md create mode 100644 examples/1.9.x/console-cli/examples/account/list-consents.md create mode 100644 examples/1.9.x/console-cli/examples/health/get-geo-premium.md create mode 100644 examples/1.9.x/console-cli/examples/health/get-geo.md create mode 100644 examples/1.9.x/console-cli/examples/health/get-queue-notifications.md create mode 100644 examples/1.9.x/console-cli/examples/notifications/list.md create mode 100644 examples/1.9.x/console-cli/examples/notifications/update.md create mode 100644 examples/1.9.x/console-cli/examples/oauth2/authorize-post.md create mode 100644 examples/1.9.x/console-cli/examples/oauth2/create-par.md create mode 100644 examples/1.9.x/console-cli/examples/oauth2/list-organizations.md create mode 100644 examples/1.9.x/console-cli/examples/oauth2/list-projects.md create mode 100644 examples/1.9.x/console-cli/examples/oauth2/logout-post.md create mode 100644 examples/1.9.x/console-cli/examples/organization/create-membership.md create mode 100644 examples/1.9.x/console-cli/examples/organization/delete-membership.md create mode 100644 examples/1.9.x/console-cli/examples/organization/delete.md create mode 100644 examples/1.9.x/console-cli/examples/organization/get-membership.md create mode 100644 examples/1.9.x/console-cli/examples/organization/get.md create mode 100644 examples/1.9.x/console-cli/examples/organization/list-memberships.md create mode 100644 examples/1.9.x/console-cli/examples/organization/update-membership.md create mode 100644 examples/1.9.x/console-cli/examples/organization/update.md create mode 100644 examples/1.9.x/console-cli/examples/organizations/create-premium-geo-db-addon.md create mode 100644 examples/1.9.x/console-cli/examples/project/update-o-auth-2-appwrite.md create mode 100644 examples/1.9.x/console-cli/examples/projects/confirm-addon-payment.md create mode 100644 examples/1.9.x/console-cli/examples/projects/create-premium-geo-db-addon.md create mode 100644 examples/1.9.x/console-cli/examples/projects/delete-addon.md create mode 100644 examples/1.9.x/console-cli/examples/projects/get-addon-price.md create mode 100644 examples/1.9.x/console-cli/examples/projects/get-addon.md create mode 100644 examples/1.9.x/console-cli/examples/projects/list-addons.md create mode 100644 examples/1.9.x/console-cli/examples/projects/list-stages.md create mode 100644 examples/1.9.x/console-cli/examples/projects/update-stage.md create mode 100644 examples/1.9.x/console-cli/examples/tablesdb/create-failover.md create mode 100644 examples/1.9.x/console-cli/examples/tablesdb/create-migration.md create mode 100644 examples/1.9.x/console-cli/examples/tablesdb/delete-migration.md create mode 100644 examples/1.9.x/console-cli/examples/tablesdb/get-migration.md create mode 100644 examples/1.9.x/console-cli/examples/tablesdb/get-replicas.md create mode 100644 examples/1.9.x/console-cli/examples/tablesdb/get-status.md create mode 100644 examples/1.9.x/console-cli/examples/tablesdb/list-migrations.md create mode 100644 examples/1.9.x/console-cli/examples/tablesdb/list-specifications.md create mode 100644 examples/1.9.x/console-cli/examples/waf/create-bypass-rule.md create mode 100644 examples/1.9.x/console-cli/examples/waf/create-deny-rule.md create mode 100644 examples/1.9.x/console-cli/examples/waf/create-rate-limit-rule.md create mode 100644 examples/1.9.x/console-cli/examples/waf/create-redirect-rule.md create mode 100644 examples/1.9.x/console-cli/examples/waf/delete-rule.md create mode 100644 examples/1.9.x/console-cli/examples/waf/get-rule.md create mode 100644 examples/1.9.x/console-cli/examples/waf/list-rules.md create mode 100644 examples/1.9.x/console-cli/examples/waf/update-bypass-rule.md create mode 100644 examples/1.9.x/console-cli/examples/waf/update-deny-rule.md create mode 100644 examples/1.9.x/console-cli/examples/waf/update-rate-limit-rule.md create mode 100644 examples/1.9.x/console-cli/examples/waf/update-redirect-rule.md create mode 100644 examples/1.9.x/console-web/examples/account/delete-consent-token.md create mode 100644 examples/1.9.x/console-web/examples/account/delete-consent.md create mode 100644 examples/1.9.x/console-web/examples/account/get-consent-token.md create mode 100644 examples/1.9.x/console-web/examples/account/get-consent.md create mode 100644 examples/1.9.x/console-web/examples/account/list-consent-tokens.md create mode 100644 examples/1.9.x/console-web/examples/account/list-consents.md create mode 100644 examples/1.9.x/console-web/examples/apps/list-o-auth-2-scopes.md create mode 100644 examples/1.9.x/console-web/examples/apps/update-labels.md create mode 100644 examples/1.9.x/console-web/examples/console/list-databases.md create mode 100644 examples/1.9.x/console-web/examples/console/list-postgres-extensions.md create mode 100644 examples/1.9.x/console-web/examples/documentsdb/create-failover.md create mode 100644 examples/1.9.x/console-web/examples/documentsdb/get-replicas.md create mode 100644 examples/1.9.x/console-web/examples/documentsdb/get-status.md create mode 100644 examples/1.9.x/console-web/examples/documentsdb/list-specifications.md create mode 100644 examples/1.9.x/console-web/examples/domains/verify-nameservers.md create mode 100644 examples/1.9.x/console-web/examples/health/get-geo-premium.md create mode 100644 examples/1.9.x/console-web/examples/health/get-geo.md create mode 100644 examples/1.9.x/console-web/examples/health/get-queue-notifications.md create mode 100644 examples/1.9.x/console-web/examples/mongo/create-backup-policy.md create mode 100644 examples/1.9.x/console-web/examples/mongo/create-backup.md create mode 100644 examples/1.9.x/console-web/examples/mongo/create-branch.md create mode 100644 examples/1.9.x/console-web/examples/mongo/create-failover.md create mode 100644 examples/1.9.x/console-web/examples/mongo/create-migration.md create mode 100644 examples/1.9.x/console-web/examples/mongo/create-restoration.md create mode 100644 examples/1.9.x/console-web/examples/mongo/create-upgrade.md create mode 100644 examples/1.9.x/console-web/examples/mongo/create.md create mode 100644 examples/1.9.x/console-web/examples/mongo/delete-backup-policy.md create mode 100644 examples/1.9.x/console-web/examples/mongo/delete-backup.md create mode 100644 examples/1.9.x/console-web/examples/mongo/delete-branch.md create mode 100644 examples/1.9.x/console-web/examples/mongo/delete.md create mode 100644 examples/1.9.x/console-web/examples/mongo/get-backup-policy.md create mode 100644 examples/1.9.x/console-web/examples/mongo/get-backup.md create mode 100644 examples/1.9.x/console-web/examples/mongo/get-pitr.md create mode 100644 examples/1.9.x/console-web/examples/mongo/get-replicas.md create mode 100644 examples/1.9.x/console-web/examples/mongo/get-restoration.md create mode 100644 examples/1.9.x/console-web/examples/mongo/get-status.md create mode 100644 examples/1.9.x/console-web/examples/mongo/get.md create mode 100644 examples/1.9.x/console-web/examples/mongo/list-backup-policies.md create mode 100644 examples/1.9.x/console-web/examples/mongo/list-backups.md create mode 100644 examples/1.9.x/console-web/examples/mongo/list-branches.md create mode 100644 examples/1.9.x/console-web/examples/mongo/list-restorations.md create mode 100644 examples/1.9.x/console-web/examples/mongo/list-specifications.md create mode 100644 examples/1.9.x/console-web/examples/mongo/list.md create mode 100644 examples/1.9.x/console-web/examples/mongo/update-backup-policy.md create mode 100644 examples/1.9.x/console-web/examples/mongo/update-backup-storage.md create mode 100644 examples/1.9.x/console-web/examples/mongo/update-credentials.md create mode 100644 examples/1.9.x/console-web/examples/mongo/update-maintenance.md create mode 100644 examples/1.9.x/console-web/examples/mongo/update.md create mode 100644 examples/1.9.x/console-web/examples/mysql/create-backup-policy.md create mode 100644 examples/1.9.x/console-web/examples/mysql/create-backup.md create mode 100644 examples/1.9.x/console-web/examples/mysql/create-branch.md create mode 100644 examples/1.9.x/console-web/examples/mysql/create-execution.md create mode 100644 examples/1.9.x/console-web/examples/mysql/create-failover.md create mode 100644 examples/1.9.x/console-web/examples/mysql/create-migration.md create mode 100644 examples/1.9.x/console-web/examples/mysql/create-restoration.md create mode 100644 examples/1.9.x/console-web/examples/mysql/create-upgrade.md create mode 100644 examples/1.9.x/console-web/examples/mysql/create.md create mode 100644 examples/1.9.x/console-web/examples/mysql/delete-backup-policy.md create mode 100644 examples/1.9.x/console-web/examples/mysql/delete-backup.md create mode 100644 examples/1.9.x/console-web/examples/mysql/delete-branch.md create mode 100644 examples/1.9.x/console-web/examples/mysql/delete.md create mode 100644 examples/1.9.x/console-web/examples/mysql/get-backup-policy.md create mode 100644 examples/1.9.x/console-web/examples/mysql/get-backup.md create mode 100644 examples/1.9.x/console-web/examples/mysql/get-pitr.md create mode 100644 examples/1.9.x/console-web/examples/mysql/get-pooler.md create mode 100644 examples/1.9.x/console-web/examples/mysql/get-replicas.md create mode 100644 examples/1.9.x/console-web/examples/mysql/get-restoration.md create mode 100644 examples/1.9.x/console-web/examples/mysql/get-status.md create mode 100644 examples/1.9.x/console-web/examples/mysql/get.md create mode 100644 examples/1.9.x/console-web/examples/mysql/list-backup-policies.md create mode 100644 examples/1.9.x/console-web/examples/mysql/list-backups.md create mode 100644 examples/1.9.x/console-web/examples/mysql/list-branches.md create mode 100644 examples/1.9.x/console-web/examples/mysql/list-restorations.md create mode 100644 examples/1.9.x/console-web/examples/mysql/list-specifications.md create mode 100644 examples/1.9.x/console-web/examples/mysql/list.md create mode 100644 examples/1.9.x/console-web/examples/mysql/update-backup-policy.md create mode 100644 examples/1.9.x/console-web/examples/mysql/update-backup-storage.md create mode 100644 examples/1.9.x/console-web/examples/mysql/update-credentials.md create mode 100644 examples/1.9.x/console-web/examples/mysql/update-maintenance.md create mode 100644 examples/1.9.x/console-web/examples/mysql/update-pooler.md create mode 100644 examples/1.9.x/console-web/examples/mysql/update.md create mode 100644 examples/1.9.x/console-web/examples/notifications/list.md create mode 100644 examples/1.9.x/console-web/examples/notifications/update.md create mode 100644 examples/1.9.x/console-web/examples/oauth2/authorize-post.md create mode 100644 examples/1.9.x/console-web/examples/oauth2/create-par.md create mode 100644 examples/1.9.x/console-web/examples/oauth2/list-organizations.md create mode 100644 examples/1.9.x/console-web/examples/oauth2/list-projects.md create mode 100644 examples/1.9.x/console-web/examples/oauth2/logout-post.md create mode 100644 examples/1.9.x/console-web/examples/organization/create-membership.md create mode 100644 examples/1.9.x/console-web/examples/organization/delete-membership.md create mode 100644 examples/1.9.x/console-web/examples/organization/delete.md create mode 100644 examples/1.9.x/console-web/examples/organization/get-membership.md create mode 100644 examples/1.9.x/console-web/examples/organization/get.md create mode 100644 examples/1.9.x/console-web/examples/organization/list-memberships.md create mode 100644 examples/1.9.x/console-web/examples/organization/update-membership.md create mode 100644 examples/1.9.x/console-web/examples/organization/update.md create mode 100644 examples/1.9.x/console-web/examples/organizations/create-premium-geo-db-addon.md create mode 100644 examples/1.9.x/console-web/examples/postgresql/create-backup-policy.md create mode 100644 examples/1.9.x/console-web/examples/postgresql/create-backup.md create mode 100644 examples/1.9.x/console-web/examples/postgresql/create-branch.md create mode 100644 examples/1.9.x/console-web/examples/postgresql/create-execution.md create mode 100644 examples/1.9.x/console-web/examples/postgresql/create-extension.md create mode 100644 examples/1.9.x/console-web/examples/postgresql/create-failover.md create mode 100644 examples/1.9.x/console-web/examples/postgresql/create-migration.md create mode 100644 examples/1.9.x/console-web/examples/postgresql/create-restoration.md create mode 100644 examples/1.9.x/console-web/examples/postgresql/create-upgrade.md create mode 100644 examples/1.9.x/console-web/examples/postgresql/create.md create mode 100644 examples/1.9.x/console-web/examples/postgresql/delete-backup-policy.md create mode 100644 examples/1.9.x/console-web/examples/postgresql/delete-backup.md create mode 100644 examples/1.9.x/console-web/examples/postgresql/delete-branch.md create mode 100644 examples/1.9.x/console-web/examples/postgresql/delete-extension.md create mode 100644 examples/1.9.x/console-web/examples/postgresql/delete.md create mode 100644 examples/1.9.x/console-web/examples/postgresql/get-backup-policy.md create mode 100644 examples/1.9.x/console-web/examples/postgresql/get-backup.md create mode 100644 examples/1.9.x/console-web/examples/postgresql/get-pitr.md create mode 100644 examples/1.9.x/console-web/examples/postgresql/get-pooler.md create mode 100644 examples/1.9.x/console-web/examples/postgresql/get-replicas.md create mode 100644 examples/1.9.x/console-web/examples/postgresql/get-restoration.md create mode 100644 examples/1.9.x/console-web/examples/postgresql/get-status.md create mode 100644 examples/1.9.x/console-web/examples/postgresql/get.md create mode 100644 examples/1.9.x/console-web/examples/postgresql/list-backup-policies.md create mode 100644 examples/1.9.x/console-web/examples/postgresql/list-backups.md create mode 100644 examples/1.9.x/console-web/examples/postgresql/list-branches.md create mode 100644 examples/1.9.x/console-web/examples/postgresql/list-extensions.md create mode 100644 examples/1.9.x/console-web/examples/postgresql/list-restorations.md create mode 100644 examples/1.9.x/console-web/examples/postgresql/list-specifications.md create mode 100644 examples/1.9.x/console-web/examples/postgresql/list.md create mode 100644 examples/1.9.x/console-web/examples/postgresql/update-backup-policy.md create mode 100644 examples/1.9.x/console-web/examples/postgresql/update-backup-storage.md create mode 100644 examples/1.9.x/console-web/examples/postgresql/update-credentials.md create mode 100644 examples/1.9.x/console-web/examples/postgresql/update-maintenance.md create mode 100644 examples/1.9.x/console-web/examples/postgresql/update-pooler.md create mode 100644 examples/1.9.x/console-web/examples/postgresql/update.md create mode 100644 examples/1.9.x/console-web/examples/project/update-o-auth-2-appwrite.md create mode 100644 examples/1.9.x/console-web/examples/projects/confirm-addon-payment.md create mode 100644 examples/1.9.x/console-web/examples/projects/create-premium-geo-db-addon.md create mode 100644 examples/1.9.x/console-web/examples/projects/delete-addon.md create mode 100644 examples/1.9.x/console-web/examples/projects/get-addon-price.md create mode 100644 examples/1.9.x/console-web/examples/projects/get-addon.md create mode 100644 examples/1.9.x/console-web/examples/projects/list-addons.md create mode 100644 examples/1.9.x/console-web/examples/projects/list-stages.md create mode 100644 examples/1.9.x/console-web/examples/projects/update-stage.md create mode 100644 examples/1.9.x/console-web/examples/tablesdb/create-failover.md create mode 100644 examples/1.9.x/console-web/examples/tablesdb/create-migration.md create mode 100644 examples/1.9.x/console-web/examples/tablesdb/delete-migration.md create mode 100644 examples/1.9.x/console-web/examples/tablesdb/get-migration.md create mode 100644 examples/1.9.x/console-web/examples/tablesdb/get-replicas.md create mode 100644 examples/1.9.x/console-web/examples/tablesdb/get-status.md create mode 100644 examples/1.9.x/console-web/examples/tablesdb/list-migrations.md create mode 100644 examples/1.9.x/console-web/examples/tablesdb/list-specifications.md create mode 100644 examples/1.9.x/console-web/examples/vectorsdb/create-failover.md create mode 100644 examples/1.9.x/console-web/examples/vectorsdb/get-replicas.md create mode 100644 examples/1.9.x/console-web/examples/vectorsdb/get-status.md create mode 100644 examples/1.9.x/console-web/examples/vectorsdb/list-specifications.md create mode 100644 examples/1.9.x/console-web/examples/waf/create-bypass-rule.md create mode 100644 examples/1.9.x/console-web/examples/waf/create-deny-rule.md create mode 100644 examples/1.9.x/console-web/examples/waf/create-rate-limit-rule.md create mode 100644 examples/1.9.x/console-web/examples/waf/create-redirect-rule.md create mode 100644 examples/1.9.x/console-web/examples/waf/delete-rule.md create mode 100644 examples/1.9.x/console-web/examples/waf/get-rule.md create mode 100644 examples/1.9.x/console-web/examples/waf/list-rules.md create mode 100644 examples/1.9.x/console-web/examples/waf/update-bypass-rule.md create mode 100644 examples/1.9.x/console-web/examples/waf/update-deny-rule.md create mode 100644 examples/1.9.x/console-web/examples/waf/update-rate-limit-rule.md create mode 100644 examples/1.9.x/console-web/examples/waf/update-redirect-rule.md create mode 100644 examples/1.9.x/server-dart/examples/account/delete-consent-token.md create mode 100644 examples/1.9.x/server-dart/examples/account/delete-consent.md create mode 100644 examples/1.9.x/server-dart/examples/account/get-consent-token.md create mode 100644 examples/1.9.x/server-dart/examples/account/get-consent.md create mode 100644 examples/1.9.x/server-dart/examples/account/list-consent-tokens.md create mode 100644 examples/1.9.x/server-dart/examples/account/list-consents.md create mode 100644 examples/1.9.x/server-dart/examples/health/get-geo-premium.md create mode 100644 examples/1.9.x/server-dart/examples/health/get-geo.md create mode 100644 examples/1.9.x/server-dart/examples/health/get-queue-notifications.md create mode 100644 examples/1.9.x/server-dart/examples/organization/create-membership.md create mode 100644 examples/1.9.x/server-dart/examples/organization/delete-membership.md create mode 100644 examples/1.9.x/server-dart/examples/organization/delete.md create mode 100644 examples/1.9.x/server-dart/examples/organization/get-membership.md create mode 100644 examples/1.9.x/server-dart/examples/organization/get.md create mode 100644 examples/1.9.x/server-dart/examples/organization/list-memberships.md create mode 100644 examples/1.9.x/server-dart/examples/organization/update-membership.md create mode 100644 examples/1.9.x/server-dart/examples/organization/update.md create mode 100644 examples/1.9.x/server-dart/examples/project/update-o-auth-2-appwrite.md create mode 100644 examples/1.9.x/server-dart/examples/tablesdb/create-failover.md create mode 100644 examples/1.9.x/server-dart/examples/tablesdb/get-replicas.md create mode 100644 examples/1.9.x/server-dart/examples/tablesdb/get-status.md create mode 100644 examples/1.9.x/server-dart/examples/tablesdb/list-specifications.md create mode 100644 examples/1.9.x/server-dotnet/examples/account/delete-consent-token.md create mode 100644 examples/1.9.x/server-dotnet/examples/account/delete-consent.md create mode 100644 examples/1.9.x/server-dotnet/examples/account/get-consent-token.md create mode 100644 examples/1.9.x/server-dotnet/examples/account/get-consent.md create mode 100644 examples/1.9.x/server-dotnet/examples/account/list-consent-tokens.md create mode 100644 examples/1.9.x/server-dotnet/examples/account/list-consents.md create mode 100644 examples/1.9.x/server-dotnet/examples/health/get-geo-premium.md create mode 100644 examples/1.9.x/server-dotnet/examples/health/get-geo.md create mode 100644 examples/1.9.x/server-dotnet/examples/health/get-queue-notifications.md create mode 100644 examples/1.9.x/server-dotnet/examples/organization/create-membership.md create mode 100644 examples/1.9.x/server-dotnet/examples/organization/delete-membership.md create mode 100644 examples/1.9.x/server-dotnet/examples/organization/delete.md create mode 100644 examples/1.9.x/server-dotnet/examples/organization/get-membership.md create mode 100644 examples/1.9.x/server-dotnet/examples/organization/get.md create mode 100644 examples/1.9.x/server-dotnet/examples/organization/list-memberships.md create mode 100644 examples/1.9.x/server-dotnet/examples/organization/update-membership.md create mode 100644 examples/1.9.x/server-dotnet/examples/organization/update.md create mode 100644 examples/1.9.x/server-dotnet/examples/project/update-o-auth-2-appwrite.md create mode 100644 examples/1.9.x/server-dotnet/examples/tablesdb/create-failover.md create mode 100644 examples/1.9.x/server-dotnet/examples/tablesdb/get-replicas.md create mode 100644 examples/1.9.x/server-dotnet/examples/tablesdb/get-status.md create mode 100644 examples/1.9.x/server-dotnet/examples/tablesdb/list-specifications.md create mode 100644 examples/1.9.x/server-go/examples/account/delete-consent-token.md create mode 100644 examples/1.9.x/server-go/examples/account/delete-consent.md create mode 100644 examples/1.9.x/server-go/examples/account/get-consent-token.md create mode 100644 examples/1.9.x/server-go/examples/account/get-consent.md create mode 100644 examples/1.9.x/server-go/examples/account/list-consent-tokens.md create mode 100644 examples/1.9.x/server-go/examples/account/list-consents.md create mode 100644 examples/1.9.x/server-go/examples/health/get-geo-premium.md create mode 100644 examples/1.9.x/server-go/examples/health/get-geo.md create mode 100644 examples/1.9.x/server-go/examples/health/get-queue-notifications.md create mode 100644 examples/1.9.x/server-go/examples/mongo/create-backup-policy.md create mode 100644 examples/1.9.x/server-go/examples/mongo/create-backup.md create mode 100644 examples/1.9.x/server-go/examples/mongo/create-branch.md create mode 100644 examples/1.9.x/server-go/examples/mongo/create-failover.md create mode 100644 examples/1.9.x/server-go/examples/mongo/create-migration.md create mode 100644 examples/1.9.x/server-go/examples/mongo/create-restoration.md create mode 100644 examples/1.9.x/server-go/examples/mongo/create-upgrade.md create mode 100644 examples/1.9.x/server-go/examples/mongo/create.md create mode 100644 examples/1.9.x/server-go/examples/mongo/delete-backup-policy.md create mode 100644 examples/1.9.x/server-go/examples/mongo/delete-backup.md create mode 100644 examples/1.9.x/server-go/examples/mongo/delete-branch.md create mode 100644 examples/1.9.x/server-go/examples/mongo/delete.md create mode 100644 examples/1.9.x/server-go/examples/mongo/get-backup-policy.md create mode 100644 examples/1.9.x/server-go/examples/mongo/get-backup.md create mode 100644 examples/1.9.x/server-go/examples/mongo/get-pitr.md create mode 100644 examples/1.9.x/server-go/examples/mongo/get-replicas.md create mode 100644 examples/1.9.x/server-go/examples/mongo/get-restoration.md create mode 100644 examples/1.9.x/server-go/examples/mongo/get-status.md create mode 100644 examples/1.9.x/server-go/examples/mongo/get.md create mode 100644 examples/1.9.x/server-go/examples/mongo/list-backup-policies.md create mode 100644 examples/1.9.x/server-go/examples/mongo/list-backups.md create mode 100644 examples/1.9.x/server-go/examples/mongo/list-branches.md create mode 100644 examples/1.9.x/server-go/examples/mongo/list-restorations.md create mode 100644 examples/1.9.x/server-go/examples/mongo/list-specifications.md create mode 100644 examples/1.9.x/server-go/examples/mongo/list.md create mode 100644 examples/1.9.x/server-go/examples/mongo/update-backup-policy.md create mode 100644 examples/1.9.x/server-go/examples/mongo/update-backup-storage.md create mode 100644 examples/1.9.x/server-go/examples/mongo/update-credentials.md create mode 100644 examples/1.9.x/server-go/examples/mongo/update-maintenance.md create mode 100644 examples/1.9.x/server-go/examples/mongo/update.md create mode 100644 examples/1.9.x/server-go/examples/mysql/create-backup-policy.md create mode 100644 examples/1.9.x/server-go/examples/mysql/create-backup.md create mode 100644 examples/1.9.x/server-go/examples/mysql/create-branch.md create mode 100644 examples/1.9.x/server-go/examples/mysql/create-execution.md create mode 100644 examples/1.9.x/server-go/examples/mysql/create-failover.md create mode 100644 examples/1.9.x/server-go/examples/mysql/create-migration.md create mode 100644 examples/1.9.x/server-go/examples/mysql/create-restoration.md create mode 100644 examples/1.9.x/server-go/examples/mysql/create-upgrade.md create mode 100644 examples/1.9.x/server-go/examples/mysql/create.md create mode 100644 examples/1.9.x/server-go/examples/mysql/delete-backup-policy.md create mode 100644 examples/1.9.x/server-go/examples/mysql/delete-backup.md create mode 100644 examples/1.9.x/server-go/examples/mysql/delete-branch.md create mode 100644 examples/1.9.x/server-go/examples/mysql/delete.md create mode 100644 examples/1.9.x/server-go/examples/mysql/get-backup-policy.md create mode 100644 examples/1.9.x/server-go/examples/mysql/get-backup.md create mode 100644 examples/1.9.x/server-go/examples/mysql/get-pitr.md create mode 100644 examples/1.9.x/server-go/examples/mysql/get-pooler.md create mode 100644 examples/1.9.x/server-go/examples/mysql/get-replicas.md create mode 100644 examples/1.9.x/server-go/examples/mysql/get-restoration.md create mode 100644 examples/1.9.x/server-go/examples/mysql/get-status.md create mode 100644 examples/1.9.x/server-go/examples/mysql/get.md create mode 100644 examples/1.9.x/server-go/examples/mysql/list-backup-policies.md create mode 100644 examples/1.9.x/server-go/examples/mysql/list-backups.md create mode 100644 examples/1.9.x/server-go/examples/mysql/list-branches.md create mode 100644 examples/1.9.x/server-go/examples/mysql/list-restorations.md create mode 100644 examples/1.9.x/server-go/examples/mysql/list-specifications.md create mode 100644 examples/1.9.x/server-go/examples/mysql/list.md create mode 100644 examples/1.9.x/server-go/examples/mysql/update-backup-policy.md create mode 100644 examples/1.9.x/server-go/examples/mysql/update-backup-storage.md create mode 100644 examples/1.9.x/server-go/examples/mysql/update-credentials.md create mode 100644 examples/1.9.x/server-go/examples/mysql/update-maintenance.md create mode 100644 examples/1.9.x/server-go/examples/mysql/update-pooler.md create mode 100644 examples/1.9.x/server-go/examples/mysql/update.md create mode 100644 examples/1.9.x/server-go/examples/organization/create-membership.md create mode 100644 examples/1.9.x/server-go/examples/organization/delete-membership.md create mode 100644 examples/1.9.x/server-go/examples/organization/delete.md create mode 100644 examples/1.9.x/server-go/examples/organization/get-membership.md create mode 100644 examples/1.9.x/server-go/examples/organization/get.md create mode 100644 examples/1.9.x/server-go/examples/organization/list-memberships.md create mode 100644 examples/1.9.x/server-go/examples/organization/update-membership.md create mode 100644 examples/1.9.x/server-go/examples/organization/update.md create mode 100644 examples/1.9.x/server-go/examples/postgresql/create-backup-policy.md create mode 100644 examples/1.9.x/server-go/examples/postgresql/create-backup.md create mode 100644 examples/1.9.x/server-go/examples/postgresql/create-branch.md create mode 100644 examples/1.9.x/server-go/examples/postgresql/create-execution.md create mode 100644 examples/1.9.x/server-go/examples/postgresql/create-extension.md create mode 100644 examples/1.9.x/server-go/examples/postgresql/create-failover.md create mode 100644 examples/1.9.x/server-go/examples/postgresql/create-migration.md create mode 100644 examples/1.9.x/server-go/examples/postgresql/create-restoration.md create mode 100644 examples/1.9.x/server-go/examples/postgresql/create-upgrade.md create mode 100644 examples/1.9.x/server-go/examples/postgresql/create.md create mode 100644 examples/1.9.x/server-go/examples/postgresql/delete-backup-policy.md create mode 100644 examples/1.9.x/server-go/examples/postgresql/delete-backup.md create mode 100644 examples/1.9.x/server-go/examples/postgresql/delete-branch.md create mode 100644 examples/1.9.x/server-go/examples/postgresql/delete-extension.md create mode 100644 examples/1.9.x/server-go/examples/postgresql/delete.md create mode 100644 examples/1.9.x/server-go/examples/postgresql/get-backup-policy.md create mode 100644 examples/1.9.x/server-go/examples/postgresql/get-backup.md create mode 100644 examples/1.9.x/server-go/examples/postgresql/get-pitr.md create mode 100644 examples/1.9.x/server-go/examples/postgresql/get-pooler.md create mode 100644 examples/1.9.x/server-go/examples/postgresql/get-replicas.md create mode 100644 examples/1.9.x/server-go/examples/postgresql/get-restoration.md create mode 100644 examples/1.9.x/server-go/examples/postgresql/get-status.md create mode 100644 examples/1.9.x/server-go/examples/postgresql/get.md create mode 100644 examples/1.9.x/server-go/examples/postgresql/list-backup-policies.md create mode 100644 examples/1.9.x/server-go/examples/postgresql/list-backups.md create mode 100644 examples/1.9.x/server-go/examples/postgresql/list-branches.md create mode 100644 examples/1.9.x/server-go/examples/postgresql/list-extensions.md create mode 100644 examples/1.9.x/server-go/examples/postgresql/list-restorations.md create mode 100644 examples/1.9.x/server-go/examples/postgresql/list-specifications.md create mode 100644 examples/1.9.x/server-go/examples/postgresql/list.md create mode 100644 examples/1.9.x/server-go/examples/postgresql/update-backup-policy.md create mode 100644 examples/1.9.x/server-go/examples/postgresql/update-backup-storage.md create mode 100644 examples/1.9.x/server-go/examples/postgresql/update-credentials.md create mode 100644 examples/1.9.x/server-go/examples/postgresql/update-maintenance.md create mode 100644 examples/1.9.x/server-go/examples/postgresql/update-pooler.md create mode 100644 examples/1.9.x/server-go/examples/postgresql/update.md create mode 100644 examples/1.9.x/server-go/examples/project/update-o-auth-2-appwrite.md create mode 100644 examples/1.9.x/server-go/examples/project/update-waf.md create mode 100644 examples/1.9.x/server-go/examples/tablesdb/create-failover.md create mode 100644 examples/1.9.x/server-go/examples/tablesdb/get-replicas.md create mode 100644 examples/1.9.x/server-go/examples/tablesdb/get-status.md create mode 100644 examples/1.9.x/server-go/examples/tablesdb/list-specifications.md create mode 100644 examples/1.9.x/server-go/examples/waf/create-bypass-rule.md create mode 100644 examples/1.9.x/server-go/examples/waf/create-deny-rule.md create mode 100644 examples/1.9.x/server-go/examples/waf/create-rate-limit-rule.md create mode 100644 examples/1.9.x/server-go/examples/waf/create-redirect-rule.md create mode 100644 examples/1.9.x/server-go/examples/waf/delete-rule.md create mode 100644 examples/1.9.x/server-go/examples/waf/get-rule.md create mode 100644 examples/1.9.x/server-go/examples/waf/list-rules.md create mode 100644 examples/1.9.x/server-go/examples/waf/update-bypass-rule.md create mode 100644 examples/1.9.x/server-go/examples/waf/update-deny-rule.md create mode 100644 examples/1.9.x/server-go/examples/waf/update-rate-limit-rule.md create mode 100644 examples/1.9.x/server-go/examples/waf/update-redirect-rule.md create mode 100644 examples/1.9.x/server-graphql/examples/account/delete-consent-token.md create mode 100644 examples/1.9.x/server-graphql/examples/account/delete-consent.md create mode 100644 examples/1.9.x/server-graphql/examples/account/get-consent-token.md create mode 100644 examples/1.9.x/server-graphql/examples/account/get-consent.md create mode 100644 examples/1.9.x/server-graphql/examples/account/list-consent-tokens.md create mode 100644 examples/1.9.x/server-graphql/examples/account/list-consents.md create mode 100644 examples/1.9.x/server-graphql/examples/health/get-geo-premium.md create mode 100644 examples/1.9.x/server-graphql/examples/health/get-geo.md create mode 100644 examples/1.9.x/server-graphql/examples/health/get-queue-notifications.md create mode 100644 examples/1.9.x/server-graphql/examples/organization/create-membership.md create mode 100644 examples/1.9.x/server-graphql/examples/organization/delete-membership.md create mode 100644 examples/1.9.x/server-graphql/examples/organization/delete.md create mode 100644 examples/1.9.x/server-graphql/examples/organization/get-membership.md create mode 100644 examples/1.9.x/server-graphql/examples/organization/get.md create mode 100644 examples/1.9.x/server-graphql/examples/organization/list-memberships.md create mode 100644 examples/1.9.x/server-graphql/examples/organization/update-membership.md create mode 100644 examples/1.9.x/server-graphql/examples/organization/update.md create mode 100644 examples/1.9.x/server-graphql/examples/project/update-o-auth-2-appwrite.md create mode 100644 examples/1.9.x/server-graphql/examples/tablesdb/create-failover.md create mode 100644 examples/1.9.x/server-graphql/examples/tablesdb/get-replicas.md create mode 100644 examples/1.9.x/server-graphql/examples/tablesdb/get-status.md create mode 100644 examples/1.9.x/server-graphql/examples/tablesdb/list-specifications.md create mode 100644 examples/1.9.x/server-kotlin/java/account/delete-consent-token.md create mode 100644 examples/1.9.x/server-kotlin/java/account/delete-consent.md create mode 100644 examples/1.9.x/server-kotlin/java/account/get-consent-token.md create mode 100644 examples/1.9.x/server-kotlin/java/account/get-consent.md create mode 100644 examples/1.9.x/server-kotlin/java/account/list-consent-tokens.md create mode 100644 examples/1.9.x/server-kotlin/java/account/list-consents.md create mode 100644 examples/1.9.x/server-kotlin/java/health/get-geo-premium.md create mode 100644 examples/1.9.x/server-kotlin/java/health/get-geo.md create mode 100644 examples/1.9.x/server-kotlin/java/health/get-queue-notifications.md create mode 100644 examples/1.9.x/server-kotlin/java/organization/create-membership.md create mode 100644 examples/1.9.x/server-kotlin/java/organization/delete-membership.md create mode 100644 examples/1.9.x/server-kotlin/java/organization/delete.md create mode 100644 examples/1.9.x/server-kotlin/java/organization/get-membership.md create mode 100644 examples/1.9.x/server-kotlin/java/organization/get.md create mode 100644 examples/1.9.x/server-kotlin/java/organization/list-memberships.md create mode 100644 examples/1.9.x/server-kotlin/java/organization/update-membership.md create mode 100644 examples/1.9.x/server-kotlin/java/organization/update.md create mode 100644 examples/1.9.x/server-kotlin/java/project/update-o-auth-2-appwrite.md create mode 100644 examples/1.9.x/server-kotlin/java/tablesdb/create-failover.md create mode 100644 examples/1.9.x/server-kotlin/java/tablesdb/get-replicas.md create mode 100644 examples/1.9.x/server-kotlin/java/tablesdb/get-status.md create mode 100644 examples/1.9.x/server-kotlin/java/tablesdb/list-specifications.md create mode 100644 examples/1.9.x/server-kotlin/kotlin/account/delete-consent-token.md create mode 100644 examples/1.9.x/server-kotlin/kotlin/account/delete-consent.md create mode 100644 examples/1.9.x/server-kotlin/kotlin/account/get-consent-token.md create mode 100644 examples/1.9.x/server-kotlin/kotlin/account/get-consent.md create mode 100644 examples/1.9.x/server-kotlin/kotlin/account/list-consent-tokens.md create mode 100644 examples/1.9.x/server-kotlin/kotlin/account/list-consents.md create mode 100644 examples/1.9.x/server-kotlin/kotlin/health/get-geo-premium.md create mode 100644 examples/1.9.x/server-kotlin/kotlin/health/get-geo.md create mode 100644 examples/1.9.x/server-kotlin/kotlin/health/get-queue-notifications.md create mode 100644 examples/1.9.x/server-kotlin/kotlin/organization/create-membership.md create mode 100644 examples/1.9.x/server-kotlin/kotlin/organization/delete-membership.md create mode 100644 examples/1.9.x/server-kotlin/kotlin/organization/delete.md create mode 100644 examples/1.9.x/server-kotlin/kotlin/organization/get-membership.md create mode 100644 examples/1.9.x/server-kotlin/kotlin/organization/get.md create mode 100644 examples/1.9.x/server-kotlin/kotlin/organization/list-memberships.md create mode 100644 examples/1.9.x/server-kotlin/kotlin/organization/update-membership.md create mode 100644 examples/1.9.x/server-kotlin/kotlin/organization/update.md create mode 100644 examples/1.9.x/server-kotlin/kotlin/project/update-o-auth-2-appwrite.md create mode 100644 examples/1.9.x/server-kotlin/kotlin/tablesdb/create-failover.md create mode 100644 examples/1.9.x/server-kotlin/kotlin/tablesdb/get-replicas.md create mode 100644 examples/1.9.x/server-kotlin/kotlin/tablesdb/get-status.md create mode 100644 examples/1.9.x/server-kotlin/kotlin/tablesdb/list-specifications.md create mode 100644 examples/1.9.x/server-nodejs/examples/account/delete-consent-token.md create mode 100644 examples/1.9.x/server-nodejs/examples/account/delete-consent.md create mode 100644 examples/1.9.x/server-nodejs/examples/account/get-consent-token.md create mode 100644 examples/1.9.x/server-nodejs/examples/account/get-consent.md create mode 100644 examples/1.9.x/server-nodejs/examples/account/list-consent-tokens.md create mode 100644 examples/1.9.x/server-nodejs/examples/account/list-consents.md create mode 100644 examples/1.9.x/server-nodejs/examples/health/get-geo-premium.md create mode 100644 examples/1.9.x/server-nodejs/examples/health/get-geo.md create mode 100644 examples/1.9.x/server-nodejs/examples/health/get-queue-notifications.md create mode 100644 examples/1.9.x/server-nodejs/examples/organization/create-membership.md create mode 100644 examples/1.9.x/server-nodejs/examples/organization/delete-membership.md create mode 100644 examples/1.9.x/server-nodejs/examples/organization/delete.md create mode 100644 examples/1.9.x/server-nodejs/examples/organization/get-membership.md create mode 100644 examples/1.9.x/server-nodejs/examples/organization/get.md create mode 100644 examples/1.9.x/server-nodejs/examples/organization/list-memberships.md create mode 100644 examples/1.9.x/server-nodejs/examples/organization/update-membership.md create mode 100644 examples/1.9.x/server-nodejs/examples/organization/update.md create mode 100644 examples/1.9.x/server-nodejs/examples/project/update-o-auth-2-appwrite.md create mode 100644 examples/1.9.x/server-nodejs/examples/tablesdb/create-failover.md create mode 100644 examples/1.9.x/server-nodejs/examples/tablesdb/get-replicas.md create mode 100644 examples/1.9.x/server-nodejs/examples/tablesdb/get-status.md create mode 100644 examples/1.9.x/server-nodejs/examples/tablesdb/list-specifications.md create mode 100644 examples/1.9.x/server-php/examples/account/delete-consent-token.md create mode 100644 examples/1.9.x/server-php/examples/account/delete-consent.md create mode 100644 examples/1.9.x/server-php/examples/account/get-consent-token.md create mode 100644 examples/1.9.x/server-php/examples/account/get-consent.md create mode 100644 examples/1.9.x/server-php/examples/account/list-consent-tokens.md create mode 100644 examples/1.9.x/server-php/examples/account/list-consents.md create mode 100644 examples/1.9.x/server-php/examples/health/get-geo-premium.md create mode 100644 examples/1.9.x/server-php/examples/health/get-geo.md create mode 100644 examples/1.9.x/server-php/examples/health/get-queue-notifications.md create mode 100644 examples/1.9.x/server-php/examples/organization/create-membership.md create mode 100644 examples/1.9.x/server-php/examples/organization/delete-membership.md create mode 100644 examples/1.9.x/server-php/examples/organization/delete.md create mode 100644 examples/1.9.x/server-php/examples/organization/get-membership.md create mode 100644 examples/1.9.x/server-php/examples/organization/get.md create mode 100644 examples/1.9.x/server-php/examples/organization/list-memberships.md create mode 100644 examples/1.9.x/server-php/examples/organization/update-membership.md create mode 100644 examples/1.9.x/server-php/examples/organization/update.md create mode 100644 examples/1.9.x/server-php/examples/project/update-o-auth-2-appwrite.md create mode 100644 examples/1.9.x/server-php/examples/tablesdb/create-failover.md create mode 100644 examples/1.9.x/server-php/examples/tablesdb/get-replicas.md create mode 100644 examples/1.9.x/server-php/examples/tablesdb/get-status.md create mode 100644 examples/1.9.x/server-php/examples/tablesdb/list-specifications.md create mode 100644 examples/1.9.x/server-python/examples/account/delete-consent-token.md create mode 100644 examples/1.9.x/server-python/examples/account/delete-consent.md create mode 100644 examples/1.9.x/server-python/examples/account/get-consent-token.md create mode 100644 examples/1.9.x/server-python/examples/account/get-consent.md create mode 100644 examples/1.9.x/server-python/examples/account/list-consent-tokens.md create mode 100644 examples/1.9.x/server-python/examples/account/list-consents.md create mode 100644 examples/1.9.x/server-python/examples/apps/list-o-auth-2-scopes.md create mode 100644 examples/1.9.x/server-python/examples/apps/update-labels.md create mode 100644 examples/1.9.x/server-python/examples/health/get-geo-premium.md create mode 100644 examples/1.9.x/server-python/examples/health/get-geo.md create mode 100644 examples/1.9.x/server-python/examples/health/get-queue-notifications.md create mode 100644 examples/1.9.x/server-python/examples/oauth2/authorize-post.md create mode 100644 examples/1.9.x/server-python/examples/oauth2/create-par.md create mode 100644 examples/1.9.x/server-python/examples/oauth2/list-organizations.md create mode 100644 examples/1.9.x/server-python/examples/oauth2/list-projects.md create mode 100644 examples/1.9.x/server-python/examples/organization/create-membership.md create mode 100644 examples/1.9.x/server-python/examples/organization/delete-membership.md create mode 100644 examples/1.9.x/server-python/examples/organization/delete.md create mode 100644 examples/1.9.x/server-python/examples/organization/get-membership.md create mode 100644 examples/1.9.x/server-python/examples/organization/get.md create mode 100644 examples/1.9.x/server-python/examples/organization/list-memberships.md create mode 100644 examples/1.9.x/server-python/examples/organization/update-membership.md create mode 100644 examples/1.9.x/server-python/examples/organization/update.md create mode 100644 examples/1.9.x/server-python/examples/project/update-o-auth-2-appwrite.md create mode 100644 examples/1.9.x/server-python/examples/tablesdb/create-failover.md create mode 100644 examples/1.9.x/server-python/examples/tablesdb/get-replicas.md create mode 100644 examples/1.9.x/server-python/examples/tablesdb/get-status.md create mode 100644 examples/1.9.x/server-python/examples/tablesdb/list-specifications.md create mode 100644 examples/1.9.x/server-python/examples/waf/create-bypass-rule.md create mode 100644 examples/1.9.x/server-python/examples/waf/create-deny-rule.md create mode 100644 examples/1.9.x/server-python/examples/waf/create-rate-limit-rule.md create mode 100644 examples/1.9.x/server-python/examples/waf/create-redirect-rule.md create mode 100644 examples/1.9.x/server-python/examples/waf/delete-rule.md create mode 100644 examples/1.9.x/server-python/examples/waf/get-rule.md create mode 100644 examples/1.9.x/server-python/examples/waf/list-rules.md create mode 100644 examples/1.9.x/server-python/examples/waf/update-bypass-rule.md create mode 100644 examples/1.9.x/server-python/examples/waf/update-deny-rule.md create mode 100644 examples/1.9.x/server-python/examples/waf/update-rate-limit-rule.md create mode 100644 examples/1.9.x/server-python/examples/waf/update-redirect-rule.md create mode 100644 examples/1.9.x/server-rest/examples/account/delete-consent-token.md create mode 100644 examples/1.9.x/server-rest/examples/account/delete-consent.md create mode 100644 examples/1.9.x/server-rest/examples/account/get-consent-token.md create mode 100644 examples/1.9.x/server-rest/examples/account/get-consent.md create mode 100644 examples/1.9.x/server-rest/examples/account/list-consent-tokens.md create mode 100644 examples/1.9.x/server-rest/examples/account/list-consents.md create mode 100644 examples/1.9.x/server-rest/examples/health/get-geo-premium.md create mode 100644 examples/1.9.x/server-rest/examples/health/get-geo.md create mode 100644 examples/1.9.x/server-rest/examples/health/get-queue-notifications.md create mode 100644 examples/1.9.x/server-rest/examples/organization/create-membership.md create mode 100644 examples/1.9.x/server-rest/examples/organization/delete-membership.md create mode 100644 examples/1.9.x/server-rest/examples/organization/delete.md create mode 100644 examples/1.9.x/server-rest/examples/organization/get-membership.md create mode 100644 examples/1.9.x/server-rest/examples/organization/get.md create mode 100644 examples/1.9.x/server-rest/examples/organization/list-memberships.md create mode 100644 examples/1.9.x/server-rest/examples/organization/update-membership.md create mode 100644 examples/1.9.x/server-rest/examples/organization/update.md create mode 100644 examples/1.9.x/server-rest/examples/project/update-o-auth-2-appwrite.md create mode 100644 examples/1.9.x/server-rest/examples/tablesdb/create-failover.md create mode 100644 examples/1.9.x/server-rest/examples/tablesdb/get-replicas.md create mode 100644 examples/1.9.x/server-rest/examples/tablesdb/get-status.md create mode 100644 examples/1.9.x/server-rest/examples/tablesdb/list-specifications.md create mode 100644 examples/1.9.x/server-ruby/examples/account/delete-consent-token.md create mode 100644 examples/1.9.x/server-ruby/examples/account/delete-consent.md create mode 100644 examples/1.9.x/server-ruby/examples/account/get-consent-token.md create mode 100644 examples/1.9.x/server-ruby/examples/account/get-consent.md create mode 100644 examples/1.9.x/server-ruby/examples/account/list-consent-tokens.md create mode 100644 examples/1.9.x/server-ruby/examples/account/list-consents.md create mode 100644 examples/1.9.x/server-ruby/examples/health/get-geo-premium.md create mode 100644 examples/1.9.x/server-ruby/examples/health/get-geo.md create mode 100644 examples/1.9.x/server-ruby/examples/health/get-queue-notifications.md create mode 100644 examples/1.9.x/server-ruby/examples/organization/create-membership.md create mode 100644 examples/1.9.x/server-ruby/examples/organization/delete-membership.md create mode 100644 examples/1.9.x/server-ruby/examples/organization/delete.md create mode 100644 examples/1.9.x/server-ruby/examples/organization/get-membership.md create mode 100644 examples/1.9.x/server-ruby/examples/organization/get.md create mode 100644 examples/1.9.x/server-ruby/examples/organization/list-memberships.md create mode 100644 examples/1.9.x/server-ruby/examples/organization/update-membership.md create mode 100644 examples/1.9.x/server-ruby/examples/organization/update.md create mode 100644 examples/1.9.x/server-ruby/examples/project/update-o-auth-2-appwrite.md create mode 100644 examples/1.9.x/server-ruby/examples/tablesdb/create-failover.md create mode 100644 examples/1.9.x/server-ruby/examples/tablesdb/get-replicas.md create mode 100644 examples/1.9.x/server-ruby/examples/tablesdb/get-status.md create mode 100644 examples/1.9.x/server-ruby/examples/tablesdb/list-specifications.md create mode 100644 examples/1.9.x/server-rust/examples/account/delete-consent-token.md create mode 100644 examples/1.9.x/server-rust/examples/account/delete-consent.md create mode 100644 examples/1.9.x/server-rust/examples/account/get-consent-token.md create mode 100644 examples/1.9.x/server-rust/examples/account/get-consent.md create mode 100644 examples/1.9.x/server-rust/examples/account/list-consent-tokens.md create mode 100644 examples/1.9.x/server-rust/examples/account/list-consents.md create mode 100644 examples/1.9.x/server-rust/examples/health/get-geo-premium.md create mode 100644 examples/1.9.x/server-rust/examples/health/get-geo.md create mode 100644 examples/1.9.x/server-rust/examples/health/get-queue-notifications.md create mode 100644 examples/1.9.x/server-rust/examples/organization/create-membership.md create mode 100644 examples/1.9.x/server-rust/examples/organization/delete-membership.md create mode 100644 examples/1.9.x/server-rust/examples/organization/delete.md create mode 100644 examples/1.9.x/server-rust/examples/organization/get-membership.md create mode 100644 examples/1.9.x/server-rust/examples/organization/get.md create mode 100644 examples/1.9.x/server-rust/examples/organization/list-memberships.md create mode 100644 examples/1.9.x/server-rust/examples/organization/update-membership.md create mode 100644 examples/1.9.x/server-rust/examples/organization/update.md create mode 100644 examples/1.9.x/server-rust/examples/project/update-o-auth-2-appwrite.md create mode 100644 examples/1.9.x/server-rust/examples/tablesdb/create-failover.md create mode 100644 examples/1.9.x/server-rust/examples/tablesdb/get-replicas.md create mode 100644 examples/1.9.x/server-rust/examples/tablesdb/get-status.md create mode 100644 examples/1.9.x/server-rust/examples/tablesdb/list-specifications.md create mode 100644 examples/1.9.x/server-swift/examples/account/delete-consent-token.md create mode 100644 examples/1.9.x/server-swift/examples/account/delete-consent.md create mode 100644 examples/1.9.x/server-swift/examples/account/get-consent-token.md create mode 100644 examples/1.9.x/server-swift/examples/account/get-consent.md create mode 100644 examples/1.9.x/server-swift/examples/account/list-consent-tokens.md create mode 100644 examples/1.9.x/server-swift/examples/account/list-consents.md create mode 100644 examples/1.9.x/server-swift/examples/health/get-geo-premium.md create mode 100644 examples/1.9.x/server-swift/examples/health/get-geo.md create mode 100644 examples/1.9.x/server-swift/examples/health/get-queue-notifications.md create mode 100644 examples/1.9.x/server-swift/examples/organization/create-membership.md create mode 100644 examples/1.9.x/server-swift/examples/organization/delete-membership.md create mode 100644 examples/1.9.x/server-swift/examples/organization/delete.md create mode 100644 examples/1.9.x/server-swift/examples/organization/get-membership.md create mode 100644 examples/1.9.x/server-swift/examples/organization/get.md create mode 100644 examples/1.9.x/server-swift/examples/organization/list-memberships.md create mode 100644 examples/1.9.x/server-swift/examples/organization/update-membership.md create mode 100644 examples/1.9.x/server-swift/examples/organization/update.md create mode 100644 examples/1.9.x/server-swift/examples/project/update-o-auth-2-appwrite.md create mode 100644 examples/1.9.x/server-swift/examples/tablesdb/create-failover.md create mode 100644 examples/1.9.x/server-swift/examples/tablesdb/get-replicas.md create mode 100644 examples/1.9.x/server-swift/examples/tablesdb/get-status.md create mode 100644 examples/1.9.x/server-swift/examples/tablesdb/list-specifications.md diff --git a/examples/1.9.x/client-android/java/account/delete-consent-token.md b/examples/1.9.x/client-android/java/account/delete-consent-token.md new file mode 100644 index 000000000..05984a0e2 --- /dev/null +++ b/examples/1.9.x/client-android/java/account/delete-consent-token.md @@ -0,0 +1,25 @@ +```java +import io.appwrite.Client; +import io.appwrite.coroutines.CoroutineCallback; +import io.appwrite.services.Account; + +Client client = new Client(context) + .setEndpoint("https://.cloud.appwrite.io/v1") // Your API Endpoint + .setProject(""); // Your project ID + +Account account = new Account(client); + +account.deleteConsentToken( + "", // consentId + "", // tokenId + new CoroutineCallback<>((result, error) -> { + if (error != null) { + error.printStackTrace(); + return; + } + + Log.d("Appwrite", result.toString()); + }) +); + +``` diff --git a/examples/1.9.x/client-android/java/account/delete-consent.md b/examples/1.9.x/client-android/java/account/delete-consent.md new file mode 100644 index 000000000..b8e37873c --- /dev/null +++ b/examples/1.9.x/client-android/java/account/delete-consent.md @@ -0,0 +1,24 @@ +```java +import io.appwrite.Client; +import io.appwrite.coroutines.CoroutineCallback; +import io.appwrite.services.Account; + +Client client = new Client(context) + .setEndpoint("https://.cloud.appwrite.io/v1") // Your API Endpoint + .setProject(""); // Your project ID + +Account account = new Account(client); + +account.deleteConsent( + "", // consentId + new CoroutineCallback<>((result, error) -> { + if (error != null) { + error.printStackTrace(); + return; + } + + Log.d("Appwrite", result.toString()); + }) +); + +``` diff --git a/examples/1.9.x/client-android/java/account/get-consent-token.md b/examples/1.9.x/client-android/java/account/get-consent-token.md new file mode 100644 index 000000000..8fa68073b --- /dev/null +++ b/examples/1.9.x/client-android/java/account/get-consent-token.md @@ -0,0 +1,25 @@ +```java +import io.appwrite.Client; +import io.appwrite.coroutines.CoroutineCallback; +import io.appwrite.services.Account; + +Client client = new Client(context) + .setEndpoint("https://.cloud.appwrite.io/v1") // Your API Endpoint + .setProject(""); // Your project ID + +Account account = new Account(client); + +account.getConsentToken( + "", // consentId + "", // tokenId + new CoroutineCallback<>((result, error) -> { + if (error != null) { + error.printStackTrace(); + return; + } + + Log.d("Appwrite", result.toString()); + }) +); + +``` diff --git a/examples/1.9.x/client-android/java/account/get-consent.md b/examples/1.9.x/client-android/java/account/get-consent.md new file mode 100644 index 000000000..800742951 --- /dev/null +++ b/examples/1.9.x/client-android/java/account/get-consent.md @@ -0,0 +1,24 @@ +```java +import io.appwrite.Client; +import io.appwrite.coroutines.CoroutineCallback; +import io.appwrite.services.Account; + +Client client = new Client(context) + .setEndpoint("https://.cloud.appwrite.io/v1") // Your API Endpoint + .setProject(""); // Your project ID + +Account account = new Account(client); + +account.getConsent( + "", // consentId + new CoroutineCallback<>((result, error) -> { + if (error != null) { + error.printStackTrace(); + return; + } + + Log.d("Appwrite", result.toString()); + }) +); + +``` diff --git a/examples/1.9.x/client-android/java/account/list-consent-tokens.md b/examples/1.9.x/client-android/java/account/list-consent-tokens.md new file mode 100644 index 000000000..232389c1a --- /dev/null +++ b/examples/1.9.x/client-android/java/account/list-consent-tokens.md @@ -0,0 +1,26 @@ +```java +import io.appwrite.Client; +import io.appwrite.coroutines.CoroutineCallback; +import io.appwrite.services.Account; + +Client client = new Client(context) + .setEndpoint("https://.cloud.appwrite.io/v1") // Your API Endpoint + .setProject(""); // Your project ID + +Account account = new Account(client); + +account.listConsentTokens( + "", // consentId + 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/1.9.x/client-android/java/account/list-consents.md b/examples/1.9.x/client-android/java/account/list-consents.md new file mode 100644 index 000000000..03222c908 --- /dev/null +++ b/examples/1.9.x/client-android/java/account/list-consents.md @@ -0,0 +1,25 @@ +```java +import io.appwrite.Client; +import io.appwrite.coroutines.CoroutineCallback; +import io.appwrite.services.Account; + +Client client = new Client(context) + .setEndpoint("https://.cloud.appwrite.io/v1") // Your API Endpoint + .setProject(""); // Your project ID + +Account account = new Account(client); + +account.listConsents( + 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/1.9.x/client-android/kotlin/account/delete-consent-token.md b/examples/1.9.x/client-android/kotlin/account/delete-consent-token.md new file mode 100644 index 000000000..82e2d5356 --- /dev/null +++ b/examples/1.9.x/client-android/kotlin/account/delete-consent-token.md @@ -0,0 +1,16 @@ +```kotlin +import io.appwrite.Client +import io.appwrite.coroutines.CoroutineCallback +import io.appwrite.services.Account + +val client = Client(context) + .setEndpoint("https://.cloud.appwrite.io/v1") // Your API Endpoint + .setProject("") // Your project ID + +val account = Account(client) + +val result = account.deleteConsentToken( + consentId = "", + tokenId = "", +) +``` diff --git a/examples/1.9.x/client-android/kotlin/account/delete-consent.md b/examples/1.9.x/client-android/kotlin/account/delete-consent.md new file mode 100644 index 000000000..278342a8c --- /dev/null +++ b/examples/1.9.x/client-android/kotlin/account/delete-consent.md @@ -0,0 +1,15 @@ +```kotlin +import io.appwrite.Client +import io.appwrite.coroutines.CoroutineCallback +import io.appwrite.services.Account + +val client = Client(context) + .setEndpoint("https://.cloud.appwrite.io/v1") // Your API Endpoint + .setProject("") // Your project ID + +val account = Account(client) + +val result = account.deleteConsent( + consentId = "", +) +``` diff --git a/examples/1.9.x/client-android/kotlin/account/get-consent-token.md b/examples/1.9.x/client-android/kotlin/account/get-consent-token.md new file mode 100644 index 000000000..3109987d0 --- /dev/null +++ b/examples/1.9.x/client-android/kotlin/account/get-consent-token.md @@ -0,0 +1,16 @@ +```kotlin +import io.appwrite.Client +import io.appwrite.coroutines.CoroutineCallback +import io.appwrite.services.Account + +val client = Client(context) + .setEndpoint("https://.cloud.appwrite.io/v1") // Your API Endpoint + .setProject("") // Your project ID + +val account = Account(client) + +val result = account.getConsentToken( + consentId = "", + tokenId = "", +) +``` diff --git a/examples/1.9.x/client-android/kotlin/account/get-consent.md b/examples/1.9.x/client-android/kotlin/account/get-consent.md new file mode 100644 index 000000000..be31d5f9a --- /dev/null +++ b/examples/1.9.x/client-android/kotlin/account/get-consent.md @@ -0,0 +1,15 @@ +```kotlin +import io.appwrite.Client +import io.appwrite.coroutines.CoroutineCallback +import io.appwrite.services.Account + +val client = Client(context) + .setEndpoint("https://.cloud.appwrite.io/v1") // Your API Endpoint + .setProject("") // Your project ID + +val account = Account(client) + +val result = account.getConsent( + consentId = "", +) +``` diff --git a/examples/1.9.x/client-android/kotlin/account/list-consent-tokens.md b/examples/1.9.x/client-android/kotlin/account/list-consent-tokens.md new file mode 100644 index 000000000..8fab57d12 --- /dev/null +++ b/examples/1.9.x/client-android/kotlin/account/list-consent-tokens.md @@ -0,0 +1,17 @@ +```kotlin +import io.appwrite.Client +import io.appwrite.coroutines.CoroutineCallback +import io.appwrite.services.Account + +val client = Client(context) + .setEndpoint("https://.cloud.appwrite.io/v1") // Your API Endpoint + .setProject("") // Your project ID + +val account = Account(client) + +val result = account.listConsentTokens( + consentId = "", + queries = listOf(), // (optional) + total = false, // (optional) +) +``` diff --git a/examples/1.9.x/client-android/kotlin/account/list-consents.md b/examples/1.9.x/client-android/kotlin/account/list-consents.md new file mode 100644 index 000000000..fe3928195 --- /dev/null +++ b/examples/1.9.x/client-android/kotlin/account/list-consents.md @@ -0,0 +1,16 @@ +```kotlin +import io.appwrite.Client +import io.appwrite.coroutines.CoroutineCallback +import io.appwrite.services.Account + +val client = Client(context) + .setEndpoint("https://.cloud.appwrite.io/v1") // Your API Endpoint + .setProject("") // Your project ID + +val account = Account(client) + +val result = account.listConsents( + queries = listOf(), // (optional) + total = false, // (optional) +) +``` diff --git a/examples/1.9.x/client-apple/examples/account/delete-consent-token.md b/examples/1.9.x/client-apple/examples/account/delete-consent-token.md new file mode 100644 index 000000000..ef9b8a2fc --- /dev/null +++ b/examples/1.9.x/client-apple/examples/account/delete-consent-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 account = Account(client) + +let result = try await account.deleteConsentToken( + consentId: "", + tokenId: "" +) + +``` diff --git a/examples/1.9.x/client-apple/examples/account/delete-consent.md b/examples/1.9.x/client-apple/examples/account/delete-consent.md new file mode 100644 index 000000000..862b1e3a2 --- /dev/null +++ b/examples/1.9.x/client-apple/examples/account/delete-consent.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 account = Account(client) + +let result = try await account.deleteConsent( + consentId: "" +) + +``` diff --git a/examples/1.9.x/client-apple/examples/account/get-consent-token.md b/examples/1.9.x/client-apple/examples/account/get-consent-token.md new file mode 100644 index 000000000..502f79ed1 --- /dev/null +++ b/examples/1.9.x/client-apple/examples/account/get-consent-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 account = Account(client) + +let oauth2ConsentToken = try await account.getConsentToken( + consentId: "", + tokenId: "" +) + +``` diff --git a/examples/1.9.x/client-apple/examples/account/get-consent.md b/examples/1.9.x/client-apple/examples/account/get-consent.md new file mode 100644 index 000000000..a7380c48b --- /dev/null +++ b/examples/1.9.x/client-apple/examples/account/get-consent.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 account = Account(client) + +let oauth2Consent = try await account.getConsent( + consentId: "" +) + +``` diff --git a/examples/1.9.x/client-apple/examples/account/list-consent-tokens.md b/examples/1.9.x/client-apple/examples/account/list-consent-tokens.md new file mode 100644 index 000000000..bc3231697 --- /dev/null +++ b/examples/1.9.x/client-apple/examples/account/list-consent-tokens.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 account = Account(client) + +let oauth2ConsentTokenList = try await account.listConsentTokens( + consentId: "", + queries: [], // optional + total: false // optional +) + +``` diff --git a/examples/1.9.x/client-apple/examples/account/list-consents.md b/examples/1.9.x/client-apple/examples/account/list-consents.md new file mode 100644 index 000000000..25b50d5e9 --- /dev/null +++ b/examples/1.9.x/client-apple/examples/account/list-consents.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 account = Account(client) + +let oauth2ConsentList = try await account.listConsents( + queries: [], // optional + total: false // optional +) + +``` diff --git a/examples/1.9.x/client-flutter/examples/account/delete-consent-token.md b/examples/1.9.x/client-flutter/examples/account/delete-consent-token.md new file mode 100644 index 000000000..9c8774793 --- /dev/null +++ b/examples/1.9.x/client-flutter/examples/account/delete-consent-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 + +Account account = Account(client); + +await account.deleteConsentToken( + consentId: '', + tokenId: '', +); +``` diff --git a/examples/1.9.x/client-flutter/examples/account/delete-consent.md b/examples/1.9.x/client-flutter/examples/account/delete-consent.md new file mode 100644 index 000000000..78799117e --- /dev/null +++ b/examples/1.9.x/client-flutter/examples/account/delete-consent.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 + +Account account = Account(client); + +await account.deleteConsent( + consentId: '', +); +``` diff --git a/examples/1.9.x/client-flutter/examples/account/get-consent-token.md b/examples/1.9.x/client-flutter/examples/account/get-consent-token.md new file mode 100644 index 000000000..67a0d842d --- /dev/null +++ b/examples/1.9.x/client-flutter/examples/account/get-consent-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 + +Account account = Account(client); + +Oauth2ConsentToken result = await account.getConsentToken( + consentId: '', + tokenId: '', +); +``` diff --git a/examples/1.9.x/client-flutter/examples/account/get-consent.md b/examples/1.9.x/client-flutter/examples/account/get-consent.md new file mode 100644 index 000000000..aff627251 --- /dev/null +++ b/examples/1.9.x/client-flutter/examples/account/get-consent.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 + +Account account = Account(client); + +Oauth2Consent result = await account.getConsent( + consentId: '', +); +``` diff --git a/examples/1.9.x/client-flutter/examples/account/list-consent-tokens.md b/examples/1.9.x/client-flutter/examples/account/list-consent-tokens.md new file mode 100644 index 000000000..835c7775a --- /dev/null +++ b/examples/1.9.x/client-flutter/examples/account/list-consent-tokens.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 + +Account account = Account(client); + +Oauth2ConsentTokenList result = await account.listConsentTokens( + consentId: '', + queries: [], // optional + total: false, // optional +); +``` diff --git a/examples/1.9.x/client-flutter/examples/account/list-consents.md b/examples/1.9.x/client-flutter/examples/account/list-consents.md new file mode 100644 index 000000000..d39f05479 --- /dev/null +++ b/examples/1.9.x/client-flutter/examples/account/list-consents.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 + +Account account = Account(client); + +Oauth2ConsentList result = await account.listConsents( + queries: [], // optional + total: false, // optional +); +``` diff --git a/examples/1.9.x/client-graphql/examples/account/delete-consent-token.md b/examples/1.9.x/client-graphql/examples/account/delete-consent-token.md new file mode 100644 index 000000000..7e3f547c6 --- /dev/null +++ b/examples/1.9.x/client-graphql/examples/account/delete-consent-token.md @@ -0,0 +1,18 @@ +```graphql +mutation { + accountDeleteConsentToken( + consentId: "", + tokenId: "" + ) { + status + } +} +mutation { + accountDeleteConsentToken( + consentId: "", + tokenId: "" + ) { + status + } +} +``` diff --git a/examples/1.9.x/client-graphql/examples/account/delete-consent.md b/examples/1.9.x/client-graphql/examples/account/delete-consent.md new file mode 100644 index 000000000..c14618395 --- /dev/null +++ b/examples/1.9.x/client-graphql/examples/account/delete-consent.md @@ -0,0 +1,16 @@ +```graphql +mutation { + accountDeleteConsent( + consentId: "" + ) { + status + } +} +mutation { + accountDeleteConsent( + consentId: "" + ) { + status + } +} +``` diff --git a/examples/1.9.x/client-graphql/examples/account/get-consent-token.md b/examples/1.9.x/client-graphql/examples/account/get-consent-token.md new file mode 100644 index 000000000..8294afb8d --- /dev/null +++ b/examples/1.9.x/client-graphql/examples/account/get-consent-token.md @@ -0,0 +1,20 @@ +```graphql +query { + accountGetConsentToken( + consentId: "", + tokenId: "" + ) { + _id + _createdAt + _updatedAt + consentId + userId + appId + cimdUrl + scopes + resources + authorizationDetails + expire + } +} +``` diff --git a/examples/1.9.x/client-graphql/examples/account/get-consent.md b/examples/1.9.x/client-graphql/examples/account/get-consent.md new file mode 100644 index 000000000..999c7aedd --- /dev/null +++ b/examples/1.9.x/client-graphql/examples/account/get-consent.md @@ -0,0 +1,18 @@ +```graphql +query { + accountGetConsent( + consentId: "" + ) { + _id + _createdAt + _updatedAt + userId + appId + cimdUrl + scopes + resources + authorizationDetails + expire + } +} +``` diff --git a/examples/1.9.x/client-graphql/examples/account/list-consent-tokens.md b/examples/1.9.x/client-graphql/examples/account/list-consent-tokens.md new file mode 100644 index 000000000..1bdb2d9fe --- /dev/null +++ b/examples/1.9.x/client-graphql/examples/account/list-consent-tokens.md @@ -0,0 +1,24 @@ +```graphql +query { + accountListConsentTokens( + consentId: "", + queries: [], + total: false + ) { + total + tokens { + _id + _createdAt + _updatedAt + consentId + userId + appId + cimdUrl + scopes + resources + authorizationDetails + expire + } + } +} +``` diff --git a/examples/1.9.x/client-graphql/examples/account/list-consents.md b/examples/1.9.x/client-graphql/examples/account/list-consents.md new file mode 100644 index 000000000..cca99e441 --- /dev/null +++ b/examples/1.9.x/client-graphql/examples/account/list-consents.md @@ -0,0 +1,22 @@ +```graphql +query { + accountListConsents( + queries: [], + total: false + ) { + total + consents { + _id + _createdAt + _updatedAt + userId + appId + cimdUrl + scopes + resources + authorizationDetails + expire + } + } +} +``` diff --git a/examples/1.9.x/client-graphql/examples/locale/get.md b/examples/1.9.x/client-graphql/examples/locale/get.md index c591b694c..5ab0b0f78 100644 --- a/examples/1.9.x/client-graphql/examples/locale/get.md +++ b/examples/1.9.x/client-graphql/examples/locale/get.md @@ -8,6 +8,17 @@ query { continent eu currency + city + timeZone + postalCode + latitude + longitude + autonomousSystemNumber + autonomousSystemOrganization + isp + connectionType + connectionUsageType + connectionOrganization } } ``` diff --git a/examples/1.9.x/client-react-native/examples/account/delete-consent-token.md b/examples/1.9.x/client-react-native/examples/account/delete-consent-token.md new file mode 100644 index 000000000..66bc489c3 --- /dev/null +++ b/examples/1.9.x/client-react-native/examples/account/delete-consent-token.md @@ -0,0 +1,16 @@ +```javascript +import { Client, Account } from "react-native-appwrite"; + +const client = new Client() + .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint + .setProject(''); // Your project ID + +const account = new Account(client); + +const result = await account.deleteConsentToken({ + consentId: '', + tokenId: '' +}); + +console.log(result); +``` diff --git a/examples/1.9.x/client-react-native/examples/account/delete-consent.md b/examples/1.9.x/client-react-native/examples/account/delete-consent.md new file mode 100644 index 000000000..825d0bf63 --- /dev/null +++ b/examples/1.9.x/client-react-native/examples/account/delete-consent.md @@ -0,0 +1,15 @@ +```javascript +import { Client, Account } from "react-native-appwrite"; + +const client = new Client() + .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint + .setProject(''); // Your project ID + +const account = new Account(client); + +const result = await account.deleteConsent({ + consentId: '' +}); + +console.log(result); +``` diff --git a/examples/1.9.x/client-react-native/examples/account/get-consent-token.md b/examples/1.9.x/client-react-native/examples/account/get-consent-token.md new file mode 100644 index 000000000..cb5a624a8 --- /dev/null +++ b/examples/1.9.x/client-react-native/examples/account/get-consent-token.md @@ -0,0 +1,16 @@ +```javascript +import { Client, Account } from "react-native-appwrite"; + +const client = new Client() + .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint + .setProject(''); // Your project ID + +const account = new Account(client); + +const result = await account.getConsentToken({ + consentId: '', + tokenId: '' +}); + +console.log(result); +``` diff --git a/examples/1.9.x/client-react-native/examples/account/get-consent.md b/examples/1.9.x/client-react-native/examples/account/get-consent.md new file mode 100644 index 000000000..1d095b008 --- /dev/null +++ b/examples/1.9.x/client-react-native/examples/account/get-consent.md @@ -0,0 +1,15 @@ +```javascript +import { Client, Account } from "react-native-appwrite"; + +const client = new Client() + .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint + .setProject(''); // Your project ID + +const account = new Account(client); + +const result = await account.getConsent({ + consentId: '' +}); + +console.log(result); +``` diff --git a/examples/1.9.x/client-react-native/examples/account/list-consent-tokens.md b/examples/1.9.x/client-react-native/examples/account/list-consent-tokens.md new file mode 100644 index 000000000..60d45c3bd --- /dev/null +++ b/examples/1.9.x/client-react-native/examples/account/list-consent-tokens.md @@ -0,0 +1,17 @@ +```javascript +import { Client, Account } from "react-native-appwrite"; + +const client = new Client() + .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint + .setProject(''); // Your project ID + +const account = new Account(client); + +const result = await account.listConsentTokens({ + consentId: '', + queries: [], // optional + total: false // optional +}); + +console.log(result); +``` diff --git a/examples/1.9.x/client-react-native/examples/account/list-consents.md b/examples/1.9.x/client-react-native/examples/account/list-consents.md new file mode 100644 index 000000000..4f1c799a4 --- /dev/null +++ b/examples/1.9.x/client-react-native/examples/account/list-consents.md @@ -0,0 +1,16 @@ +```javascript +import { Client, Account } from "react-native-appwrite"; + +const client = new Client() + .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint + .setProject(''); // Your project ID + +const account = new Account(client); + +const result = await account.listConsents({ + queries: [], // optional + total: false // optional +}); + +console.log(result); +``` diff --git a/examples/1.9.x/client-rest/examples/account/delete-consent-token.md b/examples/1.9.x/client-rest/examples/account/delete-consent-token.md new file mode 100644 index 000000000..3fde857c6 --- /dev/null +++ b/examples/1.9.x/client-rest/examples/account/delete-consent-token.md @@ -0,0 +1,10 @@ +```http +DELETE /v1/account/consents/{consentId}/tokens/{tokenId} HTTP/1.1 +Host: cloud.appwrite.io +Content-Type: application/json +Accept: application/json +X-Appwrite-Response-Format: 1.9.5 +X-Appwrite-Project: + + +``` diff --git a/examples/1.9.x/client-rest/examples/account/delete-consent.md b/examples/1.9.x/client-rest/examples/account/delete-consent.md new file mode 100644 index 000000000..eee55beca --- /dev/null +++ b/examples/1.9.x/client-rest/examples/account/delete-consent.md @@ -0,0 +1,10 @@ +```http +DELETE /v1/account/consents/{consentId} HTTP/1.1 +Host: cloud.appwrite.io +Content-Type: application/json +Accept: application/json +X-Appwrite-Response-Format: 1.9.5 +X-Appwrite-Project: + + +``` diff --git a/examples/1.9.x/client-rest/examples/account/get-consent-token.md b/examples/1.9.x/client-rest/examples/account/get-consent-token.md new file mode 100644 index 000000000..50d0ff350 --- /dev/null +++ b/examples/1.9.x/client-rest/examples/account/get-consent-token.md @@ -0,0 +1,8 @@ +```http +GET /v1/account/consents/{consentId}/tokens/{tokenId} HTTP/1.1 +Host: cloud.appwrite.io +Accept: application/json +X-Appwrite-Response-Format: 1.9.5 +X-Appwrite-Project: + +``` diff --git a/examples/1.9.x/client-rest/examples/account/get-consent.md b/examples/1.9.x/client-rest/examples/account/get-consent.md new file mode 100644 index 000000000..a7d632b5a --- /dev/null +++ b/examples/1.9.x/client-rest/examples/account/get-consent.md @@ -0,0 +1,8 @@ +```http +GET /v1/account/consents/{consentId} HTTP/1.1 +Host: cloud.appwrite.io +Accept: application/json +X-Appwrite-Response-Format: 1.9.5 +X-Appwrite-Project: + +``` diff --git a/examples/1.9.x/client-rest/examples/account/list-consent-tokens.md b/examples/1.9.x/client-rest/examples/account/list-consent-tokens.md new file mode 100644 index 000000000..7a0e0648d --- /dev/null +++ b/examples/1.9.x/client-rest/examples/account/list-consent-tokens.md @@ -0,0 +1,8 @@ +```http +GET /v1/account/consents/{consentId}/tokens HTTP/1.1 +Host: cloud.appwrite.io +Accept: application/json +X-Appwrite-Response-Format: 1.9.5 +X-Appwrite-Project: + +``` diff --git a/examples/1.9.x/client-rest/examples/account/list-consents.md b/examples/1.9.x/client-rest/examples/account/list-consents.md new file mode 100644 index 000000000..1bb05629c --- /dev/null +++ b/examples/1.9.x/client-rest/examples/account/list-consents.md @@ -0,0 +1,8 @@ +```http +GET /v1/account/consents HTTP/1.1 +Host: cloud.appwrite.io +Accept: application/json +X-Appwrite-Response-Format: 1.9.5 +X-Appwrite-Project: + +``` diff --git a/examples/1.9.x/client-web/examples/account/delete-consent-token.md b/examples/1.9.x/client-web/examples/account/delete-consent-token.md new file mode 100644 index 000000000..66d85c074 --- /dev/null +++ b/examples/1.9.x/client-web/examples/account/delete-consent-token.md @@ -0,0 +1,16 @@ +```javascript +import { Client, Account } from "appwrite"; + +const client = new Client() + .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint + .setProject(''); // Your project ID + +const account = new Account(client); + +const result = await account.deleteConsentToken({ + consentId: '', + tokenId: '' +}); + +console.log(result); +``` diff --git a/examples/1.9.x/client-web/examples/account/delete-consent.md b/examples/1.9.x/client-web/examples/account/delete-consent.md new file mode 100644 index 000000000..d8056e47a --- /dev/null +++ b/examples/1.9.x/client-web/examples/account/delete-consent.md @@ -0,0 +1,15 @@ +```javascript +import { Client, Account } from "appwrite"; + +const client = new Client() + .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint + .setProject(''); // Your project ID + +const account = new Account(client); + +const result = await account.deleteConsent({ + consentId: '' +}); + +console.log(result); +``` diff --git a/examples/1.9.x/client-web/examples/account/get-consent-token.md b/examples/1.9.x/client-web/examples/account/get-consent-token.md new file mode 100644 index 000000000..996d1efcd --- /dev/null +++ b/examples/1.9.x/client-web/examples/account/get-consent-token.md @@ -0,0 +1,16 @@ +```javascript +import { Client, Account } from "appwrite"; + +const client = new Client() + .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint + .setProject(''); // Your project ID + +const account = new Account(client); + +const result = await account.getConsentToken({ + consentId: '', + tokenId: '' +}); + +console.log(result); +``` diff --git a/examples/1.9.x/client-web/examples/account/get-consent.md b/examples/1.9.x/client-web/examples/account/get-consent.md new file mode 100644 index 000000000..8e9068aa6 --- /dev/null +++ b/examples/1.9.x/client-web/examples/account/get-consent.md @@ -0,0 +1,15 @@ +```javascript +import { Client, Account } from "appwrite"; + +const client = new Client() + .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint + .setProject(''); // Your project ID + +const account = new Account(client); + +const result = await account.getConsent({ + consentId: '' +}); + +console.log(result); +``` diff --git a/examples/1.9.x/client-web/examples/account/list-consent-tokens.md b/examples/1.9.x/client-web/examples/account/list-consent-tokens.md new file mode 100644 index 000000000..46c88b9a4 --- /dev/null +++ b/examples/1.9.x/client-web/examples/account/list-consent-tokens.md @@ -0,0 +1,17 @@ +```javascript +import { Client, Account } from "appwrite"; + +const client = new Client() + .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint + .setProject(''); // Your project ID + +const account = new Account(client); + +const result = await account.listConsentTokens({ + consentId: '', + queries: [], // optional + total: false // optional +}); + +console.log(result); +``` diff --git a/examples/1.9.x/client-web/examples/account/list-consents.md b/examples/1.9.x/client-web/examples/account/list-consents.md new file mode 100644 index 000000000..e0943608e --- /dev/null +++ b/examples/1.9.x/client-web/examples/account/list-consents.md @@ -0,0 +1,16 @@ +```javascript +import { Client, Account } from "appwrite"; + +const client = new Client() + .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint + .setProject(''); // Your project ID + +const account = new Account(client); + +const result = await account.listConsents({ + queries: [], // optional + total: false // optional +}); + +console.log(result); +``` diff --git a/examples/1.9.x/console-cli/examples/account/delete-consent-token.md b/examples/1.9.x/console-cli/examples/account/delete-consent-token.md new file mode 100644 index 000000000..c6ee30ce6 --- /dev/null +++ b/examples/1.9.x/console-cli/examples/account/delete-consent-token.md @@ -0,0 +1,5 @@ +```bash +appwrite account delete-consent-token \ + --consent-id \ + --token-id +``` diff --git a/examples/1.9.x/console-cli/examples/account/delete-consent.md b/examples/1.9.x/console-cli/examples/account/delete-consent.md new file mode 100644 index 000000000..d8cbf4fd8 --- /dev/null +++ b/examples/1.9.x/console-cli/examples/account/delete-consent.md @@ -0,0 +1,4 @@ +```bash +appwrite account delete-consent \ + --consent-id +``` diff --git a/examples/1.9.x/console-cli/examples/account/get-consent-token.md b/examples/1.9.x/console-cli/examples/account/get-consent-token.md new file mode 100644 index 000000000..fc544dc1e --- /dev/null +++ b/examples/1.9.x/console-cli/examples/account/get-consent-token.md @@ -0,0 +1,5 @@ +```bash +appwrite account get-consent-token \ + --consent-id \ + --token-id +``` diff --git a/examples/1.9.x/console-cli/examples/account/get-consent.md b/examples/1.9.x/console-cli/examples/account/get-consent.md new file mode 100644 index 000000000..0a9d95927 --- /dev/null +++ b/examples/1.9.x/console-cli/examples/account/get-consent.md @@ -0,0 +1,4 @@ +```bash +appwrite account get-consent \ + --consent-id +``` diff --git a/examples/1.9.x/console-cli/examples/account/list-consent-tokens.md b/examples/1.9.x/console-cli/examples/account/list-consent-tokens.md new file mode 100644 index 000000000..0b953806d --- /dev/null +++ b/examples/1.9.x/console-cli/examples/account/list-consent-tokens.md @@ -0,0 +1,5 @@ +```bash +appwrite account list-consent-tokens \ + --consent-id \ + --limit 25 +``` diff --git a/examples/1.9.x/console-cli/examples/account/list-consents.md b/examples/1.9.x/console-cli/examples/account/list-consents.md new file mode 100644 index 000000000..44221d1bb --- /dev/null +++ b/examples/1.9.x/console-cli/examples/account/list-consents.md @@ -0,0 +1,4 @@ +```bash +appwrite account list-consents \ + --limit 25 +``` diff --git a/examples/1.9.x/console-cli/examples/health/get-geo-premium.md b/examples/1.9.x/console-cli/examples/health/get-geo-premium.md new file mode 100644 index 000000000..b3068b1d5 --- /dev/null +++ b/examples/1.9.x/console-cli/examples/health/get-geo-premium.md @@ -0,0 +1,3 @@ +```bash +appwrite health get-geo-premium +``` diff --git a/examples/1.9.x/console-cli/examples/health/get-geo.md b/examples/1.9.x/console-cli/examples/health/get-geo.md new file mode 100644 index 000000000..e1f057124 --- /dev/null +++ b/examples/1.9.x/console-cli/examples/health/get-geo.md @@ -0,0 +1,3 @@ +```bash +appwrite health get-geo +``` diff --git a/examples/1.9.x/console-cli/examples/health/get-queue-notifications.md b/examples/1.9.x/console-cli/examples/health/get-queue-notifications.md new file mode 100644 index 000000000..2e3c385af --- /dev/null +++ b/examples/1.9.x/console-cli/examples/health/get-queue-notifications.md @@ -0,0 +1,3 @@ +```bash +appwrite health get-queue-notifications +``` diff --git a/examples/1.9.x/console-cli/examples/migrations/create-csv-export.md b/examples/1.9.x/console-cli/examples/migrations/create-csv-export.md index 4f00222e6..286e023ee 100644 --- a/examples/1.9.x/console-cli/examples/migrations/create-csv-export.md +++ b/examples/1.9.x/console-cli/examples/migrations/create-csv-export.md @@ -1,6 +1,7 @@ ```bash appwrite migrations create-csv-export \ - --resource-id \ + --database-id \ + --collection-id \ --filename \ --limit 25 ``` diff --git a/examples/1.9.x/console-cli/examples/migrations/create-csv-import.md b/examples/1.9.x/console-cli/examples/migrations/create-csv-import.md index 032771eb7..688b668ef 100644 --- a/examples/1.9.x/console-cli/examples/migrations/create-csv-import.md +++ b/examples/1.9.x/console-cli/examples/migrations/create-csv-import.md @@ -2,5 +2,6 @@ appwrite migrations create-csv-import \ --bucket-id \ --file-id \ - --resource-id + --database-id \ + --collection-id ``` diff --git a/examples/1.9.x/console-cli/examples/migrations/create-json-export.md b/examples/1.9.x/console-cli/examples/migrations/create-json-export.md index 5dbf4d624..8d1aa96ae 100644 --- a/examples/1.9.x/console-cli/examples/migrations/create-json-export.md +++ b/examples/1.9.x/console-cli/examples/migrations/create-json-export.md @@ -1,6 +1,7 @@ ```bash appwrite migrations create-json-export \ - --resource-id \ + --database-id \ + --collection-id \ --filename \ --limit 25 ``` diff --git a/examples/1.9.x/console-cli/examples/migrations/create-json-import.md b/examples/1.9.x/console-cli/examples/migrations/create-json-import.md index 7ea17918b..3f79f16f2 100644 --- a/examples/1.9.x/console-cli/examples/migrations/create-json-import.md +++ b/examples/1.9.x/console-cli/examples/migrations/create-json-import.md @@ -2,5 +2,6 @@ appwrite migrations create-json-import \ --bucket-id \ --file-id \ - --resource-id + --database-id \ + --collection-id ``` diff --git a/examples/1.9.x/console-cli/examples/notifications/list.md b/examples/1.9.x/console-cli/examples/notifications/list.md new file mode 100644 index 000000000..3e5a8452c --- /dev/null +++ b/examples/1.9.x/console-cli/examples/notifications/list.md @@ -0,0 +1,4 @@ +```bash +appwrite notifications list \ + --limit 25 +``` diff --git a/examples/1.9.x/console-cli/examples/notifications/update.md b/examples/1.9.x/console-cli/examples/notifications/update.md new file mode 100644 index 000000000..d02feb7c0 --- /dev/null +++ b/examples/1.9.x/console-cli/examples/notifications/update.md @@ -0,0 +1,5 @@ +```bash +appwrite notifications update \ + --notification-id \ + --read false +``` diff --git a/examples/1.9.x/console-cli/examples/oauth2/authorize-post.md b/examples/1.9.x/console-cli/examples/oauth2/authorize-post.md new file mode 100644 index 000000000..ce42b34eb --- /dev/null +++ b/examples/1.9.x/console-cli/examples/oauth2/authorize-post.md @@ -0,0 +1,3 @@ +```bash +appwrite oauth-2 authorize-post +``` diff --git a/examples/1.9.x/console-cli/examples/oauth2/authorize.md b/examples/1.9.x/console-cli/examples/oauth2/authorize.md index e04276438..45bc9b689 100644 --- a/examples/1.9.x/console-cli/examples/oauth2/authorize.md +++ b/examples/1.9.x/console-cli/examples/oauth2/authorize.md @@ -1,7 +1,3 @@ ```bash -appwrite oauth-2 authorize \ - --client-_id \ - --redirect-_uri https://example.com \ - --response-_type code \ - --scope +appwrite oauth-2 authorize ``` diff --git a/examples/1.9.x/console-cli/examples/oauth2/create-par.md b/examples/1.9.x/console-cli/examples/oauth2/create-par.md new file mode 100644 index 000000000..05e17f9ee --- /dev/null +++ b/examples/1.9.x/console-cli/examples/oauth2/create-par.md @@ -0,0 +1,6 @@ +```bash +appwrite oauth-2 create-par \ + --client-_id \ + --redirect-_uri https://example.com \ + --response-_type code +``` diff --git a/examples/1.9.x/console-cli/examples/oauth2/list-organizations.md b/examples/1.9.x/console-cli/examples/oauth2/list-organizations.md new file mode 100644 index 000000000..9c201aeca --- /dev/null +++ b/examples/1.9.x/console-cli/examples/oauth2/list-organizations.md @@ -0,0 +1,3 @@ +```bash +appwrite oauth-2 list-organizations +``` diff --git a/examples/1.9.x/console-cli/examples/oauth2/list-projects.md b/examples/1.9.x/console-cli/examples/oauth2/list-projects.md new file mode 100644 index 000000000..031605044 --- /dev/null +++ b/examples/1.9.x/console-cli/examples/oauth2/list-projects.md @@ -0,0 +1,3 @@ +```bash +appwrite oauth-2 list-projects +``` diff --git a/examples/1.9.x/console-cli/examples/oauth2/logout-post.md b/examples/1.9.x/console-cli/examples/oauth2/logout-post.md new file mode 100644 index 000000000..0a6b49d1b --- /dev/null +++ b/examples/1.9.x/console-cli/examples/oauth2/logout-post.md @@ -0,0 +1,3 @@ +```bash +appwrite oauth-2 logout-post +``` diff --git a/examples/1.9.x/console-cli/examples/organization/create-membership.md b/examples/1.9.x/console-cli/examples/organization/create-membership.md new file mode 100644 index 000000000..984ffbaca --- /dev/null +++ b/examples/1.9.x/console-cli/examples/organization/create-membership.md @@ -0,0 +1,4 @@ +```bash +appwrite organization create-membership \ + --roles one two three +``` diff --git a/examples/1.9.x/console-cli/examples/organization/delete-membership.md b/examples/1.9.x/console-cli/examples/organization/delete-membership.md new file mode 100644 index 000000000..587649e39 --- /dev/null +++ b/examples/1.9.x/console-cli/examples/organization/delete-membership.md @@ -0,0 +1,4 @@ +```bash +appwrite organization delete-membership \ + --membership-id +``` diff --git a/examples/1.9.x/console-cli/examples/organization/delete.md b/examples/1.9.x/console-cli/examples/organization/delete.md new file mode 100644 index 000000000..864489a3c --- /dev/null +++ b/examples/1.9.x/console-cli/examples/organization/delete.md @@ -0,0 +1,3 @@ +```bash +appwrite organization delete +``` diff --git a/examples/1.9.x/console-cli/examples/organization/get-membership.md b/examples/1.9.x/console-cli/examples/organization/get-membership.md new file mode 100644 index 000000000..1ab981302 --- /dev/null +++ b/examples/1.9.x/console-cli/examples/organization/get-membership.md @@ -0,0 +1,4 @@ +```bash +appwrite organization get-membership \ + --membership-id +``` diff --git a/examples/1.9.x/console-cli/examples/organization/get.md b/examples/1.9.x/console-cli/examples/organization/get.md new file mode 100644 index 000000000..ab0f4ad6e --- /dev/null +++ b/examples/1.9.x/console-cli/examples/organization/get.md @@ -0,0 +1,3 @@ +```bash +appwrite organization get +``` diff --git a/examples/1.9.x/console-cli/examples/organization/list-memberships.md b/examples/1.9.x/console-cli/examples/organization/list-memberships.md new file mode 100644 index 000000000..41d520a20 --- /dev/null +++ b/examples/1.9.x/console-cli/examples/organization/list-memberships.md @@ -0,0 +1,4 @@ +```bash +appwrite organization list-memberships \ + --limit 25 +``` diff --git a/examples/1.9.x/console-cli/examples/organization/update-membership.md b/examples/1.9.x/console-cli/examples/organization/update-membership.md new file mode 100644 index 000000000..ec24bbfed --- /dev/null +++ b/examples/1.9.x/console-cli/examples/organization/update-membership.md @@ -0,0 +1,5 @@ +```bash +appwrite organization update-membership \ + --membership-id \ + --roles one two three +``` diff --git a/examples/1.9.x/console-cli/examples/organization/update.md b/examples/1.9.x/console-cli/examples/organization/update.md new file mode 100644 index 000000000..c4836fff7 --- /dev/null +++ b/examples/1.9.x/console-cli/examples/organization/update.md @@ -0,0 +1,4 @@ +```bash +appwrite organization update \ + --name +``` diff --git a/examples/1.9.x/console-cli/examples/organizations/create-premium-geo-db-addon.md b/examples/1.9.x/console-cli/examples/organizations/create-premium-geo-db-addon.md new file mode 100644 index 000000000..ce72c9ad8 --- /dev/null +++ b/examples/1.9.x/console-cli/examples/organizations/create-premium-geo-db-addon.md @@ -0,0 +1,4 @@ +```bash +appwrite organizations create-premium-geo-db-addon \ + --organization-id +``` diff --git a/examples/1.9.x/console-cli/examples/project/update-o-auth-2-appwrite.md b/examples/1.9.x/console-cli/examples/project/update-o-auth-2-appwrite.md new file mode 100644 index 000000000..025140f8a --- /dev/null +++ b/examples/1.9.x/console-cli/examples/project/update-o-auth-2-appwrite.md @@ -0,0 +1,3 @@ +```bash +appwrite project update-o-auth-2-appwrite +``` diff --git a/examples/1.9.x/console-cli/examples/projects/confirm-addon-payment.md b/examples/1.9.x/console-cli/examples/projects/confirm-addon-payment.md new file mode 100644 index 000000000..3e94916af --- /dev/null +++ b/examples/1.9.x/console-cli/examples/projects/confirm-addon-payment.md @@ -0,0 +1,5 @@ +```bash +appwrite projects confirm-addon-payment \ + --project-id \ + --addon-id +``` diff --git a/examples/1.9.x/console-cli/examples/projects/create-premium-geo-db-addon.md b/examples/1.9.x/console-cli/examples/projects/create-premium-geo-db-addon.md new file mode 100644 index 000000000..79cf01c3e --- /dev/null +++ b/examples/1.9.x/console-cli/examples/projects/create-premium-geo-db-addon.md @@ -0,0 +1,4 @@ +```bash +appwrite projects create-premium-geo-db-addon \ + --project-id +``` diff --git a/examples/1.9.x/console-cli/examples/projects/delete-addon.md b/examples/1.9.x/console-cli/examples/projects/delete-addon.md new file mode 100644 index 000000000..a1622cfa5 --- /dev/null +++ b/examples/1.9.x/console-cli/examples/projects/delete-addon.md @@ -0,0 +1,5 @@ +```bash +appwrite projects delete-addon \ + --project-id \ + --addon-id +``` diff --git a/examples/1.9.x/console-cli/examples/projects/get-addon-price.md b/examples/1.9.x/console-cli/examples/projects/get-addon-price.md new file mode 100644 index 000000000..77002e7b4 --- /dev/null +++ b/examples/1.9.x/console-cli/examples/projects/get-addon-price.md @@ -0,0 +1,5 @@ +```bash +appwrite projects get-addon-price \ + --project-id \ + --addon baa +``` diff --git a/examples/1.9.x/console-cli/examples/projects/get-addon.md b/examples/1.9.x/console-cli/examples/projects/get-addon.md new file mode 100644 index 000000000..1d7e9326e --- /dev/null +++ b/examples/1.9.x/console-cli/examples/projects/get-addon.md @@ -0,0 +1,5 @@ +```bash +appwrite projects get-addon \ + --project-id \ + --addon-id +``` diff --git a/examples/1.9.x/console-cli/examples/projects/list-addons.md b/examples/1.9.x/console-cli/examples/projects/list-addons.md new file mode 100644 index 000000000..8970dc4d0 --- /dev/null +++ b/examples/1.9.x/console-cli/examples/projects/list-addons.md @@ -0,0 +1,4 @@ +```bash +appwrite projects list-addons \ + --project-id +``` diff --git a/examples/1.9.x/console-cli/examples/projects/list-stages.md b/examples/1.9.x/console-cli/examples/projects/list-stages.md new file mode 100644 index 000000000..876e82c51 --- /dev/null +++ b/examples/1.9.x/console-cli/examples/projects/list-stages.md @@ -0,0 +1,4 @@ +```bash +appwrite projects list-stages \ + --project-id +``` diff --git a/examples/1.9.x/console-cli/examples/projects/update-stage.md b/examples/1.9.x/console-cli/examples/projects/update-stage.md new file mode 100644 index 000000000..dbebb74e5 --- /dev/null +++ b/examples/1.9.x/console-cli/examples/projects/update-stage.md @@ -0,0 +1,5 @@ +```bash +appwrite projects update-stage \ + --project-id \ + --stage-id +``` diff --git a/examples/1.9.x/console-cli/examples/tablesdb/create-failover.md b/examples/1.9.x/console-cli/examples/tablesdb/create-failover.md new file mode 100644 index 000000000..dc5836237 --- /dev/null +++ b/examples/1.9.x/console-cli/examples/tablesdb/create-failover.md @@ -0,0 +1,4 @@ +```bash +appwrite tables-db create-failover \ + --database-id +``` diff --git a/examples/1.9.x/console-cli/examples/tablesdb/create-migration.md b/examples/1.9.x/console-cli/examples/tablesdb/create-migration.md new file mode 100644 index 000000000..9319ff271 --- /dev/null +++ b/examples/1.9.x/console-cli/examples/tablesdb/create-migration.md @@ -0,0 +1,5 @@ +```bash +appwrite tables-db create-migration \ + --database-id \ + --specification s-1vcpu-1gb +``` diff --git a/examples/1.9.x/console-cli/examples/tablesdb/delete-migration.md b/examples/1.9.x/console-cli/examples/tablesdb/delete-migration.md new file mode 100644 index 000000000..9e2421809 --- /dev/null +++ b/examples/1.9.x/console-cli/examples/tablesdb/delete-migration.md @@ -0,0 +1,5 @@ +```bash +appwrite tables-db delete-migration \ + --database-id \ + --migration-id +``` diff --git a/examples/1.9.x/console-cli/examples/tablesdb/get-migration.md b/examples/1.9.x/console-cli/examples/tablesdb/get-migration.md new file mode 100644 index 000000000..f669dcc13 --- /dev/null +++ b/examples/1.9.x/console-cli/examples/tablesdb/get-migration.md @@ -0,0 +1,5 @@ +```bash +appwrite tables-db get-migration \ + --database-id \ + --migration-id +``` diff --git a/examples/1.9.x/console-cli/examples/tablesdb/get-replicas.md b/examples/1.9.x/console-cli/examples/tablesdb/get-replicas.md new file mode 100644 index 000000000..19bffa682 --- /dev/null +++ b/examples/1.9.x/console-cli/examples/tablesdb/get-replicas.md @@ -0,0 +1,4 @@ +```bash +appwrite tables-db get-replicas \ + --database-id +``` diff --git a/examples/1.9.x/console-cli/examples/tablesdb/get-status.md b/examples/1.9.x/console-cli/examples/tablesdb/get-status.md new file mode 100644 index 000000000..c5ed9a77c --- /dev/null +++ b/examples/1.9.x/console-cli/examples/tablesdb/get-status.md @@ -0,0 +1,4 @@ +```bash +appwrite tables-db get-status \ + --database-id +``` diff --git a/examples/1.9.x/console-cli/examples/tablesdb/list-migrations.md b/examples/1.9.x/console-cli/examples/tablesdb/list-migrations.md new file mode 100644 index 000000000..36bf6c179 --- /dev/null +++ b/examples/1.9.x/console-cli/examples/tablesdb/list-migrations.md @@ -0,0 +1,4 @@ +```bash +appwrite tables-db list-migrations \ + --database-id +``` diff --git a/examples/1.9.x/console-cli/examples/tablesdb/list-specifications.md b/examples/1.9.x/console-cli/examples/tablesdb/list-specifications.md new file mode 100644 index 000000000..029dd35f6 --- /dev/null +++ b/examples/1.9.x/console-cli/examples/tablesdb/list-specifications.md @@ -0,0 +1,3 @@ +```bash +appwrite tables-db list-specifications +``` diff --git a/examples/1.9.x/console-cli/examples/waf/create-bypass-rule.md b/examples/1.9.x/console-cli/examples/waf/create-bypass-rule.md new file mode 100644 index 000000000..f4f8f910a --- /dev/null +++ b/examples/1.9.x/console-cli/examples/waf/create-bypass-rule.md @@ -0,0 +1,6 @@ +```bash +appwrite waf create-bypass-rule \ + --rule-id \ + --resource-type api \ + --name +``` diff --git a/examples/1.9.x/console-cli/examples/waf/create-deny-rule.md b/examples/1.9.x/console-cli/examples/waf/create-deny-rule.md new file mode 100644 index 000000000..d5eb6ccf1 --- /dev/null +++ b/examples/1.9.x/console-cli/examples/waf/create-deny-rule.md @@ -0,0 +1,6 @@ +```bash +appwrite waf create-deny-rule \ + --rule-id \ + --resource-type api \ + --name +``` diff --git a/examples/1.9.x/console-cli/examples/waf/create-rate-limit-rule.md b/examples/1.9.x/console-cli/examples/waf/create-rate-limit-rule.md new file mode 100644 index 000000000..ee53cd758 --- /dev/null +++ b/examples/1.9.x/console-cli/examples/waf/create-rate-limit-rule.md @@ -0,0 +1,8 @@ +```bash +appwrite waf create-rate-limit-rule \ + --rule-id \ + --resource-type api \ + --name \ + --limit 1 \ + --interval 1 +``` diff --git a/examples/1.9.x/console-cli/examples/waf/create-redirect-rule.md b/examples/1.9.x/console-cli/examples/waf/create-redirect-rule.md new file mode 100644 index 000000000..fa9f9664d --- /dev/null +++ b/examples/1.9.x/console-cli/examples/waf/create-redirect-rule.md @@ -0,0 +1,8 @@ +```bash +appwrite waf create-redirect-rule \ + --rule-id \ + --resource-type api \ + --name \ + --location \ + --status-code 300 +``` diff --git a/examples/1.9.x/console-cli/examples/waf/delete-rule.md b/examples/1.9.x/console-cli/examples/waf/delete-rule.md new file mode 100644 index 000000000..bd93a3ace --- /dev/null +++ b/examples/1.9.x/console-cli/examples/waf/delete-rule.md @@ -0,0 +1,4 @@ +```bash +appwrite waf delete-rule \ + --rule-id +``` diff --git a/examples/1.9.x/console-cli/examples/waf/get-rule.md b/examples/1.9.x/console-cli/examples/waf/get-rule.md new file mode 100644 index 000000000..233ce8cd9 --- /dev/null +++ b/examples/1.9.x/console-cli/examples/waf/get-rule.md @@ -0,0 +1,4 @@ +```bash +appwrite waf get-rule \ + --rule-id +``` diff --git a/examples/1.9.x/console-cli/examples/waf/list-rules.md b/examples/1.9.x/console-cli/examples/waf/list-rules.md new file mode 100644 index 000000000..1144aa178 --- /dev/null +++ b/examples/1.9.x/console-cli/examples/waf/list-rules.md @@ -0,0 +1,4 @@ +```bash +appwrite waf list-rules \ + --limit 25 +``` diff --git a/examples/1.9.x/console-cli/examples/waf/update-bypass-rule.md b/examples/1.9.x/console-cli/examples/waf/update-bypass-rule.md new file mode 100644 index 000000000..5ffc63394 --- /dev/null +++ b/examples/1.9.x/console-cli/examples/waf/update-bypass-rule.md @@ -0,0 +1,4 @@ +```bash +appwrite waf update-bypass-rule \ + --rule-id +``` diff --git a/examples/1.9.x/console-cli/examples/waf/update-deny-rule.md b/examples/1.9.x/console-cli/examples/waf/update-deny-rule.md new file mode 100644 index 000000000..ef621e57b --- /dev/null +++ b/examples/1.9.x/console-cli/examples/waf/update-deny-rule.md @@ -0,0 +1,4 @@ +```bash +appwrite waf update-deny-rule \ + --rule-id +``` diff --git a/examples/1.9.x/console-cli/examples/waf/update-rate-limit-rule.md b/examples/1.9.x/console-cli/examples/waf/update-rate-limit-rule.md new file mode 100644 index 000000000..687b63fa5 --- /dev/null +++ b/examples/1.9.x/console-cli/examples/waf/update-rate-limit-rule.md @@ -0,0 +1,4 @@ +```bash +appwrite waf update-rate-limit-rule \ + --rule-id +``` diff --git a/examples/1.9.x/console-cli/examples/waf/update-redirect-rule.md b/examples/1.9.x/console-cli/examples/waf/update-redirect-rule.md new file mode 100644 index 000000000..1b3911d76 --- /dev/null +++ b/examples/1.9.x/console-cli/examples/waf/update-redirect-rule.md @@ -0,0 +1,4 @@ +```bash +appwrite waf update-redirect-rule \ + --rule-id +``` diff --git a/examples/1.9.x/console-web/examples/account/delete-consent-token.md b/examples/1.9.x/console-web/examples/account/delete-consent-token.md new file mode 100644 index 000000000..f8a60cbf1 --- /dev/null +++ b/examples/1.9.x/console-web/examples/account/delete-consent-token.md @@ -0,0 +1,16 @@ +```javascript +import { Client, Account } from "@appwrite.io/console"; + +const client = new Client() + .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint + .setProject(''); // Your project ID + +const account = new Account(client); + +const result = await account.deleteConsentToken({ + consentId: '', + tokenId: '' +}); + +console.log(result); +``` diff --git a/examples/1.9.x/console-web/examples/account/delete-consent.md b/examples/1.9.x/console-web/examples/account/delete-consent.md new file mode 100644 index 000000000..8fe33b0ba --- /dev/null +++ b/examples/1.9.x/console-web/examples/account/delete-consent.md @@ -0,0 +1,15 @@ +```javascript +import { Client, Account } from "@appwrite.io/console"; + +const client = new Client() + .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint + .setProject(''); // Your project ID + +const account = new Account(client); + +const result = await account.deleteConsent({ + consentId: '' +}); + +console.log(result); +``` diff --git a/examples/1.9.x/console-web/examples/account/get-consent-token.md b/examples/1.9.x/console-web/examples/account/get-consent-token.md new file mode 100644 index 000000000..8d1eff1f7 --- /dev/null +++ b/examples/1.9.x/console-web/examples/account/get-consent-token.md @@ -0,0 +1,16 @@ +```javascript +import { Client, Account } from "@appwrite.io/console"; + +const client = new Client() + .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint + .setProject(''); // Your project ID + +const account = new Account(client); + +const result = await account.getConsentToken({ + consentId: '', + tokenId: '' +}); + +console.log(result); +``` diff --git a/examples/1.9.x/console-web/examples/account/get-consent.md b/examples/1.9.x/console-web/examples/account/get-consent.md new file mode 100644 index 000000000..ba47b99ff --- /dev/null +++ b/examples/1.9.x/console-web/examples/account/get-consent.md @@ -0,0 +1,15 @@ +```javascript +import { Client, Account } from "@appwrite.io/console"; + +const client = new Client() + .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint + .setProject(''); // Your project ID + +const account = new Account(client); + +const result = await account.getConsent({ + consentId: '' +}); + +console.log(result); +``` diff --git a/examples/1.9.x/console-web/examples/account/list-consent-tokens.md b/examples/1.9.x/console-web/examples/account/list-consent-tokens.md new file mode 100644 index 000000000..62e92e0cf --- /dev/null +++ b/examples/1.9.x/console-web/examples/account/list-consent-tokens.md @@ -0,0 +1,17 @@ +```javascript +import { Client, Account } from "@appwrite.io/console"; + +const client = new Client() + .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint + .setProject(''); // Your project ID + +const account = new Account(client); + +const result = await account.listConsentTokens({ + consentId: '', + queries: [], // optional + total: false // optional +}); + +console.log(result); +``` diff --git a/examples/1.9.x/console-web/examples/account/list-consents.md b/examples/1.9.x/console-web/examples/account/list-consents.md new file mode 100644 index 000000000..6b74896ff --- /dev/null +++ b/examples/1.9.x/console-web/examples/account/list-consents.md @@ -0,0 +1,16 @@ +```javascript +import { Client, Account } from "@appwrite.io/console"; + +const client = new Client() + .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint + .setProject(''); // Your project ID + +const account = new Account(client); + +const result = await account.listConsents({ + queries: [], // optional + total: false // optional +}); + +console.log(result); +``` diff --git a/examples/1.9.x/console-web/examples/apps/list-o-auth-2-scopes.md b/examples/1.9.x/console-web/examples/apps/list-o-auth-2-scopes.md new file mode 100644 index 000000000..52971fc9c --- /dev/null +++ b/examples/1.9.x/console-web/examples/apps/list-o-auth-2-scopes.md @@ -0,0 +1,13 @@ +```javascript +import { Client, Apps } from "@appwrite.io/console"; + +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/1.9.x/console-web/examples/apps/update-labels.md b/examples/1.9.x/console-web/examples/apps/update-labels.md new file mode 100644 index 000000000..502766eb8 --- /dev/null +++ b/examples/1.9.x/console-web/examples/apps/update-labels.md @@ -0,0 +1,16 @@ +```javascript +import { Client, Apps } from "@appwrite.io/console"; + +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.updateLabels({ + appId: '', + labels: [] +}); + +console.log(result); +``` diff --git a/examples/1.9.x/console-web/examples/console/list-databases.md b/examples/1.9.x/console-web/examples/console/list-databases.md new file mode 100644 index 000000000..f5e298f40 --- /dev/null +++ b/examples/1.9.x/console-web/examples/console/list-databases.md @@ -0,0 +1,17 @@ +```javascript +import { Client, Console } from "@appwrite.io/console"; + +const client = new Client() + .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint + .setProject(''); // Your project ID + +const xconsole = new Console(client); + +const result = await xconsole.listDatabases({ + queries: [], // optional + search: '', // optional + total: false // optional +}); + +console.log(result); +``` diff --git a/examples/1.9.x/console-web/examples/console/list-postgres-extensions.md b/examples/1.9.x/console-web/examples/console/list-postgres-extensions.md new file mode 100644 index 000000000..84a2bcb34 --- /dev/null +++ b/examples/1.9.x/console-web/examples/console/list-postgres-extensions.md @@ -0,0 +1,13 @@ +```javascript +import { Client, Console } from "@appwrite.io/console"; + +const client = new Client() + .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint + .setProject(''); // Your project ID + +const xconsole = new Console(client); + +const result = await xconsole.listPostgresExtensions(); + +console.log(result); +``` diff --git a/examples/1.9.x/console-web/examples/documentsdb/create-failover.md b/examples/1.9.x/console-web/examples/documentsdb/create-failover.md new file mode 100644 index 000000000..067846c9f --- /dev/null +++ b/examples/1.9.x/console-web/examples/documentsdb/create-failover.md @@ -0,0 +1,16 @@ +```javascript +import { Client, DocumentsDB } from "@appwrite.io/console"; + +const client = new Client() + .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint + .setProject(''); // Your project ID + +const documentsDB = new DocumentsDB(client); + +const result = await documentsDB.createFailover({ + databaseId: '', + targetReplicaId: '' // optional +}); + +console.log(result); +``` diff --git a/examples/1.9.x/console-web/examples/documentsdb/create.md b/examples/1.9.x/console-web/examples/documentsdb/create.md index dbe140086..461af3e9e 100644 --- a/examples/1.9.x/console-web/examples/documentsdb/create.md +++ b/examples/1.9.x/console-web/examples/documentsdb/create.md @@ -11,7 +11,8 @@ const result = await documentsDB.create({ databaseId: '', name: '', enabled: false, // optional - dedicatedDatabaseId: '' // optional + specification: 'serverless', // optional + replicas: 0 // optional }); console.log(result); diff --git a/examples/1.9.x/console-web/examples/documentsdb/get-replicas.md b/examples/1.9.x/console-web/examples/documentsdb/get-replicas.md new file mode 100644 index 000000000..73308e0bd --- /dev/null +++ b/examples/1.9.x/console-web/examples/documentsdb/get-replicas.md @@ -0,0 +1,15 @@ +```javascript +import { Client, DocumentsDB } from "@appwrite.io/console"; + +const client = new Client() + .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint + .setProject(''); // Your project ID + +const documentsDB = new DocumentsDB(client); + +const result = await documentsDB.getReplicas({ + databaseId: '' +}); + +console.log(result); +``` diff --git a/examples/1.9.x/console-web/examples/documentsdb/get-status.md b/examples/1.9.x/console-web/examples/documentsdb/get-status.md new file mode 100644 index 000000000..aecd98497 --- /dev/null +++ b/examples/1.9.x/console-web/examples/documentsdb/get-status.md @@ -0,0 +1,15 @@ +```javascript +import { Client, DocumentsDB } from "@appwrite.io/console"; + +const client = new Client() + .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint + .setProject(''); // Your project ID + +const documentsDB = new DocumentsDB(client); + +const result = await documentsDB.getStatus({ + databaseId: '' +}); + +console.log(result); +``` diff --git a/examples/1.9.x/console-web/examples/documentsdb/list-specifications.md b/examples/1.9.x/console-web/examples/documentsdb/list-specifications.md new file mode 100644 index 000000000..e3b9d45ac --- /dev/null +++ b/examples/1.9.x/console-web/examples/documentsdb/list-specifications.md @@ -0,0 +1,13 @@ +```javascript +import { Client, DocumentsDB } from "@appwrite.io/console"; + +const client = new Client() + .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint + .setProject(''); // Your project ID + +const documentsDB = new DocumentsDB(client); + +const result = await documentsDB.listSpecifications(); + +console.log(result); +``` diff --git a/examples/1.9.x/console-web/examples/documentsdb/update.md b/examples/1.9.x/console-web/examples/documentsdb/update.md index 24be21179..be18da8f5 100644 --- a/examples/1.9.x/console-web/examples/documentsdb/update.md +++ b/examples/1.9.x/console-web/examples/documentsdb/update.md @@ -10,7 +10,8 @@ const documentsDB = new DocumentsDB(client); const result = await documentsDB.update({ databaseId: '', name: '', - enabled: false // optional + enabled: false, // optional + replicas: 0 // optional }); console.log(result); diff --git a/examples/1.9.x/console-web/examples/domains/update-nameservers.md b/examples/1.9.x/console-web/examples/domains/update-nameservers.md index 33d8a45df..31d34f3ca 100644 --- a/examples/1.9.x/console-web/examples/domains/update-nameservers.md +++ b/examples/1.9.x/console-web/examples/domains/update-nameservers.md @@ -8,7 +8,8 @@ const client = new Client() const domains = new Domains(client); const result = await domains.updateNameservers({ - domainId: '' + domainId: '', + nameservers: [] // optional }); console.log(result); diff --git a/examples/1.9.x/console-web/examples/domains/verify-nameservers.md b/examples/1.9.x/console-web/examples/domains/verify-nameservers.md new file mode 100644 index 000000000..6c082ed24 --- /dev/null +++ b/examples/1.9.x/console-web/examples/domains/verify-nameservers.md @@ -0,0 +1,15 @@ +```javascript +import { Client, Domains } from "@appwrite.io/console"; + +const client = new Client() + .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint + .setProject(''); // Your project ID + +const domains = new Domains(client); + +const result = await domains.verifyNameservers({ + domainId: '' +}); + +console.log(result); +``` diff --git a/examples/1.9.x/console-web/examples/functions/get-deployment-download.md b/examples/1.9.x/console-web/examples/functions/get-deployment-download.md index d6b46f1d7..499dfc630 100644 --- a/examples/1.9.x/console-web/examples/functions/get-deployment-download.md +++ b/examples/1.9.x/console-web/examples/functions/get-deployment-download.md @@ -10,7 +10,8 @@ const functions = new Functions(client); const result = functions.getDeploymentDownload({ functionId: '', deploymentId: '', - type: DeploymentDownloadType.Source // optional + type: DeploymentDownloadType.Source, // optional + token: '' // optional }); console.log(result); diff --git a/examples/1.9.x/console-web/examples/health/get-geo-premium.md b/examples/1.9.x/console-web/examples/health/get-geo-premium.md new file mode 100644 index 000000000..af69d5061 --- /dev/null +++ b/examples/1.9.x/console-web/examples/health/get-geo-premium.md @@ -0,0 +1,13 @@ +```javascript +import { Client, Health } from "@appwrite.io/console"; + +const client = new Client() + .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint + .setProject(''); // Your project ID + +const health = new Health(client); + +const result = await health.getGeoPremium(); + +console.log(result); +``` diff --git a/examples/1.9.x/console-web/examples/health/get-geo.md b/examples/1.9.x/console-web/examples/health/get-geo.md new file mode 100644 index 000000000..20952f182 --- /dev/null +++ b/examples/1.9.x/console-web/examples/health/get-geo.md @@ -0,0 +1,13 @@ +```javascript +import { Client, Health } from "@appwrite.io/console"; + +const client = new Client() + .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint + .setProject(''); // Your project ID + +const health = new Health(client); + +const result = await health.getGeo(); + +console.log(result); +``` diff --git a/examples/1.9.x/console-web/examples/health/get-queue-notifications.md b/examples/1.9.x/console-web/examples/health/get-queue-notifications.md new file mode 100644 index 000000000..e3db0380d --- /dev/null +++ b/examples/1.9.x/console-web/examples/health/get-queue-notifications.md @@ -0,0 +1,15 @@ +```javascript +import { Client, Health } from "@appwrite.io/console"; + +const client = new Client() + .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint + .setProject(''); // Your project ID + +const health = new Health(client); + +const result = await health.getQueueNotifications({ + threshold: null // optional +}); + +console.log(result); +``` diff --git a/examples/1.9.x/console-web/examples/manager/create-block.md b/examples/1.9.x/console-web/examples/manager/create-block.md index 553468241..a33b52f8b 100644 --- a/examples/1.9.x/console-web/examples/manager/create-block.md +++ b/examples/1.9.x/console-web/examples/manager/create-block.md @@ -1,5 +1,5 @@ ```javascript -import { Client, Manager, BlockResourceType } from "@appwrite.io/console"; +import { Client, Manager, BlockResourceType, BlockMode } from "@appwrite.io/console"; const client = new Client() .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint @@ -10,6 +10,7 @@ const result = await manager.createBlock({ projectId: '', resourceType: BlockResourceType.Projects, resourceId: '', // optional + mode: BlockMode.Full, // optional reason: '', // optional expiredAt: '2020-10-15T06:38:00.000+00:00' // optional }); diff --git a/examples/1.9.x/console-web/examples/migrations/create-csv-export.md b/examples/1.9.x/console-web/examples/migrations/create-csv-export.md index 250a16b19..ee998df89 100644 --- a/examples/1.9.x/console-web/examples/migrations/create-csv-export.md +++ b/examples/1.9.x/console-web/examples/migrations/create-csv-export.md @@ -8,7 +8,8 @@ const client = new Client() const migrations = new Migrations(client); const result = await migrations.createCSVExport({ - resourceId: '', + databaseId: '', + collectionId: '', filename: '', columns: [], // optional queries: [], // optional diff --git a/examples/1.9.x/console-web/examples/migrations/create-csv-import.md b/examples/1.9.x/console-web/examples/migrations/create-csv-import.md index d24792b68..e86c43834 100644 --- a/examples/1.9.x/console-web/examples/migrations/create-csv-import.md +++ b/examples/1.9.x/console-web/examples/migrations/create-csv-import.md @@ -10,7 +10,8 @@ const migrations = new Migrations(client); const result = await migrations.createCSVImport({ bucketId: '', fileId: '', - resourceId: '', + databaseId: '', + collectionId: '', internalFile: false, // optional onDuplicate: OnDuplicate.Fail // optional }); diff --git a/examples/1.9.x/console-web/examples/migrations/create-json-export.md b/examples/1.9.x/console-web/examples/migrations/create-json-export.md index c5120d074..90ef89a67 100644 --- a/examples/1.9.x/console-web/examples/migrations/create-json-export.md +++ b/examples/1.9.x/console-web/examples/migrations/create-json-export.md @@ -8,7 +8,8 @@ const client = new Client() const migrations = new Migrations(client); const result = await migrations.createJSONExport({ - resourceId: '', + databaseId: '', + collectionId: '', filename: '', columns: [], // optional queries: [], // optional diff --git a/examples/1.9.x/console-web/examples/migrations/create-json-import.md b/examples/1.9.x/console-web/examples/migrations/create-json-import.md index f55fc8ffa..63dec013b 100644 --- a/examples/1.9.x/console-web/examples/migrations/create-json-import.md +++ b/examples/1.9.x/console-web/examples/migrations/create-json-import.md @@ -10,7 +10,8 @@ const migrations = new Migrations(client); const result = await migrations.createJSONImport({ bucketId: '', fileId: '', - resourceId: '', + databaseId: '', + collectionId: '', internalFile: false, // optional onDuplicate: OnDuplicate.Fail // optional }); diff --git a/examples/1.9.x/console-web/examples/mongo/create-backup-policy.md b/examples/1.9.x/console-web/examples/mongo/create-backup-policy.md new file mode 100644 index 000000000..feeb147c0 --- /dev/null +++ b/examples/1.9.x/console-web/examples/mongo/create-backup-policy.md @@ -0,0 +1,21 @@ +```javascript +import { Client, Mongo } from "@appwrite.io/console"; + +const client = new Client() + .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint + .setProject(''); // Your project ID + +const mongo = new Mongo(client); + +const result = await mongo.createBackupPolicy({ + databaseId: '', + policyId: '', + name: '', + schedule: '', + retention: 1, + type: 'full', // optional + enabled: false // optional +}); + +console.log(result); +``` diff --git a/examples/1.9.x/console-web/examples/mongo/create-backup.md b/examples/1.9.x/console-web/examples/mongo/create-backup.md new file mode 100644 index 000000000..4fd4a7cc2 --- /dev/null +++ b/examples/1.9.x/console-web/examples/mongo/create-backup.md @@ -0,0 +1,16 @@ +```javascript +import { Client, Mongo } from "@appwrite.io/console"; + +const client = new Client() + .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint + .setProject(''); // Your project ID + +const mongo = new Mongo(client); + +const result = await mongo.createBackup({ + databaseId: '', + type: 'full' // optional +}); + +console.log(result); +``` diff --git a/examples/1.9.x/console-web/examples/mongo/create-branch.md b/examples/1.9.x/console-web/examples/mongo/create-branch.md new file mode 100644 index 000000000..bd34482b7 --- /dev/null +++ b/examples/1.9.x/console-web/examples/mongo/create-branch.md @@ -0,0 +1,17 @@ +```javascript +import { Client, Mongo } from "@appwrite.io/console"; + +const client = new Client() + .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint + .setProject(''); // Your project ID + +const mongo = new Mongo(client); + +const result = await mongo.createBranch({ + databaseId: '', + branchId: '', // optional + ttl: 300 // optional +}); + +console.log(result); +``` diff --git a/examples/1.9.x/console-web/examples/mongo/create-failover.md b/examples/1.9.x/console-web/examples/mongo/create-failover.md new file mode 100644 index 000000000..b8afae984 --- /dev/null +++ b/examples/1.9.x/console-web/examples/mongo/create-failover.md @@ -0,0 +1,16 @@ +```javascript +import { Client, Mongo } from "@appwrite.io/console"; + +const client = new Client() + .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint + .setProject(''); // Your project ID + +const mongo = new Mongo(client); + +const result = await mongo.createFailover({ + databaseId: '', + targetReplicaId: '' // optional +}); + +console.log(result); +``` diff --git a/examples/1.9.x/console-web/examples/mongo/create-migration.md b/examples/1.9.x/console-web/examples/mongo/create-migration.md new file mode 100644 index 000000000..59842bf0c --- /dev/null +++ b/examples/1.9.x/console-web/examples/mongo/create-migration.md @@ -0,0 +1,17 @@ +```javascript +import { Client, Mongo } from "@appwrite.io/console"; + +const client = new Client() + .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint + .setProject(''); // Your project ID + +const mongo = new Mongo(client); + +const result = await mongo.createMigration({ + databaseId: '', + targetType: 'shared', + specification: '' // optional +}); + +console.log(result); +``` diff --git a/examples/1.9.x/console-web/examples/mongo/create-restoration.md b/examples/1.9.x/console-web/examples/mongo/create-restoration.md new file mode 100644 index 000000000..06f23ec23 --- /dev/null +++ b/examples/1.9.x/console-web/examples/mongo/create-restoration.md @@ -0,0 +1,18 @@ +```javascript +import { Client, Mongo } from "@appwrite.io/console"; + +const client = new Client() + .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint + .setProject(''); // Your project ID + +const mongo = new Mongo(client); + +const result = await mongo.createRestoration({ + databaseId: '', + type: 'backup', // optional + backupId: '', // optional + targetTime: '2020-10-15T06:38:00.000+00:00' // optional +}); + +console.log(result); +``` diff --git a/examples/1.9.x/console-web/examples/mongo/create-upgrade.md b/examples/1.9.x/console-web/examples/mongo/create-upgrade.md new file mode 100644 index 000000000..686600e13 --- /dev/null +++ b/examples/1.9.x/console-web/examples/mongo/create-upgrade.md @@ -0,0 +1,16 @@ +```javascript +import { Client, Mongo } from "@appwrite.io/console"; + +const client = new Client() + .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint + .setProject(''); // Your project ID + +const mongo = new Mongo(client); + +const result = await mongo.createUpgrade({ + databaseId: '', + targetVersion: '' +}); + +console.log(result); +``` diff --git a/examples/1.9.x/console-web/examples/mongo/create.md b/examples/1.9.x/console-web/examples/mongo/create.md new file mode 100644 index 000000000..a701bda81 --- /dev/null +++ b/examples/1.9.x/console-web/examples/mongo/create.md @@ -0,0 +1,30 @@ +```javascript +import { Client, Mongo } from "@appwrite.io/console"; + +const client = new Client() + .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint + .setProject(''); // Your project ID + +const mongo = new Mongo(client); + +const result = await mongo.create({ + databaseId: '', + name: '', + version: '17', // optional + specification: '', // optional + replicas: 0, // optional + syncMode: 'async', // optional + standbyRegion: '', // optional + networkIdleTimeoutSeconds: 60, // optional + networkIPAllowlist: [], // optional + idleTimeoutMinutes: 5, // optional + pitr: false, // optional + pitrRetentionDays: 1, // optional + storageAutoscaling: false, // optional + storageAutoscalingThresholdPercent: 50, // optional + storageAutoscalingMaxGb: 0, // optional + api: 'tablesdb' // optional +}); + +console.log(result); +``` diff --git a/examples/1.9.x/console-web/examples/mongo/delete-backup-policy.md b/examples/1.9.x/console-web/examples/mongo/delete-backup-policy.md new file mode 100644 index 000000000..cbd06af35 --- /dev/null +++ b/examples/1.9.x/console-web/examples/mongo/delete-backup-policy.md @@ -0,0 +1,16 @@ +```javascript +import { Client, Mongo } from "@appwrite.io/console"; + +const client = new Client() + .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint + .setProject(''); // Your project ID + +const mongo = new Mongo(client); + +const result = await mongo.deleteBackupPolicy({ + databaseId: '', + policyId: '' +}); + +console.log(result); +``` diff --git a/examples/1.9.x/console-web/examples/mongo/delete-backup.md b/examples/1.9.x/console-web/examples/mongo/delete-backup.md new file mode 100644 index 000000000..c5307addc --- /dev/null +++ b/examples/1.9.x/console-web/examples/mongo/delete-backup.md @@ -0,0 +1,16 @@ +```javascript +import { Client, Mongo } from "@appwrite.io/console"; + +const client = new Client() + .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint + .setProject(''); // Your project ID + +const mongo = new Mongo(client); + +const result = await mongo.deleteBackup({ + databaseId: '', + backupId: '' +}); + +console.log(result); +``` diff --git a/examples/1.9.x/console-web/examples/mongo/delete-branch.md b/examples/1.9.x/console-web/examples/mongo/delete-branch.md new file mode 100644 index 000000000..67d1f41a5 --- /dev/null +++ b/examples/1.9.x/console-web/examples/mongo/delete-branch.md @@ -0,0 +1,16 @@ +```javascript +import { Client, Mongo } from "@appwrite.io/console"; + +const client = new Client() + .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint + .setProject(''); // Your project ID + +const mongo = new Mongo(client); + +const result = await mongo.deleteBranch({ + databaseId: '', + branchId: '' +}); + +console.log(result); +``` diff --git a/examples/1.9.x/console-web/examples/mongo/delete.md b/examples/1.9.x/console-web/examples/mongo/delete.md new file mode 100644 index 000000000..47a59158b --- /dev/null +++ b/examples/1.9.x/console-web/examples/mongo/delete.md @@ -0,0 +1,15 @@ +```javascript +import { Client, Mongo } from "@appwrite.io/console"; + +const client = new Client() + .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint + .setProject(''); // Your project ID + +const mongo = new Mongo(client); + +const result = await mongo.delete({ + databaseId: '' +}); + +console.log(result); +``` diff --git a/examples/1.9.x/console-web/examples/mongo/get-backup-policy.md b/examples/1.9.x/console-web/examples/mongo/get-backup-policy.md new file mode 100644 index 000000000..2eb76a493 --- /dev/null +++ b/examples/1.9.x/console-web/examples/mongo/get-backup-policy.md @@ -0,0 +1,16 @@ +```javascript +import { Client, Mongo } from "@appwrite.io/console"; + +const client = new Client() + .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint + .setProject(''); // Your project ID + +const mongo = new Mongo(client); + +const result = await mongo.getBackupPolicy({ + databaseId: '', + policyId: '' +}); + +console.log(result); +``` diff --git a/examples/1.9.x/console-web/examples/mongo/get-backup.md b/examples/1.9.x/console-web/examples/mongo/get-backup.md new file mode 100644 index 000000000..f05bbd6d0 --- /dev/null +++ b/examples/1.9.x/console-web/examples/mongo/get-backup.md @@ -0,0 +1,16 @@ +```javascript +import { Client, Mongo } from "@appwrite.io/console"; + +const client = new Client() + .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint + .setProject(''); // Your project ID + +const mongo = new Mongo(client); + +const result = await mongo.getBackup({ + databaseId: '', + backupId: '' +}); + +console.log(result); +``` diff --git a/examples/1.9.x/console-web/examples/mongo/get-pitr.md b/examples/1.9.x/console-web/examples/mongo/get-pitr.md new file mode 100644 index 000000000..fa1f7b7ce --- /dev/null +++ b/examples/1.9.x/console-web/examples/mongo/get-pitr.md @@ -0,0 +1,15 @@ +```javascript +import { Client, Mongo } from "@appwrite.io/console"; + +const client = new Client() + .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint + .setProject(''); // Your project ID + +const mongo = new Mongo(client); + +const result = await mongo.getPitr({ + databaseId: '' +}); + +console.log(result); +``` diff --git a/examples/1.9.x/console-web/examples/mongo/get-replicas.md b/examples/1.9.x/console-web/examples/mongo/get-replicas.md new file mode 100644 index 000000000..abfb1e18a --- /dev/null +++ b/examples/1.9.x/console-web/examples/mongo/get-replicas.md @@ -0,0 +1,15 @@ +```javascript +import { Client, Mongo } from "@appwrite.io/console"; + +const client = new Client() + .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint + .setProject(''); // Your project ID + +const mongo = new Mongo(client); + +const result = await mongo.getReplicas({ + databaseId: '' +}); + +console.log(result); +``` diff --git a/examples/1.9.x/console-web/examples/mongo/get-restoration.md b/examples/1.9.x/console-web/examples/mongo/get-restoration.md new file mode 100644 index 000000000..2d0e4643f --- /dev/null +++ b/examples/1.9.x/console-web/examples/mongo/get-restoration.md @@ -0,0 +1,16 @@ +```javascript +import { Client, Mongo } from "@appwrite.io/console"; + +const client = new Client() + .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint + .setProject(''); // Your project ID + +const mongo = new Mongo(client); + +const result = await mongo.getRestoration({ + databaseId: '', + restorationId: '' +}); + +console.log(result); +``` diff --git a/examples/1.9.x/console-web/examples/mongo/get-status.md b/examples/1.9.x/console-web/examples/mongo/get-status.md new file mode 100644 index 000000000..d0c08ffdd --- /dev/null +++ b/examples/1.9.x/console-web/examples/mongo/get-status.md @@ -0,0 +1,15 @@ +```javascript +import { Client, Mongo } from "@appwrite.io/console"; + +const client = new Client() + .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint + .setProject(''); // Your project ID + +const mongo = new Mongo(client); + +const result = await mongo.getStatus({ + databaseId: '' +}); + +console.log(result); +``` diff --git a/examples/1.9.x/console-web/examples/mongo/get.md b/examples/1.9.x/console-web/examples/mongo/get.md new file mode 100644 index 000000000..a95d9ab13 --- /dev/null +++ b/examples/1.9.x/console-web/examples/mongo/get.md @@ -0,0 +1,15 @@ +```javascript +import { Client, Mongo } from "@appwrite.io/console"; + +const client = new Client() + .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint + .setProject(''); // Your project ID + +const mongo = new Mongo(client); + +const result = await mongo.get({ + databaseId: '' +}); + +console.log(result); +``` diff --git a/examples/1.9.x/console-web/examples/mongo/list-backup-policies.md b/examples/1.9.x/console-web/examples/mongo/list-backup-policies.md new file mode 100644 index 000000000..ebb1edc86 --- /dev/null +++ b/examples/1.9.x/console-web/examples/mongo/list-backup-policies.md @@ -0,0 +1,16 @@ +```javascript +import { Client, Mongo } from "@appwrite.io/console"; + +const client = new Client() + .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint + .setProject(''); // Your project ID + +const mongo = new Mongo(client); + +const result = await mongo.listBackupPolicies({ + databaseId: '', + queries: [] // optional +}); + +console.log(result); +``` diff --git a/examples/1.9.x/console-web/examples/mongo/list-backups.md b/examples/1.9.x/console-web/examples/mongo/list-backups.md new file mode 100644 index 000000000..2d559d0d0 --- /dev/null +++ b/examples/1.9.x/console-web/examples/mongo/list-backups.md @@ -0,0 +1,16 @@ +```javascript +import { Client, Mongo } from "@appwrite.io/console"; + +const client = new Client() + .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint + .setProject(''); // Your project ID + +const mongo = new Mongo(client); + +const result = await mongo.listBackups({ + databaseId: '', + queries: [] // optional +}); + +console.log(result); +``` diff --git a/examples/1.9.x/console-web/examples/mongo/list-branches.md b/examples/1.9.x/console-web/examples/mongo/list-branches.md new file mode 100644 index 000000000..d1f5508e4 --- /dev/null +++ b/examples/1.9.x/console-web/examples/mongo/list-branches.md @@ -0,0 +1,15 @@ +```javascript +import { Client, Mongo } from "@appwrite.io/console"; + +const client = new Client() + .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint + .setProject(''); // Your project ID + +const mongo = new Mongo(client); + +const result = await mongo.listBranches({ + databaseId: '' +}); + +console.log(result); +``` diff --git a/examples/1.9.x/console-web/examples/mongo/list-restorations.md b/examples/1.9.x/console-web/examples/mongo/list-restorations.md new file mode 100644 index 000000000..d144d2624 --- /dev/null +++ b/examples/1.9.x/console-web/examples/mongo/list-restorations.md @@ -0,0 +1,19 @@ +```javascript +import { Client, Mongo } from "@appwrite.io/console"; + +const client = new Client() + .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint + .setProject(''); // Your project ID + +const mongo = new Mongo(client); + +const result = await mongo.listRestorations({ + databaseId: '', + status: 'pending', // optional + type: 'backup', // optional + limit: 1, // optional + offset: 0 // optional +}); + +console.log(result); +``` diff --git a/examples/1.9.x/console-web/examples/mongo/list-specifications.md b/examples/1.9.x/console-web/examples/mongo/list-specifications.md new file mode 100644 index 000000000..b9084ef23 --- /dev/null +++ b/examples/1.9.x/console-web/examples/mongo/list-specifications.md @@ -0,0 +1,13 @@ +```javascript +import { Client, Mongo } from "@appwrite.io/console"; + +const client = new Client() + .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint + .setProject(''); // Your project ID + +const mongo = new Mongo(client); + +const result = await mongo.listSpecifications(); + +console.log(result); +``` diff --git a/examples/1.9.x/console-web/examples/mongo/list.md b/examples/1.9.x/console-web/examples/mongo/list.md new file mode 100644 index 000000000..eadf99466 --- /dev/null +++ b/examples/1.9.x/console-web/examples/mongo/list.md @@ -0,0 +1,15 @@ +```javascript +import { Client, Mongo } from "@appwrite.io/console"; + +const client = new Client() + .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint + .setProject(''); // Your project ID + +const mongo = new Mongo(client); + +const result = await mongo.list({ + queries: [] // optional +}); + +console.log(result); +``` diff --git a/examples/1.9.x/console-web/examples/mongo/update-backup-policy.md b/examples/1.9.x/console-web/examples/mongo/update-backup-policy.md new file mode 100644 index 000000000..9651467ef --- /dev/null +++ b/examples/1.9.x/console-web/examples/mongo/update-backup-policy.md @@ -0,0 +1,20 @@ +```javascript +import { Client, Mongo } from "@appwrite.io/console"; + +const client = new Client() + .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint + .setProject(''); // Your project ID + +const mongo = new Mongo(client); + +const result = await mongo.updateBackupPolicy({ + databaseId: '', + policyId: '', + name: '', // optional + schedule: '', // optional + retention: 1, // optional + enabled: false // optional +}); + +console.log(result); +``` diff --git a/examples/1.9.x/console-web/examples/mongo/update-backup-storage.md b/examples/1.9.x/console-web/examples/mongo/update-backup-storage.md new file mode 100644 index 000000000..e7d403061 --- /dev/null +++ b/examples/1.9.x/console-web/examples/mongo/update-backup-storage.md @@ -0,0 +1,22 @@ +```javascript +import { Client, Mongo } from "@appwrite.io/console"; + +const client = new Client() + .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint + .setProject(''); // Your project ID + +const mongo = new Mongo(client); + +const result = await mongo.updateBackupStorage({ + databaseId: '', + provider: 's3', + bucket: '', + accessKey: '', + secretKey: '', + region: '', // optional + prefix: '', // optional + endpoint: '' // optional +}); + +console.log(result); +``` diff --git a/examples/1.9.x/console-web/examples/mongo/update-credentials.md b/examples/1.9.x/console-web/examples/mongo/update-credentials.md new file mode 100644 index 000000000..b3b59690c --- /dev/null +++ b/examples/1.9.x/console-web/examples/mongo/update-credentials.md @@ -0,0 +1,15 @@ +```javascript +import { Client, Mongo } from "@appwrite.io/console"; + +const client = new Client() + .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint + .setProject(''); // Your project ID + +const mongo = new Mongo(client); + +const result = await mongo.updateCredentials({ + databaseId: '' +}); + +console.log(result); +``` diff --git a/examples/1.9.x/console-web/examples/mongo/update-maintenance.md b/examples/1.9.x/console-web/examples/mongo/update-maintenance.md new file mode 100644 index 000000000..42685841c --- /dev/null +++ b/examples/1.9.x/console-web/examples/mongo/update-maintenance.md @@ -0,0 +1,17 @@ +```javascript +import { Client, Mongo } from "@appwrite.io/console"; + +const client = new Client() + .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint + .setProject(''); // Your project ID + +const mongo = new Mongo(client); + +const result = await mongo.updateMaintenance({ + databaseId: '', + day: 'sun', + hourUtc: 0 +}); + +console.log(result); +``` diff --git a/examples/1.9.x/console-web/examples/mongo/update.md b/examples/1.9.x/console-web/examples/mongo/update.md new file mode 100644 index 000000000..ca5853654 --- /dev/null +++ b/examples/1.9.x/console-web/examples/mongo/update.md @@ -0,0 +1,37 @@ +```javascript +import { Client, Mongo } from "@appwrite.io/console"; + +const client = new Client() + .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint + .setProject(''); // Your project ID + +const mongo = new Mongo(client); + +const result = await mongo.update({ + databaseId: '', + name: '', // optional + status: 'ready', // optional + specification: '', // optional + replicas: 0, // optional + syncMode: 'async', // optional + crossRegionReplicas: 0, // optional + standbyRegion: '', // optional + networkIdleTimeoutSeconds: 60, // optional + networkIPAllowlist: [], // optional + idleTimeoutMinutes: 5, // optional + pitr: false, // optional + pitrRetentionDays: 1, // optional + storageAutoscaling: false, // optional + storageAutoscalingThresholdPercent: 50, // optional + storageAutoscalingMaxGb: 0, // optional + metricsTraceSampleRate: null, // optional + metricsSlowQueryLogThresholdMs: 0, // optional + sqlApiEnabled: false, // optional + sqlApiAllowedStatements: [], // optional + sqlApiMaxRows: 1, // optional + sqlApiMaxBytes: 1024, // optional + sqlApiTimeoutSeconds: 1 // optional +}); + +console.log(result); +``` diff --git a/examples/1.9.x/console-web/examples/mysql/create-backup-policy.md b/examples/1.9.x/console-web/examples/mysql/create-backup-policy.md new file mode 100644 index 000000000..842ae41b6 --- /dev/null +++ b/examples/1.9.x/console-web/examples/mysql/create-backup-policy.md @@ -0,0 +1,21 @@ +```javascript +import { Client, Mysql } from "@appwrite.io/console"; + +const client = new Client() + .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint + .setProject(''); // Your project ID + +const mysql = new Mysql(client); + +const result = await mysql.createBackupPolicy({ + databaseId: '', + policyId: '', + name: '', + schedule: '', + retention: 1, + type: 'full', // optional + enabled: false // optional +}); + +console.log(result); +``` diff --git a/examples/1.9.x/console-web/examples/mysql/create-backup.md b/examples/1.9.x/console-web/examples/mysql/create-backup.md new file mode 100644 index 000000000..bf1db85e0 --- /dev/null +++ b/examples/1.9.x/console-web/examples/mysql/create-backup.md @@ -0,0 +1,16 @@ +```javascript +import { Client, Mysql } from "@appwrite.io/console"; + +const client = new Client() + .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint + .setProject(''); // Your project ID + +const mysql = new Mysql(client); + +const result = await mysql.createBackup({ + databaseId: '', + type: 'full' // optional +}); + +console.log(result); +``` diff --git a/examples/1.9.x/console-web/examples/mysql/create-branch.md b/examples/1.9.x/console-web/examples/mysql/create-branch.md new file mode 100644 index 000000000..6d191b3b1 --- /dev/null +++ b/examples/1.9.x/console-web/examples/mysql/create-branch.md @@ -0,0 +1,17 @@ +```javascript +import { Client, Mysql } from "@appwrite.io/console"; + +const client = new Client() + .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint + .setProject(''); // Your project ID + +const mysql = new Mysql(client); + +const result = await mysql.createBranch({ + databaseId: '', + branchId: '', // optional + ttl: 300 // optional +}); + +console.log(result); +``` diff --git a/examples/1.9.x/console-web/examples/mysql/create-execution.md b/examples/1.9.x/console-web/examples/mysql/create-execution.md new file mode 100644 index 000000000..3e645bed0 --- /dev/null +++ b/examples/1.9.x/console-web/examples/mysql/create-execution.md @@ -0,0 +1,18 @@ +```javascript +import { Client, Mysql } from "@appwrite.io/console"; + +const client = new Client() + .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint + .setProject(''); // Your project ID + +const mysql = new Mysql(client); + +const result = await mysql.createExecution({ + databaseId: '', + sql: '', + bindings: {}, // optional + timeoutSeconds: 1 // optional +}); + +console.log(result); +``` diff --git a/examples/1.9.x/console-web/examples/mysql/create-failover.md b/examples/1.9.x/console-web/examples/mysql/create-failover.md new file mode 100644 index 000000000..e2a36bd41 --- /dev/null +++ b/examples/1.9.x/console-web/examples/mysql/create-failover.md @@ -0,0 +1,16 @@ +```javascript +import { Client, Mysql } from "@appwrite.io/console"; + +const client = new Client() + .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint + .setProject(''); // Your project ID + +const mysql = new Mysql(client); + +const result = await mysql.createFailover({ + databaseId: '', + targetReplicaId: '' // optional +}); + +console.log(result); +``` diff --git a/examples/1.9.x/console-web/examples/mysql/create-migration.md b/examples/1.9.x/console-web/examples/mysql/create-migration.md new file mode 100644 index 000000000..4292a4422 --- /dev/null +++ b/examples/1.9.x/console-web/examples/mysql/create-migration.md @@ -0,0 +1,17 @@ +```javascript +import { Client, Mysql } from "@appwrite.io/console"; + +const client = new Client() + .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint + .setProject(''); // Your project ID + +const mysql = new Mysql(client); + +const result = await mysql.createMigration({ + databaseId: '', + targetType: 'shared', + specification: '' // optional +}); + +console.log(result); +``` diff --git a/examples/1.9.x/console-web/examples/mysql/create-restoration.md b/examples/1.9.x/console-web/examples/mysql/create-restoration.md new file mode 100644 index 000000000..9f94cbef4 --- /dev/null +++ b/examples/1.9.x/console-web/examples/mysql/create-restoration.md @@ -0,0 +1,18 @@ +```javascript +import { Client, Mysql } from "@appwrite.io/console"; + +const client = new Client() + .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint + .setProject(''); // Your project ID + +const mysql = new Mysql(client); + +const result = await mysql.createRestoration({ + databaseId: '', + type: 'backup', // optional + backupId: '', // optional + targetTime: '2020-10-15T06:38:00.000+00:00' // optional +}); + +console.log(result); +``` diff --git a/examples/1.9.x/console-web/examples/mysql/create-upgrade.md b/examples/1.9.x/console-web/examples/mysql/create-upgrade.md new file mode 100644 index 000000000..365efba67 --- /dev/null +++ b/examples/1.9.x/console-web/examples/mysql/create-upgrade.md @@ -0,0 +1,16 @@ +```javascript +import { Client, Mysql } from "@appwrite.io/console"; + +const client = new Client() + .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint + .setProject(''); // Your project ID + +const mysql = new Mysql(client); + +const result = await mysql.createUpgrade({ + databaseId: '', + targetVersion: '' +}); + +console.log(result); +``` diff --git a/examples/1.9.x/console-web/examples/mysql/create.md b/examples/1.9.x/console-web/examples/mysql/create.md new file mode 100644 index 000000000..408c78c35 --- /dev/null +++ b/examples/1.9.x/console-web/examples/mysql/create.md @@ -0,0 +1,30 @@ +```javascript +import { Client, Mysql } from "@appwrite.io/console"; + +const client = new Client() + .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint + .setProject(''); // Your project ID + +const mysql = new Mysql(client); + +const result = await mysql.create({ + databaseId: '', + name: '', + version: '17', // optional + specification: '', // optional + replicas: 0, // optional + syncMode: 'async', // optional + standbyRegion: '', // optional + networkIdleTimeoutSeconds: 60, // optional + networkIPAllowlist: [], // optional + idleTimeoutMinutes: 5, // optional + pitr: false, // optional + pitrRetentionDays: 1, // optional + storageAutoscaling: false, // optional + storageAutoscalingThresholdPercent: 50, // optional + storageAutoscalingMaxGb: 0, // optional + api: 'tablesdb' // optional +}); + +console.log(result); +``` diff --git a/examples/1.9.x/console-web/examples/mysql/delete-backup-policy.md b/examples/1.9.x/console-web/examples/mysql/delete-backup-policy.md new file mode 100644 index 000000000..e847d0eaf --- /dev/null +++ b/examples/1.9.x/console-web/examples/mysql/delete-backup-policy.md @@ -0,0 +1,16 @@ +```javascript +import { Client, Mysql } from "@appwrite.io/console"; + +const client = new Client() + .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint + .setProject(''); // Your project ID + +const mysql = new Mysql(client); + +const result = await mysql.deleteBackupPolicy({ + databaseId: '', + policyId: '' +}); + +console.log(result); +``` diff --git a/examples/1.9.x/console-web/examples/mysql/delete-backup.md b/examples/1.9.x/console-web/examples/mysql/delete-backup.md new file mode 100644 index 000000000..7d64fa2e0 --- /dev/null +++ b/examples/1.9.x/console-web/examples/mysql/delete-backup.md @@ -0,0 +1,16 @@ +```javascript +import { Client, Mysql } from "@appwrite.io/console"; + +const client = new Client() + .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint + .setProject(''); // Your project ID + +const mysql = new Mysql(client); + +const result = await mysql.deleteBackup({ + databaseId: '', + backupId: '' +}); + +console.log(result); +``` diff --git a/examples/1.9.x/console-web/examples/mysql/delete-branch.md b/examples/1.9.x/console-web/examples/mysql/delete-branch.md new file mode 100644 index 000000000..62a467338 --- /dev/null +++ b/examples/1.9.x/console-web/examples/mysql/delete-branch.md @@ -0,0 +1,16 @@ +```javascript +import { Client, Mysql } from "@appwrite.io/console"; + +const client = new Client() + .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint + .setProject(''); // Your project ID + +const mysql = new Mysql(client); + +const result = await mysql.deleteBranch({ + databaseId: '', + branchId: '' +}); + +console.log(result); +``` diff --git a/examples/1.9.x/console-web/examples/mysql/delete.md b/examples/1.9.x/console-web/examples/mysql/delete.md new file mode 100644 index 000000000..883578945 --- /dev/null +++ b/examples/1.9.x/console-web/examples/mysql/delete.md @@ -0,0 +1,15 @@ +```javascript +import { Client, Mysql } from "@appwrite.io/console"; + +const client = new Client() + .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint + .setProject(''); // Your project ID + +const mysql = new Mysql(client); + +const result = await mysql.delete({ + databaseId: '' +}); + +console.log(result); +``` diff --git a/examples/1.9.x/console-web/examples/mysql/get-backup-policy.md b/examples/1.9.x/console-web/examples/mysql/get-backup-policy.md new file mode 100644 index 000000000..0df26df76 --- /dev/null +++ b/examples/1.9.x/console-web/examples/mysql/get-backup-policy.md @@ -0,0 +1,16 @@ +```javascript +import { Client, Mysql } from "@appwrite.io/console"; + +const client = new Client() + .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint + .setProject(''); // Your project ID + +const mysql = new Mysql(client); + +const result = await mysql.getBackupPolicy({ + databaseId: '', + policyId: '' +}); + +console.log(result); +``` diff --git a/examples/1.9.x/console-web/examples/mysql/get-backup.md b/examples/1.9.x/console-web/examples/mysql/get-backup.md new file mode 100644 index 000000000..2201dd435 --- /dev/null +++ b/examples/1.9.x/console-web/examples/mysql/get-backup.md @@ -0,0 +1,16 @@ +```javascript +import { Client, Mysql } from "@appwrite.io/console"; + +const client = new Client() + .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint + .setProject(''); // Your project ID + +const mysql = new Mysql(client); + +const result = await mysql.getBackup({ + databaseId: '', + backupId: '' +}); + +console.log(result); +``` diff --git a/examples/1.9.x/console-web/examples/mysql/get-pitr.md b/examples/1.9.x/console-web/examples/mysql/get-pitr.md new file mode 100644 index 000000000..013cfd373 --- /dev/null +++ b/examples/1.9.x/console-web/examples/mysql/get-pitr.md @@ -0,0 +1,15 @@ +```javascript +import { Client, Mysql } from "@appwrite.io/console"; + +const client = new Client() + .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint + .setProject(''); // Your project ID + +const mysql = new Mysql(client); + +const result = await mysql.getPitr({ + databaseId: '' +}); + +console.log(result); +``` diff --git a/examples/1.9.x/console-web/examples/mysql/get-pooler.md b/examples/1.9.x/console-web/examples/mysql/get-pooler.md new file mode 100644 index 000000000..a9fcb1b5d --- /dev/null +++ b/examples/1.9.x/console-web/examples/mysql/get-pooler.md @@ -0,0 +1,15 @@ +```javascript +import { Client, Mysql } from "@appwrite.io/console"; + +const client = new Client() + .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint + .setProject(''); // Your project ID + +const mysql = new Mysql(client); + +const result = await mysql.getPooler({ + databaseId: '' +}); + +console.log(result); +``` diff --git a/examples/1.9.x/console-web/examples/mysql/get-replicas.md b/examples/1.9.x/console-web/examples/mysql/get-replicas.md new file mode 100644 index 000000000..01043979a --- /dev/null +++ b/examples/1.9.x/console-web/examples/mysql/get-replicas.md @@ -0,0 +1,15 @@ +```javascript +import { Client, Mysql } from "@appwrite.io/console"; + +const client = new Client() + .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint + .setProject(''); // Your project ID + +const mysql = new Mysql(client); + +const result = await mysql.getReplicas({ + databaseId: '' +}); + +console.log(result); +``` diff --git a/examples/1.9.x/console-web/examples/mysql/get-restoration.md b/examples/1.9.x/console-web/examples/mysql/get-restoration.md new file mode 100644 index 000000000..dfba80468 --- /dev/null +++ b/examples/1.9.x/console-web/examples/mysql/get-restoration.md @@ -0,0 +1,16 @@ +```javascript +import { Client, Mysql } from "@appwrite.io/console"; + +const client = new Client() + .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint + .setProject(''); // Your project ID + +const mysql = new Mysql(client); + +const result = await mysql.getRestoration({ + databaseId: '', + restorationId: '' +}); + +console.log(result); +``` diff --git a/examples/1.9.x/console-web/examples/mysql/get-status.md b/examples/1.9.x/console-web/examples/mysql/get-status.md new file mode 100644 index 000000000..27e8c16c9 --- /dev/null +++ b/examples/1.9.x/console-web/examples/mysql/get-status.md @@ -0,0 +1,15 @@ +```javascript +import { Client, Mysql } from "@appwrite.io/console"; + +const client = new Client() + .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint + .setProject(''); // Your project ID + +const mysql = new Mysql(client); + +const result = await mysql.getStatus({ + databaseId: '' +}); + +console.log(result); +``` diff --git a/examples/1.9.x/console-web/examples/mysql/get.md b/examples/1.9.x/console-web/examples/mysql/get.md new file mode 100644 index 000000000..2406c8098 --- /dev/null +++ b/examples/1.9.x/console-web/examples/mysql/get.md @@ -0,0 +1,15 @@ +```javascript +import { Client, Mysql } from "@appwrite.io/console"; + +const client = new Client() + .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint + .setProject(''); // Your project ID + +const mysql = new Mysql(client); + +const result = await mysql.get({ + databaseId: '' +}); + +console.log(result); +``` diff --git a/examples/1.9.x/console-web/examples/mysql/list-backup-policies.md b/examples/1.9.x/console-web/examples/mysql/list-backup-policies.md new file mode 100644 index 000000000..494fc6a57 --- /dev/null +++ b/examples/1.9.x/console-web/examples/mysql/list-backup-policies.md @@ -0,0 +1,16 @@ +```javascript +import { Client, Mysql } from "@appwrite.io/console"; + +const client = new Client() + .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint + .setProject(''); // Your project ID + +const mysql = new Mysql(client); + +const result = await mysql.listBackupPolicies({ + databaseId: '', + queries: [] // optional +}); + +console.log(result); +``` diff --git a/examples/1.9.x/console-web/examples/mysql/list-backups.md b/examples/1.9.x/console-web/examples/mysql/list-backups.md new file mode 100644 index 000000000..a6189de94 --- /dev/null +++ b/examples/1.9.x/console-web/examples/mysql/list-backups.md @@ -0,0 +1,16 @@ +```javascript +import { Client, Mysql } from "@appwrite.io/console"; + +const client = new Client() + .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint + .setProject(''); // Your project ID + +const mysql = new Mysql(client); + +const result = await mysql.listBackups({ + databaseId: '', + queries: [] // optional +}); + +console.log(result); +``` diff --git a/examples/1.9.x/console-web/examples/mysql/list-branches.md b/examples/1.9.x/console-web/examples/mysql/list-branches.md new file mode 100644 index 000000000..3d4bb809b --- /dev/null +++ b/examples/1.9.x/console-web/examples/mysql/list-branches.md @@ -0,0 +1,15 @@ +```javascript +import { Client, Mysql } from "@appwrite.io/console"; + +const client = new Client() + .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint + .setProject(''); // Your project ID + +const mysql = new Mysql(client); + +const result = await mysql.listBranches({ + databaseId: '' +}); + +console.log(result); +``` diff --git a/examples/1.9.x/console-web/examples/mysql/list-restorations.md b/examples/1.9.x/console-web/examples/mysql/list-restorations.md new file mode 100644 index 000000000..49c2bcc3c --- /dev/null +++ b/examples/1.9.x/console-web/examples/mysql/list-restorations.md @@ -0,0 +1,19 @@ +```javascript +import { Client, Mysql } from "@appwrite.io/console"; + +const client = new Client() + .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint + .setProject(''); // Your project ID + +const mysql = new Mysql(client); + +const result = await mysql.listRestorations({ + databaseId: '', + status: 'pending', // optional + type: 'backup', // optional + limit: 1, // optional + offset: 0 // optional +}); + +console.log(result); +``` diff --git a/examples/1.9.x/console-web/examples/mysql/list-specifications.md b/examples/1.9.x/console-web/examples/mysql/list-specifications.md new file mode 100644 index 000000000..265de32b2 --- /dev/null +++ b/examples/1.9.x/console-web/examples/mysql/list-specifications.md @@ -0,0 +1,13 @@ +```javascript +import { Client, Mysql } from "@appwrite.io/console"; + +const client = new Client() + .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint + .setProject(''); // Your project ID + +const mysql = new Mysql(client); + +const result = await mysql.listSpecifications(); + +console.log(result); +``` diff --git a/examples/1.9.x/console-web/examples/mysql/list.md b/examples/1.9.x/console-web/examples/mysql/list.md new file mode 100644 index 000000000..63bfaac56 --- /dev/null +++ b/examples/1.9.x/console-web/examples/mysql/list.md @@ -0,0 +1,15 @@ +```javascript +import { Client, Mysql } from "@appwrite.io/console"; + +const client = new Client() + .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint + .setProject(''); // Your project ID + +const mysql = new Mysql(client); + +const result = await mysql.list({ + queries: [] // optional +}); + +console.log(result); +``` diff --git a/examples/1.9.x/console-web/examples/mysql/update-backup-policy.md b/examples/1.9.x/console-web/examples/mysql/update-backup-policy.md new file mode 100644 index 000000000..9fba80656 --- /dev/null +++ b/examples/1.9.x/console-web/examples/mysql/update-backup-policy.md @@ -0,0 +1,20 @@ +```javascript +import { Client, Mysql } from "@appwrite.io/console"; + +const client = new Client() + .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint + .setProject(''); // Your project ID + +const mysql = new Mysql(client); + +const result = await mysql.updateBackupPolicy({ + databaseId: '', + policyId: '', + name: '', // optional + schedule: '', // optional + retention: 1, // optional + enabled: false // optional +}); + +console.log(result); +``` diff --git a/examples/1.9.x/console-web/examples/mysql/update-backup-storage.md b/examples/1.9.x/console-web/examples/mysql/update-backup-storage.md new file mode 100644 index 000000000..ff3e63fec --- /dev/null +++ b/examples/1.9.x/console-web/examples/mysql/update-backup-storage.md @@ -0,0 +1,22 @@ +```javascript +import { Client, Mysql } from "@appwrite.io/console"; + +const client = new Client() + .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint + .setProject(''); // Your project ID + +const mysql = new Mysql(client); + +const result = await mysql.updateBackupStorage({ + databaseId: '', + provider: 's3', + bucket: '', + accessKey: '', + secretKey: '', + region: '', // optional + prefix: '', // optional + endpoint: '' // optional +}); + +console.log(result); +``` diff --git a/examples/1.9.x/console-web/examples/mysql/update-credentials.md b/examples/1.9.x/console-web/examples/mysql/update-credentials.md new file mode 100644 index 000000000..dae6b201f --- /dev/null +++ b/examples/1.9.x/console-web/examples/mysql/update-credentials.md @@ -0,0 +1,15 @@ +```javascript +import { Client, Mysql } from "@appwrite.io/console"; + +const client = new Client() + .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint + .setProject(''); // Your project ID + +const mysql = new Mysql(client); + +const result = await mysql.updateCredentials({ + databaseId: '' +}); + +console.log(result); +``` diff --git a/examples/1.9.x/console-web/examples/mysql/update-maintenance.md b/examples/1.9.x/console-web/examples/mysql/update-maintenance.md new file mode 100644 index 000000000..1e53f6b2f --- /dev/null +++ b/examples/1.9.x/console-web/examples/mysql/update-maintenance.md @@ -0,0 +1,17 @@ +```javascript +import { Client, Mysql } from "@appwrite.io/console"; + +const client = new Client() + .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint + .setProject(''); // Your project ID + +const mysql = new Mysql(client); + +const result = await mysql.updateMaintenance({ + databaseId: '', + day: 'sun', + hourUtc: 0 +}); + +console.log(result); +``` diff --git a/examples/1.9.x/console-web/examples/mysql/update-pooler.md b/examples/1.9.x/console-web/examples/mysql/update-pooler.md new file mode 100644 index 000000000..6aa2736b1 --- /dev/null +++ b/examples/1.9.x/console-web/examples/mysql/update-pooler.md @@ -0,0 +1,23 @@ +```javascript +import { Client, Mysql } from "@appwrite.io/console"; + +const client = new Client() + .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint + .setProject(''); // Your project ID + +const mysql = new Mysql(client); + +const result = await mysql.updatePooler({ + databaseId: '', + mode: 'transaction', // optional + maxConnections: 10, // optional + defaultPoolSize: 1, // optional + readWriteSplitting: false, // optional + poolerCpuRequest: '', // optional + poolerCpuLimit: '', // optional + poolerMemoryRequest: '', // optional + poolerMemoryLimit: '' // optional +}); + +console.log(result); +``` diff --git a/examples/1.9.x/console-web/examples/mysql/update.md b/examples/1.9.x/console-web/examples/mysql/update.md new file mode 100644 index 000000000..ce5e77fb4 --- /dev/null +++ b/examples/1.9.x/console-web/examples/mysql/update.md @@ -0,0 +1,37 @@ +```javascript +import { Client, Mysql } from "@appwrite.io/console"; + +const client = new Client() + .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint + .setProject(''); // Your project ID + +const mysql = new Mysql(client); + +const result = await mysql.update({ + databaseId: '', + name: '', // optional + status: 'ready', // optional + specification: '', // optional + replicas: 0, // optional + syncMode: 'async', // optional + crossRegionReplicas: 0, // optional + standbyRegion: '', // optional + networkIdleTimeoutSeconds: 60, // optional + networkIPAllowlist: [], // optional + idleTimeoutMinutes: 5, // optional + pitr: false, // optional + pitrRetentionDays: 1, // optional + storageAutoscaling: false, // optional + storageAutoscalingThresholdPercent: 50, // optional + storageAutoscalingMaxGb: 0, // optional + metricsTraceSampleRate: null, // optional + metricsSlowQueryLogThresholdMs: 0, // optional + sqlApiEnabled: false, // optional + sqlApiAllowedStatements: [], // optional + sqlApiMaxRows: 1, // optional + sqlApiMaxBytes: 1024, // optional + sqlApiTimeoutSeconds: 1 // optional +}); + +console.log(result); +``` diff --git a/examples/1.9.x/console-web/examples/notifications/list.md b/examples/1.9.x/console-web/examples/notifications/list.md new file mode 100644 index 000000000..92c60d9db --- /dev/null +++ b/examples/1.9.x/console-web/examples/notifications/list.md @@ -0,0 +1,15 @@ +```javascript +import { Client, Notifications } from "@appwrite.io/console"; + +const client = new Client() + .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint + .setProject(''); // Your project ID + +const notifications = new Notifications(client); + +const result = await notifications.list({ + queries: [] // optional +}); + +console.log(result); +``` diff --git a/examples/1.9.x/console-web/examples/notifications/update.md b/examples/1.9.x/console-web/examples/notifications/update.md new file mode 100644 index 000000000..8bea7057e --- /dev/null +++ b/examples/1.9.x/console-web/examples/notifications/update.md @@ -0,0 +1,16 @@ +```javascript +import { Client, Notifications } from "@appwrite.io/console"; + +const client = new Client() + .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint + .setProject(''); // Your project ID + +const notifications = new Notifications(client); + +const result = await notifications.update({ + notificationId: '', + read: false +}); + +console.log(result); +``` diff --git a/examples/1.9.x/console-web/examples/oauth2/approve.md b/examples/1.9.x/console-web/examples/oauth2/approve.md index 0395f0483..93b6755cc 100644 --- a/examples/1.9.x/console-web/examples/oauth2/approve.md +++ b/examples/1.9.x/console-web/examples/oauth2/approve.md @@ -9,7 +9,8 @@ const oauth2 = new Oauth2(client); const result = await oauth2.approve({ grantId: '', - authorizationDetails: '' // optional + authorizationDetails: '', // optional + scope: '' // optional }); console.log(result); diff --git a/examples/1.9.x/console-web/examples/oauth2/authorize-post.md b/examples/1.9.x/console-web/examples/oauth2/authorize-post.md new file mode 100644 index 000000000..78caf7e5b --- /dev/null +++ b/examples/1.9.x/console-web/examples/oauth2/authorize-post.md @@ -0,0 +1,28 @@ +```javascript +import { Client, Oauth2 } from "@appwrite.io/console"; + +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/1.9.x/console-web/examples/oauth2/authorize.md b/examples/1.9.x/console-web/examples/oauth2/authorize.md index b84107978..936bd711d 100644 --- a/examples/1.9.x/console-web/examples/oauth2/authorize.md +++ b/examples/1.9.x/console-web/examples/oauth2/authorize.md @@ -8,10 +8,10 @@ const client = new Client() const oauth2 = new Oauth2(client); const result = await oauth2.authorize({ - clientId: '', - redirectUri: 'https://example.com', - responseType: 'code', - scope: '', + clientId: '', // optional + redirectUri: 'https://example.com', // optional + responseType: '', // optional + scope: '', // optional state: '', // optional nonce: '', // optional codeChallenge: '', // optional @@ -19,7 +19,9 @@ const result = await oauth2.authorize({ prompt: '', // optional maxAge: 0, // optional authorizationDetails: '', // optional - resource: '' // optional + resource: '', // optional + audience: '', // optional + requestUri: '' // optional }); console.log(result); diff --git a/examples/1.9.x/console-web/examples/oauth2/create-device-authorization.md b/examples/1.9.x/console-web/examples/oauth2/create-device-authorization.md index e33a3a21b..e45f4332a 100644 --- a/examples/1.9.x/console-web/examples/oauth2/create-device-authorization.md +++ b/examples/1.9.x/console-web/examples/oauth2/create-device-authorization.md @@ -11,7 +11,8 @@ const result = await oauth2.createDeviceAuthorization({ clientId: '', // optional scope: '', // optional authorizationDetails: '', // optional - resource: '' // optional + resource: '', // optional + audience: '' // optional }); console.log(result); diff --git a/examples/1.9.x/console-web/examples/oauth2/create-par.md b/examples/1.9.x/console-web/examples/oauth2/create-par.md new file mode 100644 index 000000000..15c75bc78 --- /dev/null +++ b/examples/1.9.x/console-web/examples/oauth2/create-par.md @@ -0,0 +1,27 @@ +```javascript +import { Client, Oauth2 } from "@appwrite.io/console"; + +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/1.9.x/console-web/examples/oauth2/create-token.md b/examples/1.9.x/console-web/examples/oauth2/create-token.md index d2e0d21cc..cfd8f328b 100644 --- a/examples/1.9.x/console-web/examples/oauth2/create-token.md +++ b/examples/1.9.x/console-web/examples/oauth2/create-token.md @@ -16,7 +16,8 @@ const result = await oauth2.createToken({ clientSecret: '', // optional codeVerifier: '', // optional redirectUri: 'https://example.com', // optional - resource: '' // optional + resource: '', // optional + audience: '' // optional }); console.log(result); diff --git a/examples/1.9.x/console-web/examples/oauth2/list-organizations.md b/examples/1.9.x/console-web/examples/oauth2/list-organizations.md new file mode 100644 index 000000000..d5f8bc6eb --- /dev/null +++ b/examples/1.9.x/console-web/examples/oauth2/list-organizations.md @@ -0,0 +1,17 @@ +```javascript +import { Client, Oauth2 } from "@appwrite.io/console"; + +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/1.9.x/console-web/examples/oauth2/list-projects.md b/examples/1.9.x/console-web/examples/oauth2/list-projects.md new file mode 100644 index 000000000..fd40c0adf --- /dev/null +++ b/examples/1.9.x/console-web/examples/oauth2/list-projects.md @@ -0,0 +1,17 @@ +```javascript +import { Client, Oauth2 } from "@appwrite.io/console"; + +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/1.9.x/console-web/examples/oauth2/logout-post.md b/examples/1.9.x/console-web/examples/oauth2/logout-post.md new file mode 100644 index 000000000..478c7f280 --- /dev/null +++ b/examples/1.9.x/console-web/examples/oauth2/logout-post.md @@ -0,0 +1,20 @@ +```javascript +import { Client, Oauth2 } from "@appwrite.io/console"; + +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/1.9.x/console-web/examples/organization/create-membership.md b/examples/1.9.x/console-web/examples/organization/create-membership.md new file mode 100644 index 000000000..e27bb2195 --- /dev/null +++ b/examples/1.9.x/console-web/examples/organization/create-membership.md @@ -0,0 +1,20 @@ +```javascript +import { Client, Organization } from "@appwrite.io/console"; + +const client = new Client() + .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint + .setProject(''); // Your project ID + +const organization = new Organization(client); + +const result = await organization.createMembership({ + roles: [], + email: 'email@example.com', // optional + userId: '', // optional + phone: '+12065550100', // optional + url: 'https://example.com', // optional + name: '' // optional +}); + +console.log(result); +``` diff --git a/examples/1.9.x/console-web/examples/organization/delete-membership.md b/examples/1.9.x/console-web/examples/organization/delete-membership.md new file mode 100644 index 000000000..ffa6fa6e0 --- /dev/null +++ b/examples/1.9.x/console-web/examples/organization/delete-membership.md @@ -0,0 +1,15 @@ +```javascript +import { Client, Organization } from "@appwrite.io/console"; + +const client = new Client() + .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint + .setProject(''); // Your project ID + +const organization = new Organization(client); + +const result = await organization.deleteMembership({ + membershipId: '' +}); + +console.log(result); +``` diff --git a/examples/1.9.x/console-web/examples/organization/delete.md b/examples/1.9.x/console-web/examples/organization/delete.md new file mode 100644 index 000000000..b35fd2e52 --- /dev/null +++ b/examples/1.9.x/console-web/examples/organization/delete.md @@ -0,0 +1,13 @@ +```javascript +import { Client, Organization } from "@appwrite.io/console"; + +const client = new Client() + .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint + .setProject(''); // Your project ID + +const organization = new Organization(client); + +const result = await organization.delete(); + +console.log(result); +``` diff --git a/examples/1.9.x/console-web/examples/organization/get-membership.md b/examples/1.9.x/console-web/examples/organization/get-membership.md new file mode 100644 index 000000000..7edd314ae --- /dev/null +++ b/examples/1.9.x/console-web/examples/organization/get-membership.md @@ -0,0 +1,15 @@ +```javascript +import { Client, Organization } from "@appwrite.io/console"; + +const client = new Client() + .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint + .setProject(''); // Your project ID + +const organization = new Organization(client); + +const result = await organization.getMembership({ + membershipId: '' +}); + +console.log(result); +``` diff --git a/examples/1.9.x/console-web/examples/organization/get.md b/examples/1.9.x/console-web/examples/organization/get.md new file mode 100644 index 000000000..8be6a6926 --- /dev/null +++ b/examples/1.9.x/console-web/examples/organization/get.md @@ -0,0 +1,13 @@ +```javascript +import { Client, Organization } from "@appwrite.io/console"; + +const client = new Client() + .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint + .setProject(''); // Your project ID + +const organization = new Organization(client); + +const result = await organization.get(); + +console.log(result); +``` diff --git a/examples/1.9.x/console-web/examples/organization/list-memberships.md b/examples/1.9.x/console-web/examples/organization/list-memberships.md new file mode 100644 index 000000000..5f745d7e4 --- /dev/null +++ b/examples/1.9.x/console-web/examples/organization/list-memberships.md @@ -0,0 +1,17 @@ +```javascript +import { Client, Organization } from "@appwrite.io/console"; + +const client = new Client() + .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint + .setProject(''); // Your project ID + +const organization = new Organization(client); + +const result = await organization.listMemberships({ + queries: [], // optional + search: '', // optional + total: false // optional +}); + +console.log(result); +``` diff --git a/examples/1.9.x/console-web/examples/organization/update-membership.md b/examples/1.9.x/console-web/examples/organization/update-membership.md new file mode 100644 index 000000000..09e2a5437 --- /dev/null +++ b/examples/1.9.x/console-web/examples/organization/update-membership.md @@ -0,0 +1,16 @@ +```javascript +import { Client, Organization } from "@appwrite.io/console"; + +const client = new Client() + .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint + .setProject(''); // Your project ID + +const organization = new Organization(client); + +const result = await organization.updateMembership({ + membershipId: '', + roles: [] +}); + +console.log(result); +``` diff --git a/examples/1.9.x/console-web/examples/organization/update.md b/examples/1.9.x/console-web/examples/organization/update.md new file mode 100644 index 000000000..3aa67f9ba --- /dev/null +++ b/examples/1.9.x/console-web/examples/organization/update.md @@ -0,0 +1,15 @@ +```javascript +import { Client, Organization } from "@appwrite.io/console"; + +const client = new Client() + .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint + .setProject(''); // Your project ID + +const organization = new Organization(client); + +const result = await organization.update({ + name: '' +}); + +console.log(result); +``` diff --git a/examples/1.9.x/console-web/examples/organizations/create-premium-geo-db-addon.md b/examples/1.9.x/console-web/examples/organizations/create-premium-geo-db-addon.md new file mode 100644 index 000000000..cad59c65d --- /dev/null +++ b/examples/1.9.x/console-web/examples/organizations/create-premium-geo-db-addon.md @@ -0,0 +1,15 @@ +```javascript +import { Client, Organizations } from "@appwrite.io/console"; + +const client = new Client() + .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint + .setProject(''); // Your project ID + +const organizations = new Organizations(client); + +const result = await organizations.createPremiumGeoDBAddon({ + organizationId: '' +}); + +console.log(result); +``` diff --git a/examples/1.9.x/console-web/examples/postgresql/create-backup-policy.md b/examples/1.9.x/console-web/examples/postgresql/create-backup-policy.md new file mode 100644 index 000000000..90f1ff029 --- /dev/null +++ b/examples/1.9.x/console-web/examples/postgresql/create-backup-policy.md @@ -0,0 +1,21 @@ +```javascript +import { Client, Postgresql } from "@appwrite.io/console"; + +const client = new Client() + .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint + .setProject(''); // Your project ID + +const postgresql = new Postgresql(client); + +const result = await postgresql.createBackupPolicy({ + databaseId: '', + policyId: '', + name: '', + schedule: '', + retention: 1, + type: 'full', // optional + enabled: false // optional +}); + +console.log(result); +``` diff --git a/examples/1.9.x/console-web/examples/postgresql/create-backup.md b/examples/1.9.x/console-web/examples/postgresql/create-backup.md new file mode 100644 index 000000000..766555cf0 --- /dev/null +++ b/examples/1.9.x/console-web/examples/postgresql/create-backup.md @@ -0,0 +1,16 @@ +```javascript +import { Client, Postgresql } from "@appwrite.io/console"; + +const client = new Client() + .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint + .setProject(''); // Your project ID + +const postgresql = new Postgresql(client); + +const result = await postgresql.createBackup({ + databaseId: '', + type: 'full' // optional +}); + +console.log(result); +``` diff --git a/examples/1.9.x/console-web/examples/postgresql/create-branch.md b/examples/1.9.x/console-web/examples/postgresql/create-branch.md new file mode 100644 index 000000000..6e82f64a2 --- /dev/null +++ b/examples/1.9.x/console-web/examples/postgresql/create-branch.md @@ -0,0 +1,17 @@ +```javascript +import { Client, Postgresql } from "@appwrite.io/console"; + +const client = new Client() + .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint + .setProject(''); // Your project ID + +const postgresql = new Postgresql(client); + +const result = await postgresql.createBranch({ + databaseId: '', + branchId: '', // optional + ttl: 300 // optional +}); + +console.log(result); +``` diff --git a/examples/1.9.x/console-web/examples/postgresql/create-execution.md b/examples/1.9.x/console-web/examples/postgresql/create-execution.md new file mode 100644 index 000000000..1e4c9eaf7 --- /dev/null +++ b/examples/1.9.x/console-web/examples/postgresql/create-execution.md @@ -0,0 +1,18 @@ +```javascript +import { Client, Postgresql } from "@appwrite.io/console"; + +const client = new Client() + .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint + .setProject(''); // Your project ID + +const postgresql = new Postgresql(client); + +const result = await postgresql.createExecution({ + databaseId: '', + sql: '', + bindings: {}, // optional + timeoutSeconds: 1 // optional +}); + +console.log(result); +``` diff --git a/examples/1.9.x/console-web/examples/postgresql/create-extension.md b/examples/1.9.x/console-web/examples/postgresql/create-extension.md new file mode 100644 index 000000000..0c6e512d1 --- /dev/null +++ b/examples/1.9.x/console-web/examples/postgresql/create-extension.md @@ -0,0 +1,16 @@ +```javascript +import { Client, Postgresql } from "@appwrite.io/console"; + +const client = new Client() + .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint + .setProject(''); // Your project ID + +const postgresql = new Postgresql(client); + +const result = await postgresql.createExtension({ + databaseId: '', + name: '' +}); + +console.log(result); +``` diff --git a/examples/1.9.x/console-web/examples/postgresql/create-failover.md b/examples/1.9.x/console-web/examples/postgresql/create-failover.md new file mode 100644 index 000000000..77bfe691b --- /dev/null +++ b/examples/1.9.x/console-web/examples/postgresql/create-failover.md @@ -0,0 +1,16 @@ +```javascript +import { Client, Postgresql } from "@appwrite.io/console"; + +const client = new Client() + .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint + .setProject(''); // Your project ID + +const postgresql = new Postgresql(client); + +const result = await postgresql.createFailover({ + databaseId: '', + targetReplicaId: '' // optional +}); + +console.log(result); +``` diff --git a/examples/1.9.x/console-web/examples/postgresql/create-migration.md b/examples/1.9.x/console-web/examples/postgresql/create-migration.md new file mode 100644 index 000000000..703ec0223 --- /dev/null +++ b/examples/1.9.x/console-web/examples/postgresql/create-migration.md @@ -0,0 +1,17 @@ +```javascript +import { Client, Postgresql } from "@appwrite.io/console"; + +const client = new Client() + .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint + .setProject(''); // Your project ID + +const postgresql = new Postgresql(client); + +const result = await postgresql.createMigration({ + databaseId: '', + targetType: 'shared', + specification: '' // optional +}); + +console.log(result); +``` diff --git a/examples/1.9.x/console-web/examples/postgresql/create-restoration.md b/examples/1.9.x/console-web/examples/postgresql/create-restoration.md new file mode 100644 index 000000000..93b76b462 --- /dev/null +++ b/examples/1.9.x/console-web/examples/postgresql/create-restoration.md @@ -0,0 +1,18 @@ +```javascript +import { Client, Postgresql } from "@appwrite.io/console"; + +const client = new Client() + .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint + .setProject(''); // Your project ID + +const postgresql = new Postgresql(client); + +const result = await postgresql.createRestoration({ + databaseId: '', + type: 'backup', // optional + backupId: '', // optional + targetTime: '2020-10-15T06:38:00.000+00:00' // optional +}); + +console.log(result); +``` diff --git a/examples/1.9.x/console-web/examples/postgresql/create-upgrade.md b/examples/1.9.x/console-web/examples/postgresql/create-upgrade.md new file mode 100644 index 000000000..68496decb --- /dev/null +++ b/examples/1.9.x/console-web/examples/postgresql/create-upgrade.md @@ -0,0 +1,16 @@ +```javascript +import { Client, Postgresql } from "@appwrite.io/console"; + +const client = new Client() + .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint + .setProject(''); // Your project ID + +const postgresql = new Postgresql(client); + +const result = await postgresql.createUpgrade({ + databaseId: '', + targetVersion: '' +}); + +console.log(result); +``` diff --git a/examples/1.9.x/console-web/examples/postgresql/create.md b/examples/1.9.x/console-web/examples/postgresql/create.md new file mode 100644 index 000000000..ed60c77c8 --- /dev/null +++ b/examples/1.9.x/console-web/examples/postgresql/create.md @@ -0,0 +1,30 @@ +```javascript +import { Client, Postgresql } from "@appwrite.io/console"; + +const client = new Client() + .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint + .setProject(''); // Your project ID + +const postgresql = new Postgresql(client); + +const result = await postgresql.create({ + databaseId: '', + name: '', + version: '17', // optional + specification: '', // optional + replicas: 0, // optional + syncMode: 'async', // optional + standbyRegion: '', // optional + networkIdleTimeoutSeconds: 60, // optional + networkIPAllowlist: [], // optional + idleTimeoutMinutes: 5, // optional + pitr: false, // optional + pitrRetentionDays: 1, // optional + storageAutoscaling: false, // optional + storageAutoscalingThresholdPercent: 50, // optional + storageAutoscalingMaxGb: 0, // optional + api: 'tablesdb' // optional +}); + +console.log(result); +``` diff --git a/examples/1.9.x/console-web/examples/postgresql/delete-backup-policy.md b/examples/1.9.x/console-web/examples/postgresql/delete-backup-policy.md new file mode 100644 index 000000000..15dafdbc5 --- /dev/null +++ b/examples/1.9.x/console-web/examples/postgresql/delete-backup-policy.md @@ -0,0 +1,16 @@ +```javascript +import { Client, Postgresql } from "@appwrite.io/console"; + +const client = new Client() + .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint + .setProject(''); // Your project ID + +const postgresql = new Postgresql(client); + +const result = await postgresql.deleteBackupPolicy({ + databaseId: '', + policyId: '' +}); + +console.log(result); +``` diff --git a/examples/1.9.x/console-web/examples/postgresql/delete-backup.md b/examples/1.9.x/console-web/examples/postgresql/delete-backup.md new file mode 100644 index 000000000..2cb95e6cb --- /dev/null +++ b/examples/1.9.x/console-web/examples/postgresql/delete-backup.md @@ -0,0 +1,16 @@ +```javascript +import { Client, Postgresql } from "@appwrite.io/console"; + +const client = new Client() + .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint + .setProject(''); // Your project ID + +const postgresql = new Postgresql(client); + +const result = await postgresql.deleteBackup({ + databaseId: '', + backupId: '' +}); + +console.log(result); +``` diff --git a/examples/1.9.x/console-web/examples/postgresql/delete-branch.md b/examples/1.9.x/console-web/examples/postgresql/delete-branch.md new file mode 100644 index 000000000..a25448634 --- /dev/null +++ b/examples/1.9.x/console-web/examples/postgresql/delete-branch.md @@ -0,0 +1,16 @@ +```javascript +import { Client, Postgresql } from "@appwrite.io/console"; + +const client = new Client() + .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint + .setProject(''); // Your project ID + +const postgresql = new Postgresql(client); + +const result = await postgresql.deleteBranch({ + databaseId: '', + branchId: '' +}); + +console.log(result); +``` diff --git a/examples/1.9.x/console-web/examples/postgresql/delete-extension.md b/examples/1.9.x/console-web/examples/postgresql/delete-extension.md new file mode 100644 index 000000000..64adab490 --- /dev/null +++ b/examples/1.9.x/console-web/examples/postgresql/delete-extension.md @@ -0,0 +1,16 @@ +```javascript +import { Client, Postgresql } from "@appwrite.io/console"; + +const client = new Client() + .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint + .setProject(''); // Your project ID + +const postgresql = new Postgresql(client); + +const result = await postgresql.deleteExtension({ + databaseId: '', + extensionName: '' +}); + +console.log(result); +``` diff --git a/examples/1.9.x/console-web/examples/postgresql/delete.md b/examples/1.9.x/console-web/examples/postgresql/delete.md new file mode 100644 index 000000000..3c91f9fb1 --- /dev/null +++ b/examples/1.9.x/console-web/examples/postgresql/delete.md @@ -0,0 +1,15 @@ +```javascript +import { Client, Postgresql } from "@appwrite.io/console"; + +const client = new Client() + .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint + .setProject(''); // Your project ID + +const postgresql = new Postgresql(client); + +const result = await postgresql.delete({ + databaseId: '' +}); + +console.log(result); +``` diff --git a/examples/1.9.x/console-web/examples/postgresql/get-backup-policy.md b/examples/1.9.x/console-web/examples/postgresql/get-backup-policy.md new file mode 100644 index 000000000..0c65a1ee6 --- /dev/null +++ b/examples/1.9.x/console-web/examples/postgresql/get-backup-policy.md @@ -0,0 +1,16 @@ +```javascript +import { Client, Postgresql } from "@appwrite.io/console"; + +const client = new Client() + .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint + .setProject(''); // Your project ID + +const postgresql = new Postgresql(client); + +const result = await postgresql.getBackupPolicy({ + databaseId: '', + policyId: '' +}); + +console.log(result); +``` diff --git a/examples/1.9.x/console-web/examples/postgresql/get-backup.md b/examples/1.9.x/console-web/examples/postgresql/get-backup.md new file mode 100644 index 000000000..bd5b16752 --- /dev/null +++ b/examples/1.9.x/console-web/examples/postgresql/get-backup.md @@ -0,0 +1,16 @@ +```javascript +import { Client, Postgresql } from "@appwrite.io/console"; + +const client = new Client() + .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint + .setProject(''); // Your project ID + +const postgresql = new Postgresql(client); + +const result = await postgresql.getBackup({ + databaseId: '', + backupId: '' +}); + +console.log(result); +``` diff --git a/examples/1.9.x/console-web/examples/postgresql/get-pitr.md b/examples/1.9.x/console-web/examples/postgresql/get-pitr.md new file mode 100644 index 000000000..0cb36b6f6 --- /dev/null +++ b/examples/1.9.x/console-web/examples/postgresql/get-pitr.md @@ -0,0 +1,15 @@ +```javascript +import { Client, Postgresql } from "@appwrite.io/console"; + +const client = new Client() + .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint + .setProject(''); // Your project ID + +const postgresql = new Postgresql(client); + +const result = await postgresql.getPitr({ + databaseId: '' +}); + +console.log(result); +``` diff --git a/examples/1.9.x/console-web/examples/postgresql/get-pooler.md b/examples/1.9.x/console-web/examples/postgresql/get-pooler.md new file mode 100644 index 000000000..1140db7b8 --- /dev/null +++ b/examples/1.9.x/console-web/examples/postgresql/get-pooler.md @@ -0,0 +1,15 @@ +```javascript +import { Client, Postgresql } from "@appwrite.io/console"; + +const client = new Client() + .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint + .setProject(''); // Your project ID + +const postgresql = new Postgresql(client); + +const result = await postgresql.getPooler({ + databaseId: '' +}); + +console.log(result); +``` diff --git a/examples/1.9.x/console-web/examples/postgresql/get-replicas.md b/examples/1.9.x/console-web/examples/postgresql/get-replicas.md new file mode 100644 index 000000000..0b49ccffa --- /dev/null +++ b/examples/1.9.x/console-web/examples/postgresql/get-replicas.md @@ -0,0 +1,15 @@ +```javascript +import { Client, Postgresql } from "@appwrite.io/console"; + +const client = new Client() + .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint + .setProject(''); // Your project ID + +const postgresql = new Postgresql(client); + +const result = await postgresql.getReplicas({ + databaseId: '' +}); + +console.log(result); +``` diff --git a/examples/1.9.x/console-web/examples/postgresql/get-restoration.md b/examples/1.9.x/console-web/examples/postgresql/get-restoration.md new file mode 100644 index 000000000..2e203f21f --- /dev/null +++ b/examples/1.9.x/console-web/examples/postgresql/get-restoration.md @@ -0,0 +1,16 @@ +```javascript +import { Client, Postgresql } from "@appwrite.io/console"; + +const client = new Client() + .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint + .setProject(''); // Your project ID + +const postgresql = new Postgresql(client); + +const result = await postgresql.getRestoration({ + databaseId: '', + restorationId: '' +}); + +console.log(result); +``` diff --git a/examples/1.9.x/console-web/examples/postgresql/get-status.md b/examples/1.9.x/console-web/examples/postgresql/get-status.md new file mode 100644 index 000000000..fc42e980e --- /dev/null +++ b/examples/1.9.x/console-web/examples/postgresql/get-status.md @@ -0,0 +1,15 @@ +```javascript +import { Client, Postgresql } from "@appwrite.io/console"; + +const client = new Client() + .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint + .setProject(''); // Your project ID + +const postgresql = new Postgresql(client); + +const result = await postgresql.getStatus({ + databaseId: '' +}); + +console.log(result); +``` diff --git a/examples/1.9.x/console-web/examples/postgresql/get.md b/examples/1.9.x/console-web/examples/postgresql/get.md new file mode 100644 index 000000000..972bde1cb --- /dev/null +++ b/examples/1.9.x/console-web/examples/postgresql/get.md @@ -0,0 +1,15 @@ +```javascript +import { Client, Postgresql } from "@appwrite.io/console"; + +const client = new Client() + .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint + .setProject(''); // Your project ID + +const postgresql = new Postgresql(client); + +const result = await postgresql.get({ + databaseId: '' +}); + +console.log(result); +``` diff --git a/examples/1.9.x/console-web/examples/postgresql/list-backup-policies.md b/examples/1.9.x/console-web/examples/postgresql/list-backup-policies.md new file mode 100644 index 000000000..39f7de9dd --- /dev/null +++ b/examples/1.9.x/console-web/examples/postgresql/list-backup-policies.md @@ -0,0 +1,16 @@ +```javascript +import { Client, Postgresql } from "@appwrite.io/console"; + +const client = new Client() + .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint + .setProject(''); // Your project ID + +const postgresql = new Postgresql(client); + +const result = await postgresql.listBackupPolicies({ + databaseId: '', + queries: [] // optional +}); + +console.log(result); +``` diff --git a/examples/1.9.x/console-web/examples/postgresql/list-backups.md b/examples/1.9.x/console-web/examples/postgresql/list-backups.md new file mode 100644 index 000000000..e23618620 --- /dev/null +++ b/examples/1.9.x/console-web/examples/postgresql/list-backups.md @@ -0,0 +1,16 @@ +```javascript +import { Client, Postgresql } from "@appwrite.io/console"; + +const client = new Client() + .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint + .setProject(''); // Your project ID + +const postgresql = new Postgresql(client); + +const result = await postgresql.listBackups({ + databaseId: '', + queries: [] // optional +}); + +console.log(result); +``` diff --git a/examples/1.9.x/console-web/examples/postgresql/list-branches.md b/examples/1.9.x/console-web/examples/postgresql/list-branches.md new file mode 100644 index 000000000..58a21999c --- /dev/null +++ b/examples/1.9.x/console-web/examples/postgresql/list-branches.md @@ -0,0 +1,15 @@ +```javascript +import { Client, Postgresql } from "@appwrite.io/console"; + +const client = new Client() + .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint + .setProject(''); // Your project ID + +const postgresql = new Postgresql(client); + +const result = await postgresql.listBranches({ + databaseId: '' +}); + +console.log(result); +``` diff --git a/examples/1.9.x/console-web/examples/postgresql/list-extensions.md b/examples/1.9.x/console-web/examples/postgresql/list-extensions.md new file mode 100644 index 000000000..0f4986310 --- /dev/null +++ b/examples/1.9.x/console-web/examples/postgresql/list-extensions.md @@ -0,0 +1,15 @@ +```javascript +import { Client, Postgresql } from "@appwrite.io/console"; + +const client = new Client() + .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint + .setProject(''); // Your project ID + +const postgresql = new Postgresql(client); + +const result = await postgresql.listExtensions({ + databaseId: '' +}); + +console.log(result); +``` diff --git a/examples/1.9.x/console-web/examples/postgresql/list-restorations.md b/examples/1.9.x/console-web/examples/postgresql/list-restorations.md new file mode 100644 index 000000000..734acefa0 --- /dev/null +++ b/examples/1.9.x/console-web/examples/postgresql/list-restorations.md @@ -0,0 +1,19 @@ +```javascript +import { Client, Postgresql } from "@appwrite.io/console"; + +const client = new Client() + .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint + .setProject(''); // Your project ID + +const postgresql = new Postgresql(client); + +const result = await postgresql.listRestorations({ + databaseId: '', + status: 'pending', // optional + type: 'backup', // optional + limit: 1, // optional + offset: 0 // optional +}); + +console.log(result); +``` diff --git a/examples/1.9.x/console-web/examples/postgresql/list-specifications.md b/examples/1.9.x/console-web/examples/postgresql/list-specifications.md new file mode 100644 index 000000000..3af2dd66e --- /dev/null +++ b/examples/1.9.x/console-web/examples/postgresql/list-specifications.md @@ -0,0 +1,13 @@ +```javascript +import { Client, Postgresql } from "@appwrite.io/console"; + +const client = new Client() + .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint + .setProject(''); // Your project ID + +const postgresql = new Postgresql(client); + +const result = await postgresql.listSpecifications(); + +console.log(result); +``` diff --git a/examples/1.9.x/console-web/examples/postgresql/list.md b/examples/1.9.x/console-web/examples/postgresql/list.md new file mode 100644 index 000000000..01c8ff245 --- /dev/null +++ b/examples/1.9.x/console-web/examples/postgresql/list.md @@ -0,0 +1,15 @@ +```javascript +import { Client, Postgresql } from "@appwrite.io/console"; + +const client = new Client() + .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint + .setProject(''); // Your project ID + +const postgresql = new Postgresql(client); + +const result = await postgresql.list({ + queries: [] // optional +}); + +console.log(result); +``` diff --git a/examples/1.9.x/console-web/examples/postgresql/update-backup-policy.md b/examples/1.9.x/console-web/examples/postgresql/update-backup-policy.md new file mode 100644 index 000000000..2937583f5 --- /dev/null +++ b/examples/1.9.x/console-web/examples/postgresql/update-backup-policy.md @@ -0,0 +1,20 @@ +```javascript +import { Client, Postgresql } from "@appwrite.io/console"; + +const client = new Client() + .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint + .setProject(''); // Your project ID + +const postgresql = new Postgresql(client); + +const result = await postgresql.updateBackupPolicy({ + databaseId: '', + policyId: '', + name: '', // optional + schedule: '', // optional + retention: 1, // optional + enabled: false // optional +}); + +console.log(result); +``` diff --git a/examples/1.9.x/console-web/examples/postgresql/update-backup-storage.md b/examples/1.9.x/console-web/examples/postgresql/update-backup-storage.md new file mode 100644 index 000000000..6939a1c09 --- /dev/null +++ b/examples/1.9.x/console-web/examples/postgresql/update-backup-storage.md @@ -0,0 +1,22 @@ +```javascript +import { Client, Postgresql } from "@appwrite.io/console"; + +const client = new Client() + .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint + .setProject(''); // Your project ID + +const postgresql = new Postgresql(client); + +const result = await postgresql.updateBackupStorage({ + databaseId: '', + provider: 's3', + bucket: '', + accessKey: '', + secretKey: '', + region: '', // optional + prefix: '', // optional + endpoint: '' // optional +}); + +console.log(result); +``` diff --git a/examples/1.9.x/console-web/examples/postgresql/update-credentials.md b/examples/1.9.x/console-web/examples/postgresql/update-credentials.md new file mode 100644 index 000000000..1b32d41e8 --- /dev/null +++ b/examples/1.9.x/console-web/examples/postgresql/update-credentials.md @@ -0,0 +1,15 @@ +```javascript +import { Client, Postgresql } from "@appwrite.io/console"; + +const client = new Client() + .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint + .setProject(''); // Your project ID + +const postgresql = new Postgresql(client); + +const result = await postgresql.updateCredentials({ + databaseId: '' +}); + +console.log(result); +``` diff --git a/examples/1.9.x/console-web/examples/postgresql/update-maintenance.md b/examples/1.9.x/console-web/examples/postgresql/update-maintenance.md new file mode 100644 index 000000000..0b243aba1 --- /dev/null +++ b/examples/1.9.x/console-web/examples/postgresql/update-maintenance.md @@ -0,0 +1,17 @@ +```javascript +import { Client, Postgresql } from "@appwrite.io/console"; + +const client = new Client() + .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint + .setProject(''); // Your project ID + +const postgresql = new Postgresql(client); + +const result = await postgresql.updateMaintenance({ + databaseId: '', + day: 'sun', + hourUtc: 0 +}); + +console.log(result); +``` diff --git a/examples/1.9.x/console-web/examples/postgresql/update-pooler.md b/examples/1.9.x/console-web/examples/postgresql/update-pooler.md new file mode 100644 index 000000000..6b31331f0 --- /dev/null +++ b/examples/1.9.x/console-web/examples/postgresql/update-pooler.md @@ -0,0 +1,23 @@ +```javascript +import { Client, Postgresql } from "@appwrite.io/console"; + +const client = new Client() + .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint + .setProject(''); // Your project ID + +const postgresql = new Postgresql(client); + +const result = await postgresql.updatePooler({ + databaseId: '', + mode: 'transaction', // optional + maxConnections: 10, // optional + defaultPoolSize: 1, // optional + readWriteSplitting: false, // optional + poolerCpuRequest: '', // optional + poolerCpuLimit: '', // optional + poolerMemoryRequest: '', // optional + poolerMemoryLimit: '' // optional +}); + +console.log(result); +``` diff --git a/examples/1.9.x/console-web/examples/postgresql/update.md b/examples/1.9.x/console-web/examples/postgresql/update.md new file mode 100644 index 000000000..35e4a6457 --- /dev/null +++ b/examples/1.9.x/console-web/examples/postgresql/update.md @@ -0,0 +1,37 @@ +```javascript +import { Client, Postgresql } from "@appwrite.io/console"; + +const client = new Client() + .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint + .setProject(''); // Your project ID + +const postgresql = new Postgresql(client); + +const result = await postgresql.update({ + databaseId: '', + name: '', // optional + status: 'ready', // optional + specification: '', // optional + replicas: 0, // optional + syncMode: 'async', // optional + crossRegionReplicas: 0, // optional + standbyRegion: '', // optional + networkIdleTimeoutSeconds: 60, // optional + networkIPAllowlist: [], // optional + idleTimeoutMinutes: 5, // optional + pitr: false, // optional + pitrRetentionDays: 1, // optional + storageAutoscaling: false, // optional + storageAutoscalingThresholdPercent: 50, // optional + storageAutoscalingMaxGb: 0, // optional + metricsTraceSampleRate: null, // optional + metricsSlowQueryLogThresholdMs: 0, // optional + sqlApiEnabled: false, // optional + sqlApiAllowedStatements: [], // optional + sqlApiMaxRows: 1, // optional + sqlApiMaxBytes: 1024, // optional + sqlApiTimeoutSeconds: 1 // optional +}); + +console.log(result); +``` diff --git a/examples/1.9.x/console-web/examples/project/update-o-auth-2-appwrite.md b/examples/1.9.x/console-web/examples/project/update-o-auth-2-appwrite.md new file mode 100644 index 000000000..be9b975eb --- /dev/null +++ b/examples/1.9.x/console-web/examples/project/update-o-auth-2-appwrite.md @@ -0,0 +1,17 @@ +```javascript +import { Client, Project } from "@appwrite.io/console"; + +const client = new Client() + .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint + .setProject(''); // Your project ID + +const project = new Project(client); + +const result = await project.updateOAuth2Appwrite({ + clientId: '', // optional + clientSecret: '', // optional + enabled: false // optional +}); + +console.log(result); +``` diff --git a/examples/1.9.x/console-web/examples/project/update-o-auth-2-oidc.md b/examples/1.9.x/console-web/examples/project/update-o-auth-2-oidc.md index 4f97fb2ff..fe8e74b73 100644 --- a/examples/1.9.x/console-web/examples/project/update-o-auth-2-oidc.md +++ b/examples/1.9.x/console-web/examples/project/update-o-auth-2-oidc.md @@ -1,5 +1,5 @@ ```javascript -import { Client, Project } from "@appwrite.io/console"; +import { Client, Project, ProjectOAuth2OidcPrompt } from "@appwrite.io/console"; const client = new Client() .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint @@ -14,6 +14,8 @@ const result = await project.updateOAuth2Oidc({ authorizationURL: 'https://example.com', // optional tokenURL: 'https://example.com', // optional userInfoURL: 'https://example.com', // optional + prompt: [ProjectOAuth2OidcPrompt.None], // optional + maxAge: 0, // optional enabled: false // optional }); diff --git a/examples/1.9.x/console-web/examples/project/update-o-auth-2-server.md b/examples/1.9.x/console-web/examples/project/update-o-auth-2-server.md index 860e4f71d..45a206921 100644 --- a/examples/1.9.x/console-web/examples/project/update-o-auth-2-server.md +++ b/examples/1.9.x/console-web/examples/project/update-o-auth-2-server.md @@ -20,7 +20,8 @@ const result = await project.updateOAuth2Server({ verificationUrl: 'https://example.com', // optional userCodeLength: 6, // optional userCodeFormat: 'numeric', // optional - deviceCodeDuration: 60 // optional + deviceCodeDuration: 60, // optional + defaultScopes: [] // optional }); console.log(result); diff --git a/examples/1.9.x/console-web/examples/projects/confirm-addon-payment.md b/examples/1.9.x/console-web/examples/projects/confirm-addon-payment.md new file mode 100644 index 000000000..3da9da952 --- /dev/null +++ b/examples/1.9.x/console-web/examples/projects/confirm-addon-payment.md @@ -0,0 +1,16 @@ +```javascript +import { Client, Projects } from "@appwrite.io/console"; + +const client = new Client() + .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint + .setProject(''); // Your project ID + +const projects = new Projects(client); + +const result = await projects.confirmAddonPayment({ + projectId: '', + addonId: '' +}); + +console.log(result); +``` diff --git a/examples/1.9.x/console-web/examples/projects/create-premium-geo-db-addon.md b/examples/1.9.x/console-web/examples/projects/create-premium-geo-db-addon.md new file mode 100644 index 000000000..a627ec9ab --- /dev/null +++ b/examples/1.9.x/console-web/examples/projects/create-premium-geo-db-addon.md @@ -0,0 +1,15 @@ +```javascript +import { Client, Projects } from "@appwrite.io/console"; + +const client = new Client() + .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint + .setProject(''); // Your project ID + +const projects = new Projects(client); + +const result = await projects.createPremiumGeoDBAddon({ + projectId: '' +}); + +console.log(result); +``` diff --git a/examples/1.9.x/console-web/examples/projects/delete-addon.md b/examples/1.9.x/console-web/examples/projects/delete-addon.md new file mode 100644 index 000000000..21edcc6ec --- /dev/null +++ b/examples/1.9.x/console-web/examples/projects/delete-addon.md @@ -0,0 +1,16 @@ +```javascript +import { Client, Projects } from "@appwrite.io/console"; + +const client = new Client() + .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint + .setProject(''); // Your project ID + +const projects = new Projects(client); + +const result = await projects.deleteAddon({ + projectId: '', + addonId: '' +}); + +console.log(result); +``` diff --git a/examples/1.9.x/console-web/examples/projects/get-addon-price.md b/examples/1.9.x/console-web/examples/projects/get-addon-price.md new file mode 100644 index 000000000..d51f477b0 --- /dev/null +++ b/examples/1.9.x/console-web/examples/projects/get-addon-price.md @@ -0,0 +1,16 @@ +```javascript +import { Client, Projects } from "@appwrite.io/console"; + +const client = new Client() + .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint + .setProject(''); // Your project ID + +const projects = new Projects(client); + +const result = await projects.getAddonPrice({ + projectId: '', + addon: 'baa' +}); + +console.log(result); +``` diff --git a/examples/1.9.x/console-web/examples/projects/get-addon.md b/examples/1.9.x/console-web/examples/projects/get-addon.md new file mode 100644 index 000000000..5ec8ce395 --- /dev/null +++ b/examples/1.9.x/console-web/examples/projects/get-addon.md @@ -0,0 +1,16 @@ +```javascript +import { Client, Projects } from "@appwrite.io/console"; + +const client = new Client() + .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint + .setProject(''); // Your project ID + +const projects = new Projects(client); + +const result = await projects.getAddon({ + projectId: '', + addonId: '' +}); + +console.log(result); +``` diff --git a/examples/1.9.x/console-web/examples/projects/list-addons.md b/examples/1.9.x/console-web/examples/projects/list-addons.md new file mode 100644 index 000000000..30a4d9af5 --- /dev/null +++ b/examples/1.9.x/console-web/examples/projects/list-addons.md @@ -0,0 +1,15 @@ +```javascript +import { Client, Projects } from "@appwrite.io/console"; + +const client = new Client() + .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint + .setProject(''); // Your project ID + +const projects = new Projects(client); + +const result = await projects.listAddons({ + projectId: '' +}); + +console.log(result); +``` diff --git a/examples/1.9.x/console-web/examples/projects/list-stages.md b/examples/1.9.x/console-web/examples/projects/list-stages.md new file mode 100644 index 000000000..3a0783b49 --- /dev/null +++ b/examples/1.9.x/console-web/examples/projects/list-stages.md @@ -0,0 +1,15 @@ +```javascript +import { Client, Projects } from "@appwrite.io/console"; + +const client = new Client() + .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint + .setProject(''); // Your project ID + +const projects = new Projects(client); + +const result = await projects.listStages({ + projectId: '' +}); + +console.log(result); +``` diff --git a/examples/1.9.x/console-web/examples/projects/update-stage.md b/examples/1.9.x/console-web/examples/projects/update-stage.md new file mode 100644 index 000000000..00dec4105 --- /dev/null +++ b/examples/1.9.x/console-web/examples/projects/update-stage.md @@ -0,0 +1,17 @@ +```javascript +import { Client, Projects } from "@appwrite.io/console"; + +const client = new Client() + .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint + .setProject(''); // Your project ID + +const projects = new Projects(client); + +const result = await projects.updateStage({ + projectId: '', + stageId: '', + skip: false // optional +}); + +console.log(result); +``` diff --git a/examples/1.9.x/console-web/examples/sites/get-deployment-download.md b/examples/1.9.x/console-web/examples/sites/get-deployment-download.md index 2645bd510..acbbadd10 100644 --- a/examples/1.9.x/console-web/examples/sites/get-deployment-download.md +++ b/examples/1.9.x/console-web/examples/sites/get-deployment-download.md @@ -10,7 +10,8 @@ const sites = new Sites(client); const result = sites.getDeploymentDownload({ siteId: '', deploymentId: '', - type: DeploymentDownloadType.Source // optional + type: DeploymentDownloadType.Source, // optional + token: '' // optional }); console.log(result); diff --git a/examples/1.9.x/console-web/examples/tablesdb/create-failover.md b/examples/1.9.x/console-web/examples/tablesdb/create-failover.md new file mode 100644 index 000000000..801f32a9e --- /dev/null +++ b/examples/1.9.x/console-web/examples/tablesdb/create-failover.md @@ -0,0 +1,16 @@ +```javascript +import { Client, TablesDB } from "@appwrite.io/console"; + +const client = new Client() + .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint + .setProject(''); // Your project ID + +const tablesDB = new TablesDB(client); + +const result = await tablesDB.createFailover({ + databaseId: '', + targetReplicaId: '' // optional +}); + +console.log(result); +``` diff --git a/examples/1.9.x/console-web/examples/tablesdb/create-migration.md b/examples/1.9.x/console-web/examples/tablesdb/create-migration.md new file mode 100644 index 000000000..199ef50a8 --- /dev/null +++ b/examples/1.9.x/console-web/examples/tablesdb/create-migration.md @@ -0,0 +1,16 @@ +```javascript +import { Client, TablesDB } from "@appwrite.io/console"; + +const client = new Client() + .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint + .setProject(''); // Your project ID + +const tablesDB = new TablesDB(client); + +const result = await tablesDB.createMigration({ + databaseId: '', + specification: 's-1vcpu-1gb' +}); + +console.log(result); +``` diff --git a/examples/1.9.x/console-web/examples/tablesdb/create.md b/examples/1.9.x/console-web/examples/tablesdb/create.md index 2f33a89f0..01c2a5a60 100644 --- a/examples/1.9.x/console-web/examples/tablesdb/create.md +++ b/examples/1.9.x/console-web/examples/tablesdb/create.md @@ -11,7 +11,8 @@ const result = await tablesDB.create({ databaseId: '', name: '', enabled: false, // optional - dedicatedDatabaseId: '' // optional + specification: 'serverless', // optional + replicas: 0 // optional }); console.log(result); diff --git a/examples/1.9.x/console-web/examples/tablesdb/delete-migration.md b/examples/1.9.x/console-web/examples/tablesdb/delete-migration.md new file mode 100644 index 000000000..66a4af330 --- /dev/null +++ b/examples/1.9.x/console-web/examples/tablesdb/delete-migration.md @@ -0,0 +1,16 @@ +```javascript +import { Client, TablesDB } from "@appwrite.io/console"; + +const client = new Client() + .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint + .setProject(''); // Your project ID + +const tablesDB = new TablesDB(client); + +const result = await tablesDB.deleteMigration({ + databaseId: '', + migrationId: '' +}); + +console.log(result); +``` diff --git a/examples/1.9.x/console-web/examples/tablesdb/get-migration.md b/examples/1.9.x/console-web/examples/tablesdb/get-migration.md new file mode 100644 index 000000000..2b88ff500 --- /dev/null +++ b/examples/1.9.x/console-web/examples/tablesdb/get-migration.md @@ -0,0 +1,16 @@ +```javascript +import { Client, TablesDB } from "@appwrite.io/console"; + +const client = new Client() + .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint + .setProject(''); // Your project ID + +const tablesDB = new TablesDB(client); + +const result = await tablesDB.getMigration({ + databaseId: '', + migrationId: '' +}); + +console.log(result); +``` diff --git a/examples/1.9.x/console-web/examples/tablesdb/get-replicas.md b/examples/1.9.x/console-web/examples/tablesdb/get-replicas.md new file mode 100644 index 000000000..9a0c582eb --- /dev/null +++ b/examples/1.9.x/console-web/examples/tablesdb/get-replicas.md @@ -0,0 +1,15 @@ +```javascript +import { Client, TablesDB } from "@appwrite.io/console"; + +const client = new Client() + .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint + .setProject(''); // Your project ID + +const tablesDB = new TablesDB(client); + +const result = await tablesDB.getReplicas({ + databaseId: '' +}); + +console.log(result); +``` diff --git a/examples/1.9.x/console-web/examples/tablesdb/get-status.md b/examples/1.9.x/console-web/examples/tablesdb/get-status.md new file mode 100644 index 000000000..b96d875f5 --- /dev/null +++ b/examples/1.9.x/console-web/examples/tablesdb/get-status.md @@ -0,0 +1,15 @@ +```javascript +import { Client, TablesDB } from "@appwrite.io/console"; + +const client = new Client() + .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint + .setProject(''); // Your project ID + +const tablesDB = new TablesDB(client); + +const result = await tablesDB.getStatus({ + databaseId: '' +}); + +console.log(result); +``` diff --git a/examples/1.9.x/console-web/examples/tablesdb/list-migrations.md b/examples/1.9.x/console-web/examples/tablesdb/list-migrations.md new file mode 100644 index 000000000..ff09eb63f --- /dev/null +++ b/examples/1.9.x/console-web/examples/tablesdb/list-migrations.md @@ -0,0 +1,15 @@ +```javascript +import { Client, TablesDB } from "@appwrite.io/console"; + +const client = new Client() + .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint + .setProject(''); // Your project ID + +const tablesDB = new TablesDB(client); + +const result = await tablesDB.listMigrations({ + databaseId: '' +}); + +console.log(result); +``` diff --git a/examples/1.9.x/console-web/examples/tablesdb/list-specifications.md b/examples/1.9.x/console-web/examples/tablesdb/list-specifications.md new file mode 100644 index 000000000..250a84029 --- /dev/null +++ b/examples/1.9.x/console-web/examples/tablesdb/list-specifications.md @@ -0,0 +1,13 @@ +```javascript +import { Client, TablesDB } from "@appwrite.io/console"; + +const client = new Client() + .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint + .setProject(''); // Your project ID + +const tablesDB = new TablesDB(client); + +const result = await tablesDB.listSpecifications(); + +console.log(result); +``` diff --git a/examples/1.9.x/console-web/examples/tablesdb/update.md b/examples/1.9.x/console-web/examples/tablesdb/update.md index 9e66c9666..bf394a7fb 100644 --- a/examples/1.9.x/console-web/examples/tablesdb/update.md +++ b/examples/1.9.x/console-web/examples/tablesdb/update.md @@ -10,7 +10,8 @@ const tablesDB = new TablesDB(client); const result = await tablesDB.update({ databaseId: '', name: '', // optional - enabled: false // optional + enabled: false, // optional + replicas: 0 // optional }); console.log(result); diff --git a/examples/1.9.x/console-web/examples/usage/list-events.md b/examples/1.9.x/console-web/examples/usage/list-events.md index d69a51ad5..a8d124a0e 100644 --- a/examples/1.9.x/console-web/examples/usage/list-events.md +++ b/examples/1.9.x/console-web/examples/usage/list-events.md @@ -9,8 +9,7 @@ const usage = new Usage(client); const result = await usage.listEvents({ metrics: [], - resource: '', // optional - resourceId: '', // optional + queries: [], // optional interval: '1m', // optional dimensions: [], // optional startAt: '2020-10-15T06:38:00.000+00:00', // optional diff --git a/examples/1.9.x/console-web/examples/usage/list-gauges.md b/examples/1.9.x/console-web/examples/usage/list-gauges.md index e687be8a7..e1007ffee 100644 --- a/examples/1.9.x/console-web/examples/usage/list-gauges.md +++ b/examples/1.9.x/console-web/examples/usage/list-gauges.md @@ -9,8 +9,7 @@ const usage = new Usage(client); const result = await usage.listGauges({ metrics: [], - resourceId: '', // optional - teamId: '', // optional + queries: [], // optional interval: '1m', // optional dimensions: [], // optional startAt: '2020-10-15T06:38:00.000+00:00', // optional diff --git a/examples/1.9.x/console-web/examples/vectorsdb/create-failover.md b/examples/1.9.x/console-web/examples/vectorsdb/create-failover.md new file mode 100644 index 000000000..0c0509ca0 --- /dev/null +++ b/examples/1.9.x/console-web/examples/vectorsdb/create-failover.md @@ -0,0 +1,16 @@ +```javascript +import { Client, VectorsDB } from "@appwrite.io/console"; + +const client = new Client() + .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint + .setProject(''); // Your project ID + +const vectorsDB = new VectorsDB(client); + +const result = await vectorsDB.createFailover({ + databaseId: '', + targetReplicaId: '' // optional +}); + +console.log(result); +``` diff --git a/examples/1.9.x/console-web/examples/vectorsdb/create.md b/examples/1.9.x/console-web/examples/vectorsdb/create.md index 10d3b15b1..c7198a388 100644 --- a/examples/1.9.x/console-web/examples/vectorsdb/create.md +++ b/examples/1.9.x/console-web/examples/vectorsdb/create.md @@ -11,7 +11,8 @@ const result = await vectorsDB.create({ databaseId: '', name: '', enabled: false, // optional - dedicatedDatabaseId: '' // optional + specification: 'serverless', // optional + replicas: 0 // optional }); console.log(result); diff --git a/examples/1.9.x/console-web/examples/vectorsdb/get-replicas.md b/examples/1.9.x/console-web/examples/vectorsdb/get-replicas.md new file mode 100644 index 000000000..33d1f405f --- /dev/null +++ b/examples/1.9.x/console-web/examples/vectorsdb/get-replicas.md @@ -0,0 +1,15 @@ +```javascript +import { Client, VectorsDB } from "@appwrite.io/console"; + +const client = new Client() + .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint + .setProject(''); // Your project ID + +const vectorsDB = new VectorsDB(client); + +const result = await vectorsDB.getReplicas({ + databaseId: '' +}); + +console.log(result); +``` diff --git a/examples/1.9.x/console-web/examples/vectorsdb/get-status.md b/examples/1.9.x/console-web/examples/vectorsdb/get-status.md new file mode 100644 index 000000000..fbdeffa27 --- /dev/null +++ b/examples/1.9.x/console-web/examples/vectorsdb/get-status.md @@ -0,0 +1,15 @@ +```javascript +import { Client, VectorsDB } from "@appwrite.io/console"; + +const client = new Client() + .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint + .setProject(''); // Your project ID + +const vectorsDB = new VectorsDB(client); + +const result = await vectorsDB.getStatus({ + databaseId: '' +}); + +console.log(result); +``` diff --git a/examples/1.9.x/console-web/examples/vectorsdb/list-specifications.md b/examples/1.9.x/console-web/examples/vectorsdb/list-specifications.md new file mode 100644 index 000000000..583a25937 --- /dev/null +++ b/examples/1.9.x/console-web/examples/vectorsdb/list-specifications.md @@ -0,0 +1,13 @@ +```javascript +import { Client, VectorsDB } from "@appwrite.io/console"; + +const client = new Client() + .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint + .setProject(''); // Your project ID + +const vectorsDB = new VectorsDB(client); + +const result = await vectorsDB.listSpecifications(); + +console.log(result); +``` diff --git a/examples/1.9.x/console-web/examples/vectorsdb/update.md b/examples/1.9.x/console-web/examples/vectorsdb/update.md index c0fc980bb..c85b0c5cc 100644 --- a/examples/1.9.x/console-web/examples/vectorsdb/update.md +++ b/examples/1.9.x/console-web/examples/vectorsdb/update.md @@ -10,7 +10,8 @@ const vectorsDB = new VectorsDB(client); const result = await vectorsDB.update({ databaseId: '', name: '', - enabled: false // optional + enabled: false, // optional + replicas: 0 // optional }); console.log(result); diff --git a/examples/1.9.x/console-web/examples/waf/create-bypass-rule.md b/examples/1.9.x/console-web/examples/waf/create-bypass-rule.md new file mode 100644 index 000000000..17adacb6d --- /dev/null +++ b/examples/1.9.x/console-web/examples/waf/create-bypass-rule.md @@ -0,0 +1,22 @@ +```javascript +import { Client, Waf } from "@appwrite.io/console"; + +const client = new Client() + .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint + .setProject(''); // Your project ID + +const waf = new Waf(client); + +const result = await waf.createBypassRule({ + ruleId: '', + resourceType: 'api', + name: '', + resourceId: '', // optional + description: '', // optional + priority: -100000, // optional + enabled: false, // optional + conditions: '' // optional +}); + +console.log(result); +``` diff --git a/examples/1.9.x/console-web/examples/waf/create-deny-rule.md b/examples/1.9.x/console-web/examples/waf/create-deny-rule.md new file mode 100644 index 000000000..204ce88a2 --- /dev/null +++ b/examples/1.9.x/console-web/examples/waf/create-deny-rule.md @@ -0,0 +1,22 @@ +```javascript +import { Client, Waf } from "@appwrite.io/console"; + +const client = new Client() + .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint + .setProject(''); // Your project ID + +const waf = new Waf(client); + +const result = await waf.createDenyRule({ + ruleId: '', + resourceType: 'api', + name: '', + resourceId: '', // optional + description: '', // optional + priority: -100000, // optional + enabled: false, // optional + conditions: '' // optional +}); + +console.log(result); +``` diff --git a/examples/1.9.x/console-web/examples/waf/create-rate-limit-rule.md b/examples/1.9.x/console-web/examples/waf/create-rate-limit-rule.md new file mode 100644 index 000000000..ede249e1b --- /dev/null +++ b/examples/1.9.x/console-web/examples/waf/create-rate-limit-rule.md @@ -0,0 +1,24 @@ +```javascript +import { Client, Waf } from "@appwrite.io/console"; + +const client = new Client() + .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint + .setProject(''); // Your project ID + +const waf = new Waf(client); + +const result = await waf.createRateLimitRule({ + ruleId: '', + resourceType: 'api', + name: '', + limit: 1, + interval: 1, + resourceId: '', // optional + description: '', // optional + priority: -100000, // optional + enabled: false, // optional + conditions: '' // optional +}); + +console.log(result); +``` diff --git a/examples/1.9.x/console-web/examples/waf/create-redirect-rule.md b/examples/1.9.x/console-web/examples/waf/create-redirect-rule.md new file mode 100644 index 000000000..66f67b92a --- /dev/null +++ b/examples/1.9.x/console-web/examples/waf/create-redirect-rule.md @@ -0,0 +1,24 @@ +```javascript +import { Client, Waf } from "@appwrite.io/console"; + +const client = new Client() + .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint + .setProject(''); // Your project ID + +const waf = new Waf(client); + +const result = await waf.createRedirectRule({ + ruleId: '', + resourceType: 'api', + name: '', + location: '', + statusCode: 300, + resourceId: '', // optional + description: '', // optional + priority: -100000, // optional + enabled: false, // optional + conditions: '' // optional +}); + +console.log(result); +``` diff --git a/examples/1.9.x/console-web/examples/waf/delete-rule.md b/examples/1.9.x/console-web/examples/waf/delete-rule.md new file mode 100644 index 000000000..ebcd3e754 --- /dev/null +++ b/examples/1.9.x/console-web/examples/waf/delete-rule.md @@ -0,0 +1,15 @@ +```javascript +import { Client, Waf } from "@appwrite.io/console"; + +const client = new Client() + .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint + .setProject(''); // Your project ID + +const waf = new Waf(client); + +const result = await waf.deleteRule({ + ruleId: '' +}); + +console.log(result); +``` diff --git a/examples/1.9.x/console-web/examples/waf/get-rule.md b/examples/1.9.x/console-web/examples/waf/get-rule.md new file mode 100644 index 000000000..3b498b65d --- /dev/null +++ b/examples/1.9.x/console-web/examples/waf/get-rule.md @@ -0,0 +1,15 @@ +```javascript +import { Client, Waf } from "@appwrite.io/console"; + +const client = new Client() + .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint + .setProject(''); // Your project ID + +const waf = new Waf(client); + +const result = await waf.getRule({ + ruleId: '' +}); + +console.log(result); +``` diff --git a/examples/1.9.x/console-web/examples/waf/list-rules.md b/examples/1.9.x/console-web/examples/waf/list-rules.md new file mode 100644 index 000000000..4cbf7bb74 --- /dev/null +++ b/examples/1.9.x/console-web/examples/waf/list-rules.md @@ -0,0 +1,17 @@ +```javascript +import { Client, Waf } from "@appwrite.io/console"; + +const client = new Client() + .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint + .setProject(''); // Your project ID + +const waf = new Waf(client); + +const result = await waf.listRules({ + queries: [], // optional + search: '', // optional + total: false // optional +}); + +console.log(result); +``` diff --git a/examples/1.9.x/console-web/examples/waf/update-bypass-rule.md b/examples/1.9.x/console-web/examples/waf/update-bypass-rule.md new file mode 100644 index 000000000..30cbca804 --- /dev/null +++ b/examples/1.9.x/console-web/examples/waf/update-bypass-rule.md @@ -0,0 +1,22 @@ +```javascript +import { Client, Waf } from "@appwrite.io/console"; + +const client = new Client() + .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint + .setProject(''); // Your project ID + +const waf = new Waf(client); + +const result = await waf.updateBypassRule({ + ruleId: '', + resourceType: 'api', // optional + resourceId: '', // optional + name: '', // optional + description: '', // optional + priority: -100000, // optional + enabled: false, // optional + conditions: '' // optional +}); + +console.log(result); +``` diff --git a/examples/1.9.x/console-web/examples/waf/update-deny-rule.md b/examples/1.9.x/console-web/examples/waf/update-deny-rule.md new file mode 100644 index 000000000..473bdcafd --- /dev/null +++ b/examples/1.9.x/console-web/examples/waf/update-deny-rule.md @@ -0,0 +1,22 @@ +```javascript +import { Client, Waf } from "@appwrite.io/console"; + +const client = new Client() + .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint + .setProject(''); // Your project ID + +const waf = new Waf(client); + +const result = await waf.updateDenyRule({ + ruleId: '', + resourceType: 'api', // optional + resourceId: '', // optional + name: '', // optional + description: '', // optional + priority: -100000, // optional + enabled: false, // optional + conditions: '' // optional +}); + +console.log(result); +``` diff --git a/examples/1.9.x/console-web/examples/waf/update-rate-limit-rule.md b/examples/1.9.x/console-web/examples/waf/update-rate-limit-rule.md new file mode 100644 index 000000000..3444a022b --- /dev/null +++ b/examples/1.9.x/console-web/examples/waf/update-rate-limit-rule.md @@ -0,0 +1,24 @@ +```javascript +import { Client, Waf } from "@appwrite.io/console"; + +const client = new Client() + .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint + .setProject(''); // Your project ID + +const waf = new Waf(client); + +const result = await waf.updateRateLimitRule({ + ruleId: '', + resourceType: 'api', // optional + resourceId: '', // optional + name: '', // optional + description: '', // optional + limit: 1, // optional + interval: 1, // optional + priority: -100000, // optional + enabled: false, // optional + conditions: '' // optional +}); + +console.log(result); +``` diff --git a/examples/1.9.x/console-web/examples/waf/update-redirect-rule.md b/examples/1.9.x/console-web/examples/waf/update-redirect-rule.md new file mode 100644 index 000000000..907ebda8b --- /dev/null +++ b/examples/1.9.x/console-web/examples/waf/update-redirect-rule.md @@ -0,0 +1,24 @@ +```javascript +import { Client, Waf } from "@appwrite.io/console"; + +const client = new Client() + .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint + .setProject(''); // Your project ID + +const waf = new Waf(client); + +const result = await waf.updateRedirectRule({ + ruleId: '', + resourceType: 'api', // optional + resourceId: '', // optional + name: '', // optional + description: '', // optional + location: '', // optional + statusCode: 300, // optional + priority: -100000, // optional + enabled: false, // optional + conditions: '' // optional +}); + +console.log(result); +``` diff --git a/examples/1.9.x/server-dart/examples/account/delete-consent-token.md b/examples/1.9.x/server-dart/examples/account/delete-consent-token.md new file mode 100644 index 000000000..9f407fcf7 --- /dev/null +++ b/examples/1.9.x/server-dart/examples/account/delete-consent-token.md @@ -0,0 +1,15 @@ +```dart +import 'package:dart_appwrite/dart_appwrite.dart'; + +Client client = Client() + .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint + .setProject('') // Your project ID + .setSession(''); // The user session to authenticate with + +Account account = Account(client); + +await account.deleteConsentToken( + consentId: '', + tokenId: '', +); +``` diff --git a/examples/1.9.x/server-dart/examples/account/delete-consent.md b/examples/1.9.x/server-dart/examples/account/delete-consent.md new file mode 100644 index 000000000..ad1d2399c --- /dev/null +++ b/examples/1.9.x/server-dart/examples/account/delete-consent.md @@ -0,0 +1,14 @@ +```dart +import 'package:dart_appwrite/dart_appwrite.dart'; + +Client client = Client() + .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint + .setProject('') // Your project ID + .setSession(''); // The user session to authenticate with + +Account account = Account(client); + +await account.deleteConsent( + consentId: '', +); +``` diff --git a/examples/1.9.x/server-dart/examples/account/get-consent-token.md b/examples/1.9.x/server-dart/examples/account/get-consent-token.md new file mode 100644 index 000000000..d742f14e2 --- /dev/null +++ b/examples/1.9.x/server-dart/examples/account/get-consent-token.md @@ -0,0 +1,15 @@ +```dart +import 'package:dart_appwrite/dart_appwrite.dart'; + +Client client = Client() + .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint + .setProject('') // Your project ID + .setSession(''); // The user session to authenticate with + +Account account = Account(client); + +Oauth2ConsentToken result = await account.getConsentToken( + consentId: '', + tokenId: '', +); +``` diff --git a/examples/1.9.x/server-dart/examples/account/get-consent.md b/examples/1.9.x/server-dart/examples/account/get-consent.md new file mode 100644 index 000000000..91e7b7afe --- /dev/null +++ b/examples/1.9.x/server-dart/examples/account/get-consent.md @@ -0,0 +1,14 @@ +```dart +import 'package:dart_appwrite/dart_appwrite.dart'; + +Client client = Client() + .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint + .setProject('') // Your project ID + .setSession(''); // The user session to authenticate with + +Account account = Account(client); + +Oauth2Consent result = await account.getConsent( + consentId: '', +); +``` diff --git a/examples/1.9.x/server-dart/examples/account/list-consent-tokens.md b/examples/1.9.x/server-dart/examples/account/list-consent-tokens.md new file mode 100644 index 000000000..579d03a5d --- /dev/null +++ b/examples/1.9.x/server-dart/examples/account/list-consent-tokens.md @@ -0,0 +1,16 @@ +```dart +import 'package:dart_appwrite/dart_appwrite.dart'; + +Client client = Client() + .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint + .setProject('') // Your project ID + .setSession(''); // The user session to authenticate with + +Account account = Account(client); + +Oauth2ConsentTokenList result = await account.listConsentTokens( + consentId: '', + queries: [], // (optional) + total: false, // (optional) +); +``` diff --git a/examples/1.9.x/server-dart/examples/account/list-consents.md b/examples/1.9.x/server-dart/examples/account/list-consents.md new file mode 100644 index 000000000..f2a97b9d6 --- /dev/null +++ b/examples/1.9.x/server-dart/examples/account/list-consents.md @@ -0,0 +1,15 @@ +```dart +import 'package:dart_appwrite/dart_appwrite.dart'; + +Client client = Client() + .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint + .setProject('') // Your project ID + .setSession(''); // The user session to authenticate with + +Account account = Account(client); + +Oauth2ConsentList result = await account.listConsents( + queries: [], // (optional) + total: false, // (optional) +); +``` diff --git a/examples/1.9.x/server-dart/examples/functions/get-deployment-download.md b/examples/1.9.x/server-dart/examples/functions/get-deployment-download.md index 378a366ad..618f84b62 100644 --- a/examples/1.9.x/server-dart/examples/functions/get-deployment-download.md +++ b/examples/1.9.x/server-dart/examples/functions/get-deployment-download.md @@ -13,5 +13,6 @@ Uint8List result = await functions.getDeploymentDownload( functionId: '', deploymentId: '', type: enums.DeploymentDownloadType.source, // (optional) + token: '', // (optional) ); ``` diff --git a/examples/1.9.x/server-dart/examples/health/get-geo-premium.md b/examples/1.9.x/server-dart/examples/health/get-geo-premium.md new file mode 100644 index 000000000..4fa884c9b --- /dev/null +++ b/examples/1.9.x/server-dart/examples/health/get-geo-premium.md @@ -0,0 +1,12 @@ +```dart +import 'package:dart_appwrite/dart_appwrite.dart'; + +Client client = Client() + .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint + .setProject('') // Your project ID + .setKey(''); // Your secret API key + +Health health = Health(client); + +HealthStatus result = await health.getGeoPremium(); +``` diff --git a/examples/1.9.x/server-dart/examples/health/get-geo.md b/examples/1.9.x/server-dart/examples/health/get-geo.md new file mode 100644 index 000000000..74ee6f674 --- /dev/null +++ b/examples/1.9.x/server-dart/examples/health/get-geo.md @@ -0,0 +1,12 @@ +```dart +import 'package:dart_appwrite/dart_appwrite.dart'; + +Client client = Client() + .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint + .setProject('') // Your project ID + .setKey(''); // Your secret API key + +Health health = Health(client); + +HealthStatus result = await health.getGeo(); +``` diff --git a/examples/1.9.x/server-dart/examples/health/get-queue-notifications.md b/examples/1.9.x/server-dart/examples/health/get-queue-notifications.md new file mode 100644 index 000000000..2e296b0fa --- /dev/null +++ b/examples/1.9.x/server-dart/examples/health/get-queue-notifications.md @@ -0,0 +1,14 @@ +```dart +import 'package:dart_appwrite/dart_appwrite.dart'; + +Client client = Client() + .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint + .setProject('') // Your project ID + .setKey(''); // Your secret API key + +Health health = Health(client); + +HealthQueue result = await health.getQueueNotifications( + threshold: 0, // (optional) +); +``` diff --git a/examples/1.9.x/server-dart/examples/organization/create-membership.md b/examples/1.9.x/server-dart/examples/organization/create-membership.md new file mode 100644 index 000000000..6c037bfbf --- /dev/null +++ b/examples/1.9.x/server-dart/examples/organization/create-membership.md @@ -0,0 +1,19 @@ +```dart +import 'package:dart_appwrite/dart_appwrite.dart'; + +Client client = Client() + .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint + .setProject('') // Your project ID + .setKey(''); // Your secret API key + +Organization organization = Organization(client); + +Membership result = await organization.createMembership( + roles: [], + email: 'email@example.com', // (optional) + userId: '', // (optional) + phone: '+12065550100', // (optional) + url: 'https://example.com', // (optional) + name: '', // (optional) +); +``` diff --git a/examples/1.9.x/server-dart/examples/organization/delete-membership.md b/examples/1.9.x/server-dart/examples/organization/delete-membership.md new file mode 100644 index 000000000..539cf8056 --- /dev/null +++ b/examples/1.9.x/server-dart/examples/organization/delete-membership.md @@ -0,0 +1,14 @@ +```dart +import 'package:dart_appwrite/dart_appwrite.dart'; + +Client client = Client() + .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint + .setProject('') // Your project ID + .setKey(''); // Your secret API key + +Organization organization = Organization(client); + +await organization.deleteMembership( + membershipId: '', +); +``` diff --git a/examples/1.9.x/server-dart/examples/organization/delete.md b/examples/1.9.x/server-dart/examples/organization/delete.md new file mode 100644 index 000000000..97aef2b19 --- /dev/null +++ b/examples/1.9.x/server-dart/examples/organization/delete.md @@ -0,0 +1,12 @@ +```dart +import 'package:dart_appwrite/dart_appwrite.dart'; + +Client client = Client() + .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint + .setProject('') // Your project ID + .setKey(''); // Your secret API key + +Organization organization = Organization(client); + +await organization.delete(); +``` diff --git a/examples/1.9.x/server-dart/examples/organization/get-membership.md b/examples/1.9.x/server-dart/examples/organization/get-membership.md new file mode 100644 index 000000000..6bcaae3b4 --- /dev/null +++ b/examples/1.9.x/server-dart/examples/organization/get-membership.md @@ -0,0 +1,14 @@ +```dart +import 'package:dart_appwrite/dart_appwrite.dart'; + +Client client = Client() + .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint + .setProject('') // Your project ID + .setKey(''); // Your secret API key + +Organization organization = Organization(client); + +Membership result = await organization.getMembership( + membershipId: '', +); +``` diff --git a/examples/1.9.x/server-dart/examples/organization/get.md b/examples/1.9.x/server-dart/examples/organization/get.md new file mode 100644 index 000000000..d6b96003f --- /dev/null +++ b/examples/1.9.x/server-dart/examples/organization/get.md @@ -0,0 +1,12 @@ +```dart +import 'package:dart_appwrite/dart_appwrite.dart'; + +Client client = Client() + .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint + .setProject('') // Your project ID + .setKey(''); // Your secret API key + +Organization organization = Organization(client); + +Organization result = await organization.get(); +``` diff --git a/examples/1.9.x/server-dart/examples/organization/list-memberships.md b/examples/1.9.x/server-dart/examples/organization/list-memberships.md new file mode 100644 index 000000000..a3c8812e9 --- /dev/null +++ b/examples/1.9.x/server-dart/examples/organization/list-memberships.md @@ -0,0 +1,16 @@ +```dart +import 'package:dart_appwrite/dart_appwrite.dart'; + +Client client = Client() + .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint + .setProject('') // Your project ID + .setKey(''); // Your secret API key + +Organization organization = Organization(client); + +MembershipList result = await organization.listMemberships( + queries: [], // (optional) + search: '', // (optional) + total: false, // (optional) +); +``` diff --git a/examples/1.9.x/server-dart/examples/organization/update-membership.md b/examples/1.9.x/server-dart/examples/organization/update-membership.md new file mode 100644 index 000000000..ad9bccffe --- /dev/null +++ b/examples/1.9.x/server-dart/examples/organization/update-membership.md @@ -0,0 +1,15 @@ +```dart +import 'package:dart_appwrite/dart_appwrite.dart'; + +Client client = Client() + .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint + .setProject('') // Your project ID + .setKey(''); // Your secret API key + +Organization organization = Organization(client); + +Membership result = await organization.updateMembership( + membershipId: '', + roles: [], +); +``` diff --git a/examples/1.9.x/server-dart/examples/organization/update.md b/examples/1.9.x/server-dart/examples/organization/update.md new file mode 100644 index 000000000..25aa1eedf --- /dev/null +++ b/examples/1.9.x/server-dart/examples/organization/update.md @@ -0,0 +1,14 @@ +```dart +import 'package:dart_appwrite/dart_appwrite.dart'; + +Client client = Client() + .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint + .setProject('') // Your project ID + .setKey(''); // Your secret API key + +Organization organization = Organization(client); + +Organization result = await organization.update( + name: '', +); +``` diff --git a/examples/1.9.x/server-dart/examples/project/update-o-auth-2-appwrite.md b/examples/1.9.x/server-dart/examples/project/update-o-auth-2-appwrite.md new file mode 100644 index 000000000..54187ae55 --- /dev/null +++ b/examples/1.9.x/server-dart/examples/project/update-o-auth-2-appwrite.md @@ -0,0 +1,16 @@ +```dart +import 'package:dart_appwrite/dart_appwrite.dart'; + +Client client = Client() + .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint + .setProject('') // Your project ID + .setKey(''); // Your secret API key + +Project project = Project(client); + +OAuth2Appwrite result = await project.updateOAuth2Appwrite( + clientId: '', // (optional) + clientSecret: '', // (optional) + enabled: false, // (optional) +); +``` diff --git a/examples/1.9.x/server-dart/examples/project/update-o-auth-2-oidc.md b/examples/1.9.x/server-dart/examples/project/update-o-auth-2-oidc.md index 4784bf46b..d2dc2d9da 100644 --- a/examples/1.9.x/server-dart/examples/project/update-o-auth-2-oidc.md +++ b/examples/1.9.x/server-dart/examples/project/update-o-auth-2-oidc.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://.cloud.appwrite.io/v1') // Your API Endpoint @@ -15,6 +16,8 @@ OAuth2Oidc result = await project.updateOAuth2Oidc( authorizationURL: 'https://example.com', // (optional) tokenURL: 'https://example.com', // (optional) userInfoURL: 'https://example.com', // (optional) + prompt: [enums.ProjectOAuth2OidcPrompt.none], // (optional) + maxAge: 0, // (optional) enabled: false, // (optional) ); ``` diff --git a/examples/1.9.x/server-dart/examples/project/update-o-auth-2-server.md b/examples/1.9.x/server-dart/examples/project/update-o-auth-2-server.md index 3bf5a9590..522517ffc 100644 --- a/examples/1.9.x/server-dart/examples/project/update-o-auth-2-server.md +++ b/examples/1.9.x/server-dart/examples/project/update-o-auth-2-server.md @@ -22,5 +22,6 @@ Project result = await project.updateOAuth2Server( userCodeLength: 6, // (optional) userCodeFormat: 'numeric', // (optional) deviceCodeDuration: 60, // (optional) + defaultScopes: [], // (optional) ); ``` diff --git a/examples/1.9.x/server-dart/examples/sites/get-deployment-download.md b/examples/1.9.x/server-dart/examples/sites/get-deployment-download.md index b9e4baa1d..412817491 100644 --- a/examples/1.9.x/server-dart/examples/sites/get-deployment-download.md +++ b/examples/1.9.x/server-dart/examples/sites/get-deployment-download.md @@ -13,5 +13,6 @@ Uint8List result = await sites.getDeploymentDownload( siteId: '', deploymentId: '', type: enums.DeploymentDownloadType.source, // (optional) + token: '', // (optional) ); ``` diff --git a/examples/1.9.x/server-dart/examples/tablesdb/create-failover.md b/examples/1.9.x/server-dart/examples/tablesdb/create-failover.md new file mode 100644 index 000000000..29919921f --- /dev/null +++ b/examples/1.9.x/server-dart/examples/tablesdb/create-failover.md @@ -0,0 +1,15 @@ +```dart +import 'package:dart_appwrite/dart_appwrite.dart'; + +Client client = Client() + .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint + .setProject('') // Your project ID + .setKey(''); // Your secret API key + +TablesDB tablesDB = TablesDB(client); + +DedicatedDatabase result = await tablesDB.createFailover( + databaseId: '', + targetReplicaId: '', // (optional) +); +``` diff --git a/examples/1.9.x/server-dart/examples/tablesdb/create.md b/examples/1.9.x/server-dart/examples/tablesdb/create.md index 38accc2f5..939a3f99d 100644 --- a/examples/1.9.x/server-dart/examples/tablesdb/create.md +++ b/examples/1.9.x/server-dart/examples/tablesdb/create.md @@ -12,6 +12,7 @@ Database result = await tablesDB.create( databaseId: '', name: '', enabled: false, // (optional) - dedicatedDatabaseId: '', // (optional) + specification: 'serverless', // (optional) + replicas: 0, // (optional) ); ``` diff --git a/examples/1.9.x/server-dart/examples/tablesdb/get-replicas.md b/examples/1.9.x/server-dart/examples/tablesdb/get-replicas.md new file mode 100644 index 000000000..e3dbc4b6c --- /dev/null +++ b/examples/1.9.x/server-dart/examples/tablesdb/get-replicas.md @@ -0,0 +1,14 @@ +```dart +import 'package:dart_appwrite/dart_appwrite.dart'; + +Client client = Client() + .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint + .setProject('') // Your project ID + .setKey(''); // Your secret API key + +TablesDB tablesDB = TablesDB(client); + +DedicatedDatabaseReplicas result = await tablesDB.getReplicas( + databaseId: '', +); +``` diff --git a/examples/1.9.x/server-dart/examples/tablesdb/get-status.md b/examples/1.9.x/server-dart/examples/tablesdb/get-status.md new file mode 100644 index 000000000..faa67bf53 --- /dev/null +++ b/examples/1.9.x/server-dart/examples/tablesdb/get-status.md @@ -0,0 +1,14 @@ +```dart +import 'package:dart_appwrite/dart_appwrite.dart'; + +Client client = Client() + .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint + .setProject('') // Your project ID + .setKey(''); // Your secret API key + +TablesDB tablesDB = TablesDB(client); + +DatabaseStatus result = await tablesDB.getStatus( + databaseId: '', +); +``` diff --git a/examples/1.9.x/server-dart/examples/tablesdb/list-specifications.md b/examples/1.9.x/server-dart/examples/tablesdb/list-specifications.md new file mode 100644 index 000000000..55b70e8cc --- /dev/null +++ b/examples/1.9.x/server-dart/examples/tablesdb/list-specifications.md @@ -0,0 +1,12 @@ +```dart +import 'package:dart_appwrite/dart_appwrite.dart'; + +Client client = Client() + .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint + .setProject('') // Your project ID + .setKey(''); // Your secret API key + +TablesDB tablesDB = TablesDB(client); + +DedicatedDatabaseSpecificationList result = await tablesDB.listSpecifications(); +``` diff --git a/examples/1.9.x/server-dart/examples/tablesdb/update.md b/examples/1.9.x/server-dart/examples/tablesdb/update.md index ad85b595f..cbe9908d5 100644 --- a/examples/1.9.x/server-dart/examples/tablesdb/update.md +++ b/examples/1.9.x/server-dart/examples/tablesdb/update.md @@ -12,5 +12,6 @@ Database result = await tablesDB.update( databaseId: '', name: '', // (optional) enabled: false, // (optional) + replicas: 0, // (optional) ); ``` diff --git a/examples/1.9.x/server-dart/examples/usage/list-events.md b/examples/1.9.x/server-dart/examples/usage/list-events.md index 95c703fd9..398f62bda 100644 --- a/examples/1.9.x/server-dart/examples/usage/list-events.md +++ b/examples/1.9.x/server-dart/examples/usage/list-events.md @@ -10,8 +10,7 @@ Usage usage = Usage(client); UsageEventList result = await usage.listEvents( metrics: [], - resource: '', // (optional) - resourceId: '', // (optional) + queries: [], // (optional) interval: '1m', // (optional) dimensions: [], // (optional) startAt: '2020-10-15T06:38:00.000+00:00', // (optional) diff --git a/examples/1.9.x/server-dart/examples/usage/list-gauges.md b/examples/1.9.x/server-dart/examples/usage/list-gauges.md index 06dd74b34..b2219ca81 100644 --- a/examples/1.9.x/server-dart/examples/usage/list-gauges.md +++ b/examples/1.9.x/server-dart/examples/usage/list-gauges.md @@ -10,8 +10,7 @@ Usage usage = Usage(client); UsageGaugeList result = await usage.listGauges( metrics: [], - resourceId: '', // (optional) - teamId: '', // (optional) + queries: [], // (optional) interval: '1m', // (optional) dimensions: [], // (optional) startAt: '2020-10-15T06:38:00.000+00:00', // (optional) diff --git a/examples/1.9.x/server-dotnet/examples/account/delete-consent-token.md b/examples/1.9.x/server-dotnet/examples/account/delete-consent-token.md new file mode 100644 index 000000000..a99b4f300 --- /dev/null +++ b/examples/1.9.x/server-dotnet/examples/account/delete-consent-token.md @@ -0,0 +1,16 @@ +```csharp +using Appwrite; +using Appwrite.Models; +using Appwrite.Services; + +Client client = new Client() + .SetEndPoint("https://.cloud.appwrite.io/v1") // Your API Endpoint + .SetProject("") // Your project ID + .SetSession(""); // The user session to authenticate with + +Account account = new Account(client); + +await account.DeleteConsentToken( + consentId: "", + tokenId: "" +);``` diff --git a/examples/1.9.x/server-dotnet/examples/account/delete-consent.md b/examples/1.9.x/server-dotnet/examples/account/delete-consent.md new file mode 100644 index 000000000..9b053f709 --- /dev/null +++ b/examples/1.9.x/server-dotnet/examples/account/delete-consent.md @@ -0,0 +1,15 @@ +```csharp +using Appwrite; +using Appwrite.Models; +using Appwrite.Services; + +Client client = new Client() + .SetEndPoint("https://.cloud.appwrite.io/v1") // Your API Endpoint + .SetProject("") // Your project ID + .SetSession(""); // The user session to authenticate with + +Account account = new Account(client); + +await account.DeleteConsent( + consentId: "" +);``` diff --git a/examples/1.9.x/server-dotnet/examples/account/get-consent-token.md b/examples/1.9.x/server-dotnet/examples/account/get-consent-token.md new file mode 100644 index 000000000..2cb00b16c --- /dev/null +++ b/examples/1.9.x/server-dotnet/examples/account/get-consent-token.md @@ -0,0 +1,16 @@ +```csharp +using Appwrite; +using Appwrite.Models; +using Appwrite.Services; + +Client client = new Client() + .SetEndPoint("https://.cloud.appwrite.io/v1") // Your API Endpoint + .SetProject("") // Your project ID + .SetSession(""); // The user session to authenticate with + +Account account = new Account(client); + +Oauth2ConsentToken result = await account.GetConsentToken( + consentId: "", + tokenId: "" +);``` diff --git a/examples/1.9.x/server-dotnet/examples/account/get-consent.md b/examples/1.9.x/server-dotnet/examples/account/get-consent.md new file mode 100644 index 000000000..cb364047f --- /dev/null +++ b/examples/1.9.x/server-dotnet/examples/account/get-consent.md @@ -0,0 +1,15 @@ +```csharp +using Appwrite; +using Appwrite.Models; +using Appwrite.Services; + +Client client = new Client() + .SetEndPoint("https://.cloud.appwrite.io/v1") // Your API Endpoint + .SetProject("") // Your project ID + .SetSession(""); // The user session to authenticate with + +Account account = new Account(client); + +Oauth2Consent result = await account.GetConsent( + consentId: "" +);``` diff --git a/examples/1.9.x/server-dotnet/examples/account/list-consent-tokens.md b/examples/1.9.x/server-dotnet/examples/account/list-consent-tokens.md new file mode 100644 index 000000000..451b8f217 --- /dev/null +++ b/examples/1.9.x/server-dotnet/examples/account/list-consent-tokens.md @@ -0,0 +1,17 @@ +```csharp +using Appwrite; +using Appwrite.Models; +using Appwrite.Services; + +Client client = new Client() + .SetEndPoint("https://.cloud.appwrite.io/v1") // Your API Endpoint + .SetProject("") // Your project ID + .SetSession(""); // The user session to authenticate with + +Account account = new Account(client); + +Oauth2ConsentTokenList result = await account.ListConsentTokens( + consentId: "", + queries: new List(), // optional + total: false // optional +);``` diff --git a/examples/1.9.x/server-dotnet/examples/account/list-consents.md b/examples/1.9.x/server-dotnet/examples/account/list-consents.md new file mode 100644 index 000000000..b9ebfcef6 --- /dev/null +++ b/examples/1.9.x/server-dotnet/examples/account/list-consents.md @@ -0,0 +1,16 @@ +```csharp +using Appwrite; +using Appwrite.Models; +using Appwrite.Services; + +Client client = new Client() + .SetEndPoint("https://.cloud.appwrite.io/v1") // Your API Endpoint + .SetProject("") // Your project ID + .SetSession(""); // The user session to authenticate with + +Account account = new Account(client); + +Oauth2ConsentList result = await account.ListConsents( + queries: new List(), // optional + total: false // optional +);``` diff --git a/examples/1.9.x/server-dotnet/examples/functions/get-deployment-download.md b/examples/1.9.x/server-dotnet/examples/functions/get-deployment-download.md index d78d52a71..64cff1aca 100644 --- a/examples/1.9.x/server-dotnet/examples/functions/get-deployment-download.md +++ b/examples/1.9.x/server-dotnet/examples/functions/get-deployment-download.md @@ -14,5 +14,6 @@ Functions functions = new Functions(client); byte[] result = await functions.GetDeploymentDownload( functionId: "", deploymentId: "", - type: DeploymentDownloadType.Source // optional + type: DeploymentDownloadType.Source, // optional + token: "" // optional );``` diff --git a/examples/1.9.x/server-dotnet/examples/health/get-geo-premium.md b/examples/1.9.x/server-dotnet/examples/health/get-geo-premium.md new file mode 100644 index 000000000..3a7f004f7 --- /dev/null +++ b/examples/1.9.x/server-dotnet/examples/health/get-geo-premium.md @@ -0,0 +1,14 @@ +```csharp +using Appwrite; +using Appwrite.Models; +using Appwrite.Services; + +Client client = new Client() + .SetEndPoint("https://.cloud.appwrite.io/v1") // Your API Endpoint + .SetProject("") // Your project ID + .SetKey(""); // Your secret API key + +Health health = new Health(client); + +HealthStatus result = await health.GetGeoPremium(); +``` diff --git a/examples/1.9.x/server-dotnet/examples/health/get-geo.md b/examples/1.9.x/server-dotnet/examples/health/get-geo.md new file mode 100644 index 000000000..378a055b2 --- /dev/null +++ b/examples/1.9.x/server-dotnet/examples/health/get-geo.md @@ -0,0 +1,14 @@ +```csharp +using Appwrite; +using Appwrite.Models; +using Appwrite.Services; + +Client client = new Client() + .SetEndPoint("https://.cloud.appwrite.io/v1") // Your API Endpoint + .SetProject("") // Your project ID + .SetKey(""); // Your secret API key + +Health health = new Health(client); + +HealthStatus result = await health.GetGeo(); +``` diff --git a/examples/1.9.x/server-dotnet/examples/health/get-queue-notifications.md b/examples/1.9.x/server-dotnet/examples/health/get-queue-notifications.md new file mode 100644 index 000000000..a513860c6 --- /dev/null +++ b/examples/1.9.x/server-dotnet/examples/health/get-queue-notifications.md @@ -0,0 +1,15 @@ +```csharp +using Appwrite; +using Appwrite.Models; +using Appwrite.Services; + +Client client = new Client() + .SetEndPoint("https://.cloud.appwrite.io/v1") // Your API Endpoint + .SetProject("") // Your project ID + .SetKey(""); // Your secret API key + +Health health = new Health(client); + +HealthQueue result = await health.GetQueueNotifications( + threshold: 0 // optional +);``` diff --git a/examples/1.9.x/server-dotnet/examples/organization/create-membership.md b/examples/1.9.x/server-dotnet/examples/organization/create-membership.md new file mode 100644 index 000000000..07f723aa4 --- /dev/null +++ b/examples/1.9.x/server-dotnet/examples/organization/create-membership.md @@ -0,0 +1,20 @@ +```csharp +using Appwrite; +using Appwrite.Models; +using Appwrite.Services; + +Client client = new Client() + .SetEndPoint("https://.cloud.appwrite.io/v1") // Your API Endpoint + .SetProject("") // Your project ID + .SetKey(""); // Your secret API key + +Organization organization = new Organization(client); + +Membership result = await organization.CreateMembership( + roles: new List(), + email: "email@example.com", // optional + userId: "", // optional + phone: "+12065550100", // optional + url: "https://example.com", // optional + name: "" // optional +);``` diff --git a/examples/1.9.x/server-dotnet/examples/organization/delete-membership.md b/examples/1.9.x/server-dotnet/examples/organization/delete-membership.md new file mode 100644 index 000000000..0c3b257fd --- /dev/null +++ b/examples/1.9.x/server-dotnet/examples/organization/delete-membership.md @@ -0,0 +1,15 @@ +```csharp +using Appwrite; +using Appwrite.Models; +using Appwrite.Services; + +Client client = new Client() + .SetEndPoint("https://.cloud.appwrite.io/v1") // Your API Endpoint + .SetProject("") // Your project ID + .SetKey(""); // Your secret API key + +Organization organization = new Organization(client); + +await organization.DeleteMembership( + membershipId: "" +);``` diff --git a/examples/1.9.x/server-dotnet/examples/organization/delete.md b/examples/1.9.x/server-dotnet/examples/organization/delete.md new file mode 100644 index 000000000..702750fe6 --- /dev/null +++ b/examples/1.9.x/server-dotnet/examples/organization/delete.md @@ -0,0 +1,14 @@ +```csharp +using Appwrite; +using Appwrite.Models; +using Appwrite.Services; + +Client client = new Client() + .SetEndPoint("https://.cloud.appwrite.io/v1") // Your API Endpoint + .SetProject("") // Your project ID + .SetKey(""); // Your secret API key + +Organization organization = new Organization(client); + +await organization.Delete(); +``` diff --git a/examples/1.9.x/server-dotnet/examples/organization/get-membership.md b/examples/1.9.x/server-dotnet/examples/organization/get-membership.md new file mode 100644 index 000000000..60426303d --- /dev/null +++ b/examples/1.9.x/server-dotnet/examples/organization/get-membership.md @@ -0,0 +1,15 @@ +```csharp +using Appwrite; +using Appwrite.Models; +using Appwrite.Services; + +Client client = new Client() + .SetEndPoint("https://.cloud.appwrite.io/v1") // Your API Endpoint + .SetProject("") // Your project ID + .SetKey(""); // Your secret API key + +Organization organization = new Organization(client); + +Membership result = await organization.GetMembership( + membershipId: "" +);``` diff --git a/examples/1.9.x/server-dotnet/examples/organization/get.md b/examples/1.9.x/server-dotnet/examples/organization/get.md new file mode 100644 index 000000000..ab20af7d1 --- /dev/null +++ b/examples/1.9.x/server-dotnet/examples/organization/get.md @@ -0,0 +1,14 @@ +```csharp +using Appwrite; +using Appwrite.Models; +using Appwrite.Services; + +Client client = new Client() + .SetEndPoint("https://.cloud.appwrite.io/v1") // Your API Endpoint + .SetProject("") // Your project ID + .SetKey(""); // Your secret API key + +Organization organization = new Organization(client); + +Organization result = await organization.Get(); +``` diff --git a/examples/1.9.x/server-dotnet/examples/organization/list-memberships.md b/examples/1.9.x/server-dotnet/examples/organization/list-memberships.md new file mode 100644 index 000000000..00a7c7363 --- /dev/null +++ b/examples/1.9.x/server-dotnet/examples/organization/list-memberships.md @@ -0,0 +1,17 @@ +```csharp +using Appwrite; +using Appwrite.Models; +using Appwrite.Services; + +Client client = new Client() + .SetEndPoint("https://.cloud.appwrite.io/v1") // Your API Endpoint + .SetProject("") // Your project ID + .SetKey(""); // Your secret API key + +Organization organization = new Organization(client); + +MembershipList result = await organization.ListMemberships( + queries: new List(), // optional + search: "", // optional + total: false // optional +);``` diff --git a/examples/1.9.x/server-dotnet/examples/organization/update-membership.md b/examples/1.9.x/server-dotnet/examples/organization/update-membership.md new file mode 100644 index 000000000..de696dc55 --- /dev/null +++ b/examples/1.9.x/server-dotnet/examples/organization/update-membership.md @@ -0,0 +1,16 @@ +```csharp +using Appwrite; +using Appwrite.Models; +using Appwrite.Services; + +Client client = new Client() + .SetEndPoint("https://.cloud.appwrite.io/v1") // Your API Endpoint + .SetProject("") // Your project ID + .SetKey(""); // Your secret API key + +Organization organization = new Organization(client); + +Membership result = await organization.UpdateMembership( + membershipId: "", + roles: new List() +);``` diff --git a/examples/1.9.x/server-dotnet/examples/organization/update.md b/examples/1.9.x/server-dotnet/examples/organization/update.md new file mode 100644 index 000000000..2db709e56 --- /dev/null +++ b/examples/1.9.x/server-dotnet/examples/organization/update.md @@ -0,0 +1,15 @@ +```csharp +using Appwrite; +using Appwrite.Models; +using Appwrite.Services; + +Client client = new Client() + .SetEndPoint("https://.cloud.appwrite.io/v1") // Your API Endpoint + .SetProject("") // Your project ID + .SetKey(""); // Your secret API key + +Organization organization = new Organization(client); + +Organization result = await organization.Update( + name: "" +);``` diff --git a/examples/1.9.x/server-dotnet/examples/project/update-o-auth-2-appwrite.md b/examples/1.9.x/server-dotnet/examples/project/update-o-auth-2-appwrite.md new file mode 100644 index 000000000..45aec1c8d --- /dev/null +++ b/examples/1.9.x/server-dotnet/examples/project/update-o-auth-2-appwrite.md @@ -0,0 +1,17 @@ +```csharp +using Appwrite; +using Appwrite.Models; +using Appwrite.Services; + +Client client = new Client() + .SetEndPoint("https://.cloud.appwrite.io/v1") // Your API Endpoint + .SetProject("") // Your project ID + .SetKey(""); // Your secret API key + +Project project = new Project(client); + +OAuth2Appwrite result = await project.UpdateOAuth2Appwrite( + clientId: "", // optional + clientSecret: "", // optional + enabled: false // optional +);``` diff --git a/examples/1.9.x/server-dotnet/examples/project/update-o-auth-2-oidc.md b/examples/1.9.x/server-dotnet/examples/project/update-o-auth-2-oidc.md index 9c86e7d51..fee55e759 100644 --- a/examples/1.9.x/server-dotnet/examples/project/update-o-auth-2-oidc.md +++ b/examples/1.9.x/server-dotnet/examples/project/update-o-auth-2-oidc.md @@ -1,5 +1,6 @@ ```csharp using Appwrite; +using Appwrite.Enums; using Appwrite.Models; using Appwrite.Services; @@ -17,5 +18,7 @@ OAuth2Oidc result = await project.UpdateOAuth2Oidc( authorizationURL: "https://example.com", // optional tokenURL: "https://example.com", // optional userInfoURL: "https://example.com", // optional + prompt: new List<ProjectOAuth2OidcPrompt> { ProjectOAuth2OidcPrompt.None }, // optional + maxAge: 0, // optional enabled: false // optional );``` diff --git a/examples/1.9.x/server-dotnet/examples/project/update-o-auth-2-server.md b/examples/1.9.x/server-dotnet/examples/project/update-o-auth-2-server.md index 585b0fea5..a43abfd30 100644 --- a/examples/1.9.x/server-dotnet/examples/project/update-o-auth-2-server.md +++ b/examples/1.9.x/server-dotnet/examples/project/update-o-auth-2-server.md @@ -23,5 +23,6 @@ Project result = await project.UpdateOAuth2Server( verificationUrl: "https://example.com", // optional userCodeLength: 6, // optional userCodeFormat: "numeric", // optional - deviceCodeDuration: 60 // optional + deviceCodeDuration: 60, // optional + defaultScopes: new List() // optional );``` diff --git a/examples/1.9.x/server-dotnet/examples/sites/get-deployment-download.md b/examples/1.9.x/server-dotnet/examples/sites/get-deployment-download.md index 25bc376b4..457f1532f 100644 --- a/examples/1.9.x/server-dotnet/examples/sites/get-deployment-download.md +++ b/examples/1.9.x/server-dotnet/examples/sites/get-deployment-download.md @@ -14,5 +14,6 @@ Sites sites = new Sites(client); byte[] result = await sites.GetDeploymentDownload( siteId: "", deploymentId: "", - type: DeploymentDownloadType.Source // optional + type: DeploymentDownloadType.Source, // optional + token: "" // optional );``` diff --git a/examples/1.9.x/server-dotnet/examples/tablesdb/create-failover.md b/examples/1.9.x/server-dotnet/examples/tablesdb/create-failover.md new file mode 100644 index 000000000..897e9df91 --- /dev/null +++ b/examples/1.9.x/server-dotnet/examples/tablesdb/create-failover.md @@ -0,0 +1,16 @@ +```csharp +using Appwrite; +using Appwrite.Models; +using Appwrite.Services; + +Client client = new Client() + .SetEndPoint("https://.cloud.appwrite.io/v1") // Your API Endpoint + .SetProject("") // Your project ID + .SetKey(""); // Your secret API key + +TablesDB tablesDB = new TablesDB(client); + +DedicatedDatabase result = await tablesDB.CreateFailover( + databaseId: "", + targetReplicaId: "" // optional +);``` diff --git a/examples/1.9.x/server-dotnet/examples/tablesdb/create.md b/examples/1.9.x/server-dotnet/examples/tablesdb/create.md index 07fe6cf5b..a5a42f361 100644 --- a/examples/1.9.x/server-dotnet/examples/tablesdb/create.md +++ b/examples/1.9.x/server-dotnet/examples/tablesdb/create.md @@ -14,5 +14,6 @@ Database result = await tablesDB.Create( databaseId: "", name: "", enabled: false, // optional - dedicatedDatabaseId: "" // optional + specification: "serverless", // optional + replicas: 0 // optional );``` diff --git a/examples/1.9.x/server-dotnet/examples/tablesdb/get-replicas.md b/examples/1.9.x/server-dotnet/examples/tablesdb/get-replicas.md new file mode 100644 index 000000000..1001b30e3 --- /dev/null +++ b/examples/1.9.x/server-dotnet/examples/tablesdb/get-replicas.md @@ -0,0 +1,15 @@ +```csharp +using Appwrite; +using Appwrite.Models; +using Appwrite.Services; + +Client client = new Client() + .SetEndPoint("https://.cloud.appwrite.io/v1") // Your API Endpoint + .SetProject("") // Your project ID + .SetKey(""); // Your secret API key + +TablesDB tablesDB = new TablesDB(client); + +DedicatedDatabaseReplicas result = await tablesDB.GetReplicas( + databaseId: "" +);``` diff --git a/examples/1.9.x/server-dotnet/examples/tablesdb/get-status.md b/examples/1.9.x/server-dotnet/examples/tablesdb/get-status.md new file mode 100644 index 000000000..739178867 --- /dev/null +++ b/examples/1.9.x/server-dotnet/examples/tablesdb/get-status.md @@ -0,0 +1,15 @@ +```csharp +using Appwrite; +using Appwrite.Models; +using Appwrite.Services; + +Client client = new Client() + .SetEndPoint("https://.cloud.appwrite.io/v1") // Your API Endpoint + .SetProject("") // Your project ID + .SetKey(""); // Your secret API key + +TablesDB tablesDB = new TablesDB(client); + +DatabaseStatus result = await tablesDB.GetStatus( + databaseId: "" +);``` diff --git a/examples/1.9.x/server-dotnet/examples/tablesdb/list-specifications.md b/examples/1.9.x/server-dotnet/examples/tablesdb/list-specifications.md new file mode 100644 index 000000000..4672e263a --- /dev/null +++ b/examples/1.9.x/server-dotnet/examples/tablesdb/list-specifications.md @@ -0,0 +1,14 @@ +```csharp +using Appwrite; +using Appwrite.Models; +using Appwrite.Services; + +Client client = new Client() + .SetEndPoint("https://.cloud.appwrite.io/v1") // Your API Endpoint + .SetProject("") // Your project ID + .SetKey(""); // Your secret API key + +TablesDB tablesDB = new TablesDB(client); + +DedicatedDatabaseSpecificationList result = await tablesDB.ListSpecifications(); +``` diff --git a/examples/1.9.x/server-dotnet/examples/tablesdb/update.md b/examples/1.9.x/server-dotnet/examples/tablesdb/update.md index e03329dde..ebd66beca 100644 --- a/examples/1.9.x/server-dotnet/examples/tablesdb/update.md +++ b/examples/1.9.x/server-dotnet/examples/tablesdb/update.md @@ -13,5 +13,6 @@ TablesDB tablesDB = new TablesDB(client); Database result = await tablesDB.Update( databaseId: "", name: "", // optional - enabled: false // optional + enabled: false, // optional + replicas: 0 // optional );``` diff --git a/examples/1.9.x/server-dotnet/examples/usage/list-events.md b/examples/1.9.x/server-dotnet/examples/usage/list-events.md index 1a5206499..6eafa535e 100644 --- a/examples/1.9.x/server-dotnet/examples/usage/list-events.md +++ b/examples/1.9.x/server-dotnet/examples/usage/list-events.md @@ -12,8 +12,7 @@ Usage usage = new Usage(client); UsageEventList result = await usage.ListEvents( metrics: new List(), - resource: "", // optional - resourceId: "", // optional + queries: new List(), // optional interval: "1m", // optional dimensions: new List(), // optional startAt: "2020-10-15T06:38:00.000+00:00", // optional diff --git a/examples/1.9.x/server-dotnet/examples/usage/list-gauges.md b/examples/1.9.x/server-dotnet/examples/usage/list-gauges.md index 2c8d5dbf6..016345773 100644 --- a/examples/1.9.x/server-dotnet/examples/usage/list-gauges.md +++ b/examples/1.9.x/server-dotnet/examples/usage/list-gauges.md @@ -12,8 +12,7 @@ Usage usage = new Usage(client); UsageGaugeList result = await usage.ListGauges( metrics: new List(), - resourceId: "", // optional - teamId: "", // optional + queries: new List(), // optional interval: "1m", // optional dimensions: new List(), // optional startAt: "2020-10-15T06:38:00.000+00:00", // optional diff --git a/examples/1.9.x/server-go/examples/account/create-anonymous-session.md b/examples/1.9.x/server-go/examples/account/create-anonymous-session.md index 1b609e109..ea6ffda3f 100644 --- a/examples/1.9.x/server-go/examples/account/create-anonymous-session.md +++ b/examples/1.9.x/server-go/examples/account/create-anonymous-session.md @@ -3,8 +3,8 @@ package main import ( "fmt" - "github.com/appwrite/sdk-for-go/v5/client" - "github.com/appwrite/sdk-for-go/v5/account" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/account" ) client := client.New( diff --git a/examples/1.9.x/server-go/examples/account/create-email-password-session.md b/examples/1.9.x/server-go/examples/account/create-email-password-session.md index 7ed0f12a6..66baff062 100644 --- a/examples/1.9.x/server-go/examples/account/create-email-password-session.md +++ b/examples/1.9.x/server-go/examples/account/create-email-password-session.md @@ -3,8 +3,8 @@ package main import ( "fmt" - "github.com/appwrite/sdk-for-go/v5/client" - "github.com/appwrite/sdk-for-go/v5/account" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/account" ) client := client.New( diff --git a/examples/1.9.x/server-go/examples/account/create-email-token.md b/examples/1.9.x/server-go/examples/account/create-email-token.md index cc386bb0a..3cf3bcd50 100644 --- a/examples/1.9.x/server-go/examples/account/create-email-token.md +++ b/examples/1.9.x/server-go/examples/account/create-email-token.md @@ -3,8 +3,8 @@ package main import ( "fmt" - "github.com/appwrite/sdk-for-go/v5/client" - "github.com/appwrite/sdk-for-go/v5/account" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/account" ) client := client.New( diff --git a/examples/1.9.x/server-go/examples/account/create-email-verification.md b/examples/1.9.x/server-go/examples/account/create-email-verification.md index bb8be8192..2d2860ce7 100644 --- a/examples/1.9.x/server-go/examples/account/create-email-verification.md +++ b/examples/1.9.x/server-go/examples/account/create-email-verification.md @@ -3,8 +3,8 @@ package main import ( "fmt" - "github.com/appwrite/sdk-for-go/v5/client" - "github.com/appwrite/sdk-for-go/v5/account" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/account" ) client := client.New( diff --git a/examples/1.9.x/server-go/examples/account/create-jwt.md b/examples/1.9.x/server-go/examples/account/create-jwt.md index 84243c361..1c0f8f51c 100644 --- a/examples/1.9.x/server-go/examples/account/create-jwt.md +++ b/examples/1.9.x/server-go/examples/account/create-jwt.md @@ -3,8 +3,8 @@ package main import ( "fmt" - "github.com/appwrite/sdk-for-go/v5/client" - "github.com/appwrite/sdk-for-go/v5/account" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/account" ) client := client.New( diff --git a/examples/1.9.x/server-go/examples/account/create-magic-url-token.md b/examples/1.9.x/server-go/examples/account/create-magic-url-token.md index adedee466..d3371354b 100644 --- a/examples/1.9.x/server-go/examples/account/create-magic-url-token.md +++ b/examples/1.9.x/server-go/examples/account/create-magic-url-token.md @@ -3,8 +3,8 @@ package main import ( "fmt" - "github.com/appwrite/sdk-for-go/v5/client" - "github.com/appwrite/sdk-for-go/v5/account" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/account" ) client := client.New( diff --git a/examples/1.9.x/server-go/examples/account/create-mfa-authenticator.md b/examples/1.9.x/server-go/examples/account/create-mfa-authenticator.md index 6aacada80..a47b6af69 100644 --- a/examples/1.9.x/server-go/examples/account/create-mfa-authenticator.md +++ b/examples/1.9.x/server-go/examples/account/create-mfa-authenticator.md @@ -3,8 +3,8 @@ package main import ( "fmt" - "github.com/appwrite/sdk-for-go/v5/client" - "github.com/appwrite/sdk-for-go/v5/account" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/account" ) client := client.New( diff --git a/examples/1.9.x/server-go/examples/account/create-mfa-challenge.md b/examples/1.9.x/server-go/examples/account/create-mfa-challenge.md index 7803cf1fa..f497bb6e0 100644 --- a/examples/1.9.x/server-go/examples/account/create-mfa-challenge.md +++ b/examples/1.9.x/server-go/examples/account/create-mfa-challenge.md @@ -3,8 +3,8 @@ package main import ( "fmt" - "github.com/appwrite/sdk-for-go/v5/client" - "github.com/appwrite/sdk-for-go/v5/account" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/account" ) client := client.New( diff --git a/examples/1.9.x/server-go/examples/account/create-mfa-recovery-codes.md b/examples/1.9.x/server-go/examples/account/create-mfa-recovery-codes.md index 9fca3a63c..d1749c878 100644 --- a/examples/1.9.x/server-go/examples/account/create-mfa-recovery-codes.md +++ b/examples/1.9.x/server-go/examples/account/create-mfa-recovery-codes.md @@ -3,8 +3,8 @@ package main import ( "fmt" - "github.com/appwrite/sdk-for-go/v5/client" - "github.com/appwrite/sdk-for-go/v5/account" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/account" ) client := client.New( diff --git a/examples/1.9.x/server-go/examples/account/create-o-auth-2-token.md b/examples/1.9.x/server-go/examples/account/create-o-auth-2-token.md index 67be14e7e..eebfbc507 100644 --- a/examples/1.9.x/server-go/examples/account/create-o-auth-2-token.md +++ b/examples/1.9.x/server-go/examples/account/create-o-auth-2-token.md @@ -3,8 +3,8 @@ package main import ( "fmt" - "github.com/appwrite/sdk-for-go/v5/client" - "github.com/appwrite/sdk-for-go/v5/account" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/account" ) client := client.New( diff --git a/examples/1.9.x/server-go/examples/account/create-phone-token.md b/examples/1.9.x/server-go/examples/account/create-phone-token.md index 27a2df7bd..39c6c6b77 100644 --- a/examples/1.9.x/server-go/examples/account/create-phone-token.md +++ b/examples/1.9.x/server-go/examples/account/create-phone-token.md @@ -3,8 +3,8 @@ package main import ( "fmt" - "github.com/appwrite/sdk-for-go/v5/client" - "github.com/appwrite/sdk-for-go/v5/account" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/account" ) client := client.New( diff --git a/examples/1.9.x/server-go/examples/account/create-phone-verification.md b/examples/1.9.x/server-go/examples/account/create-phone-verification.md index 940aa2d75..6fa07c5fd 100644 --- a/examples/1.9.x/server-go/examples/account/create-phone-verification.md +++ b/examples/1.9.x/server-go/examples/account/create-phone-verification.md @@ -3,8 +3,8 @@ package main import ( "fmt" - "github.com/appwrite/sdk-for-go/v5/client" - "github.com/appwrite/sdk-for-go/v5/account" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/account" ) client := client.New( diff --git a/examples/1.9.x/server-go/examples/account/create-recovery.md b/examples/1.9.x/server-go/examples/account/create-recovery.md index a325cd325..6f9e83258 100644 --- a/examples/1.9.x/server-go/examples/account/create-recovery.md +++ b/examples/1.9.x/server-go/examples/account/create-recovery.md @@ -3,8 +3,8 @@ package main import ( "fmt" - "github.com/appwrite/sdk-for-go/v5/client" - "github.com/appwrite/sdk-for-go/v5/account" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/account" ) client := client.New( diff --git a/examples/1.9.x/server-go/examples/account/create-session.md b/examples/1.9.x/server-go/examples/account/create-session.md index 89000d934..31c9c5c75 100644 --- a/examples/1.9.x/server-go/examples/account/create-session.md +++ b/examples/1.9.x/server-go/examples/account/create-session.md @@ -3,8 +3,8 @@ package main import ( "fmt" - "github.com/appwrite/sdk-for-go/v5/client" - "github.com/appwrite/sdk-for-go/v5/account" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/account" ) client := client.New( diff --git a/examples/1.9.x/server-go/examples/account/create-verification.md b/examples/1.9.x/server-go/examples/account/create-verification.md index 56ec68954..3dba4a146 100644 --- a/examples/1.9.x/server-go/examples/account/create-verification.md +++ b/examples/1.9.x/server-go/examples/account/create-verification.md @@ -3,8 +3,8 @@ package main import ( "fmt" - "github.com/appwrite/sdk-for-go/v5/client" - "github.com/appwrite/sdk-for-go/v5/account" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/account" ) client := client.New( diff --git a/examples/1.9.x/server-go/examples/account/create.md b/examples/1.9.x/server-go/examples/account/create.md index 12b46a4b2..b1e768a98 100644 --- a/examples/1.9.x/server-go/examples/account/create.md +++ b/examples/1.9.x/server-go/examples/account/create.md @@ -3,8 +3,8 @@ package main import ( "fmt" - "github.com/appwrite/sdk-for-go/v5/client" - "github.com/appwrite/sdk-for-go/v5/account" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/account" ) client := client.New( diff --git a/examples/1.9.x/server-go/examples/account/delete-consent-token.md b/examples/1.9.x/server-go/examples/account/delete-consent-token.md new file mode 100644 index 000000000..fb4f1cfbe --- /dev/null +++ b/examples/1.9.x/server-go/examples/account/delete-consent-token.md @@ -0,0 +1,22 @@ +```go +package main + +import ( + "fmt" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/account" +) + +client := client.New( + client.WithEndpoint("https://.cloud.appwrite.io/v1") + client.WithProject("") + client.WithSession("") +) + +service := account.New(client) + +response, error := service.DeleteConsentToken( + "", + "", +) +``` diff --git a/examples/1.9.x/server-go/examples/account/delete-consent.md b/examples/1.9.x/server-go/examples/account/delete-consent.md new file mode 100644 index 000000000..425087efb --- /dev/null +++ b/examples/1.9.x/server-go/examples/account/delete-consent.md @@ -0,0 +1,21 @@ +```go +package main + +import ( + "fmt" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/account" +) + +client := client.New( + client.WithEndpoint("https://.cloud.appwrite.io/v1") + client.WithProject("") + client.WithSession("") +) + +service := account.New(client) + +response, error := service.DeleteConsent( + "", +) +``` diff --git a/examples/1.9.x/server-go/examples/account/delete-identity.md b/examples/1.9.x/server-go/examples/account/delete-identity.md index 0fcd8b941..c87633b4b 100644 --- a/examples/1.9.x/server-go/examples/account/delete-identity.md +++ b/examples/1.9.x/server-go/examples/account/delete-identity.md @@ -3,8 +3,8 @@ package main import ( "fmt" - "github.com/appwrite/sdk-for-go/v5/client" - "github.com/appwrite/sdk-for-go/v5/account" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/account" ) client := client.New( diff --git a/examples/1.9.x/server-go/examples/account/delete-mfa-authenticator.md b/examples/1.9.x/server-go/examples/account/delete-mfa-authenticator.md index 9c7d04fe3..d8b4c9baa 100644 --- a/examples/1.9.x/server-go/examples/account/delete-mfa-authenticator.md +++ b/examples/1.9.x/server-go/examples/account/delete-mfa-authenticator.md @@ -3,8 +3,8 @@ package main import ( "fmt" - "github.com/appwrite/sdk-for-go/v5/client" - "github.com/appwrite/sdk-for-go/v5/account" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/account" ) client := client.New( diff --git a/examples/1.9.x/server-go/examples/account/delete-session.md b/examples/1.9.x/server-go/examples/account/delete-session.md index 2550c28df..3a912e54c 100644 --- a/examples/1.9.x/server-go/examples/account/delete-session.md +++ b/examples/1.9.x/server-go/examples/account/delete-session.md @@ -3,8 +3,8 @@ package main import ( "fmt" - "github.com/appwrite/sdk-for-go/v5/client" - "github.com/appwrite/sdk-for-go/v5/account" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/account" ) client := client.New( diff --git a/examples/1.9.x/server-go/examples/account/delete-sessions.md b/examples/1.9.x/server-go/examples/account/delete-sessions.md index c3ffe9a02..6bb409214 100644 --- a/examples/1.9.x/server-go/examples/account/delete-sessions.md +++ b/examples/1.9.x/server-go/examples/account/delete-sessions.md @@ -3,8 +3,8 @@ package main import ( "fmt" - "github.com/appwrite/sdk-for-go/v5/client" - "github.com/appwrite/sdk-for-go/v5/account" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/account" ) client := client.New( diff --git a/examples/1.9.x/server-go/examples/account/get-consent-token.md b/examples/1.9.x/server-go/examples/account/get-consent-token.md new file mode 100644 index 000000000..284e2e35c --- /dev/null +++ b/examples/1.9.x/server-go/examples/account/get-consent-token.md @@ -0,0 +1,22 @@ +```go +package main + +import ( + "fmt" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/account" +) + +client := client.New( + client.WithEndpoint("https://.cloud.appwrite.io/v1") + client.WithProject("") + client.WithSession("") +) + +service := account.New(client) + +response, error := service.GetConsentToken( + "", + "", +) +``` diff --git a/examples/1.9.x/server-go/examples/account/get-consent.md b/examples/1.9.x/server-go/examples/account/get-consent.md new file mode 100644 index 000000000..d3c1906fe --- /dev/null +++ b/examples/1.9.x/server-go/examples/account/get-consent.md @@ -0,0 +1,21 @@ +```go +package main + +import ( + "fmt" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/account" +) + +client := client.New( + client.WithEndpoint("https://.cloud.appwrite.io/v1") + client.WithProject("") + client.WithSession("") +) + +service := account.New(client) + +response, error := service.GetConsent( + "", +) +``` diff --git a/examples/1.9.x/server-go/examples/account/get-mfa-recovery-codes.md b/examples/1.9.x/server-go/examples/account/get-mfa-recovery-codes.md index 3a51cad02..17722ca0f 100644 --- a/examples/1.9.x/server-go/examples/account/get-mfa-recovery-codes.md +++ b/examples/1.9.x/server-go/examples/account/get-mfa-recovery-codes.md @@ -3,8 +3,8 @@ package main import ( "fmt" - "github.com/appwrite/sdk-for-go/v5/client" - "github.com/appwrite/sdk-for-go/v5/account" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/account" ) client := client.New( diff --git a/examples/1.9.x/server-go/examples/account/get-prefs.md b/examples/1.9.x/server-go/examples/account/get-prefs.md index 7e8a2d691..2783f2ae0 100644 --- a/examples/1.9.x/server-go/examples/account/get-prefs.md +++ b/examples/1.9.x/server-go/examples/account/get-prefs.md @@ -3,8 +3,8 @@ package main import ( "fmt" - "github.com/appwrite/sdk-for-go/v5/client" - "github.com/appwrite/sdk-for-go/v5/account" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/account" ) client := client.New( diff --git a/examples/1.9.x/server-go/examples/account/get-session.md b/examples/1.9.x/server-go/examples/account/get-session.md index 64017fa4e..79af0baab 100644 --- a/examples/1.9.x/server-go/examples/account/get-session.md +++ b/examples/1.9.x/server-go/examples/account/get-session.md @@ -3,8 +3,8 @@ package main import ( "fmt" - "github.com/appwrite/sdk-for-go/v5/client" - "github.com/appwrite/sdk-for-go/v5/account" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/account" ) client := client.New( diff --git a/examples/1.9.x/server-go/examples/account/get.md b/examples/1.9.x/server-go/examples/account/get.md index c6b773ff8..e124989b2 100644 --- a/examples/1.9.x/server-go/examples/account/get.md +++ b/examples/1.9.x/server-go/examples/account/get.md @@ -3,8 +3,8 @@ package main import ( "fmt" - "github.com/appwrite/sdk-for-go/v5/client" - "github.com/appwrite/sdk-for-go/v5/account" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/account" ) client := client.New( diff --git a/examples/1.9.x/server-go/examples/account/list-consent-tokens.md b/examples/1.9.x/server-go/examples/account/list-consent-tokens.md new file mode 100644 index 000000000..66752f9ec --- /dev/null +++ b/examples/1.9.x/server-go/examples/account/list-consent-tokens.md @@ -0,0 +1,23 @@ +```go +package main + +import ( + "fmt" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/account" +) + +client := client.New( + client.WithEndpoint("https://.cloud.appwrite.io/v1") + client.WithProject("") + client.WithSession("") +) + +service := account.New(client) + +response, error := service.ListConsentTokens( + "", + account.WithListConsentTokensQueries([]string{}), + account.WithListConsentTokensTotal(false), +) +``` diff --git a/examples/1.9.x/server-go/examples/account/list-consents.md b/examples/1.9.x/server-go/examples/account/list-consents.md new file mode 100644 index 000000000..709361f4c --- /dev/null +++ b/examples/1.9.x/server-go/examples/account/list-consents.md @@ -0,0 +1,22 @@ +```go +package main + +import ( + "fmt" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/account" +) + +client := client.New( + client.WithEndpoint("https://.cloud.appwrite.io/v1") + client.WithProject("") + client.WithSession("") +) + +service := account.New(client) + +response, error := service.ListConsents( + account.WithListConsentsQueries([]string{}), + account.WithListConsentsTotal(false), +) +``` diff --git a/examples/1.9.x/server-go/examples/account/list-identities.md b/examples/1.9.x/server-go/examples/account/list-identities.md index 317690bac..0561b15c4 100644 --- a/examples/1.9.x/server-go/examples/account/list-identities.md +++ b/examples/1.9.x/server-go/examples/account/list-identities.md @@ -3,8 +3,8 @@ package main import ( "fmt" - "github.com/appwrite/sdk-for-go/v5/client" - "github.com/appwrite/sdk-for-go/v5/account" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/account" ) client := client.New( diff --git a/examples/1.9.x/server-go/examples/account/list-logs.md b/examples/1.9.x/server-go/examples/account/list-logs.md index 47a31e788..f6c206d23 100644 --- a/examples/1.9.x/server-go/examples/account/list-logs.md +++ b/examples/1.9.x/server-go/examples/account/list-logs.md @@ -3,8 +3,8 @@ package main import ( "fmt" - "github.com/appwrite/sdk-for-go/v5/client" - "github.com/appwrite/sdk-for-go/v5/account" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/account" ) client := client.New( diff --git a/examples/1.9.x/server-go/examples/account/list-mfa-factors.md b/examples/1.9.x/server-go/examples/account/list-mfa-factors.md index a0da05007..4329a7b5d 100644 --- a/examples/1.9.x/server-go/examples/account/list-mfa-factors.md +++ b/examples/1.9.x/server-go/examples/account/list-mfa-factors.md @@ -3,8 +3,8 @@ package main import ( "fmt" - "github.com/appwrite/sdk-for-go/v5/client" - "github.com/appwrite/sdk-for-go/v5/account" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/account" ) client := client.New( diff --git a/examples/1.9.x/server-go/examples/account/list-sessions.md b/examples/1.9.x/server-go/examples/account/list-sessions.md index 931746a7c..44f153a84 100644 --- a/examples/1.9.x/server-go/examples/account/list-sessions.md +++ b/examples/1.9.x/server-go/examples/account/list-sessions.md @@ -3,8 +3,8 @@ package main import ( "fmt" - "github.com/appwrite/sdk-for-go/v5/client" - "github.com/appwrite/sdk-for-go/v5/account" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/account" ) client := client.New( diff --git a/examples/1.9.x/server-go/examples/account/update-email-verification.md b/examples/1.9.x/server-go/examples/account/update-email-verification.md index fe6fc5ee0..145cf75fa 100644 --- a/examples/1.9.x/server-go/examples/account/update-email-verification.md +++ b/examples/1.9.x/server-go/examples/account/update-email-verification.md @@ -3,8 +3,8 @@ package main import ( "fmt" - "github.com/appwrite/sdk-for-go/v5/client" - "github.com/appwrite/sdk-for-go/v5/account" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/account" ) client := client.New( diff --git a/examples/1.9.x/server-go/examples/account/update-email.md b/examples/1.9.x/server-go/examples/account/update-email.md index 290f661da..c9f20afa8 100644 --- a/examples/1.9.x/server-go/examples/account/update-email.md +++ b/examples/1.9.x/server-go/examples/account/update-email.md @@ -3,8 +3,8 @@ package main import ( "fmt" - "github.com/appwrite/sdk-for-go/v5/client" - "github.com/appwrite/sdk-for-go/v5/account" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/account" ) client := client.New( diff --git a/examples/1.9.x/server-go/examples/account/update-magic-url-session.md b/examples/1.9.x/server-go/examples/account/update-magic-url-session.md index 04888773e..37b7684b6 100644 --- a/examples/1.9.x/server-go/examples/account/update-magic-url-session.md +++ b/examples/1.9.x/server-go/examples/account/update-magic-url-session.md @@ -3,8 +3,8 @@ package main import ( "fmt" - "github.com/appwrite/sdk-for-go/v5/client" - "github.com/appwrite/sdk-for-go/v5/account" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/account" ) client := client.New( diff --git a/examples/1.9.x/server-go/examples/account/update-mfa-authenticator.md b/examples/1.9.x/server-go/examples/account/update-mfa-authenticator.md index 2bea8698b..142ca953e 100644 --- a/examples/1.9.x/server-go/examples/account/update-mfa-authenticator.md +++ b/examples/1.9.x/server-go/examples/account/update-mfa-authenticator.md @@ -3,8 +3,8 @@ package main import ( "fmt" - "github.com/appwrite/sdk-for-go/v5/client" - "github.com/appwrite/sdk-for-go/v5/account" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/account" ) client := client.New( diff --git a/examples/1.9.x/server-go/examples/account/update-mfa-challenge.md b/examples/1.9.x/server-go/examples/account/update-mfa-challenge.md index 21ca328fc..7c90f1746 100644 --- a/examples/1.9.x/server-go/examples/account/update-mfa-challenge.md +++ b/examples/1.9.x/server-go/examples/account/update-mfa-challenge.md @@ -3,8 +3,8 @@ package main import ( "fmt" - "github.com/appwrite/sdk-for-go/v5/client" - "github.com/appwrite/sdk-for-go/v5/account" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/account" ) client := client.New( diff --git a/examples/1.9.x/server-go/examples/account/update-mfa-recovery-codes.md b/examples/1.9.x/server-go/examples/account/update-mfa-recovery-codes.md index f2ed0212a..0e7161628 100644 --- a/examples/1.9.x/server-go/examples/account/update-mfa-recovery-codes.md +++ b/examples/1.9.x/server-go/examples/account/update-mfa-recovery-codes.md @@ -3,8 +3,8 @@ package main import ( "fmt" - "github.com/appwrite/sdk-for-go/v5/client" - "github.com/appwrite/sdk-for-go/v5/account" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/account" ) client := client.New( diff --git a/examples/1.9.x/server-go/examples/account/update-mfa.md b/examples/1.9.x/server-go/examples/account/update-mfa.md index 790922504..e72dd599b 100644 --- a/examples/1.9.x/server-go/examples/account/update-mfa.md +++ b/examples/1.9.x/server-go/examples/account/update-mfa.md @@ -3,8 +3,8 @@ package main import ( "fmt" - "github.com/appwrite/sdk-for-go/v5/client" - "github.com/appwrite/sdk-for-go/v5/account" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/account" ) client := client.New( diff --git a/examples/1.9.x/server-go/examples/account/update-name.md b/examples/1.9.x/server-go/examples/account/update-name.md index 905a7b9b5..594db80c3 100644 --- a/examples/1.9.x/server-go/examples/account/update-name.md +++ b/examples/1.9.x/server-go/examples/account/update-name.md @@ -3,8 +3,8 @@ package main import ( "fmt" - "github.com/appwrite/sdk-for-go/v5/client" - "github.com/appwrite/sdk-for-go/v5/account" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/account" ) client := client.New( diff --git a/examples/1.9.x/server-go/examples/account/update-password.md b/examples/1.9.x/server-go/examples/account/update-password.md index 52c55f13d..5e3a9fda6 100644 --- a/examples/1.9.x/server-go/examples/account/update-password.md +++ b/examples/1.9.x/server-go/examples/account/update-password.md @@ -3,8 +3,8 @@ package main import ( "fmt" - "github.com/appwrite/sdk-for-go/v5/client" - "github.com/appwrite/sdk-for-go/v5/account" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/account" ) client := client.New( diff --git a/examples/1.9.x/server-go/examples/account/update-phone-session.md b/examples/1.9.x/server-go/examples/account/update-phone-session.md index f407908fc..63af885db 100644 --- a/examples/1.9.x/server-go/examples/account/update-phone-session.md +++ b/examples/1.9.x/server-go/examples/account/update-phone-session.md @@ -3,8 +3,8 @@ package main import ( "fmt" - "github.com/appwrite/sdk-for-go/v5/client" - "github.com/appwrite/sdk-for-go/v5/account" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/account" ) client := client.New( diff --git a/examples/1.9.x/server-go/examples/account/update-phone-verification.md b/examples/1.9.x/server-go/examples/account/update-phone-verification.md index ce2cce211..56d46c475 100644 --- a/examples/1.9.x/server-go/examples/account/update-phone-verification.md +++ b/examples/1.9.x/server-go/examples/account/update-phone-verification.md @@ -3,8 +3,8 @@ package main import ( "fmt" - "github.com/appwrite/sdk-for-go/v5/client" - "github.com/appwrite/sdk-for-go/v5/account" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/account" ) client := client.New( diff --git a/examples/1.9.x/server-go/examples/account/update-phone.md b/examples/1.9.x/server-go/examples/account/update-phone.md index 3b0dd1f30..4711df2f2 100644 --- a/examples/1.9.x/server-go/examples/account/update-phone.md +++ b/examples/1.9.x/server-go/examples/account/update-phone.md @@ -3,8 +3,8 @@ package main import ( "fmt" - "github.com/appwrite/sdk-for-go/v5/client" - "github.com/appwrite/sdk-for-go/v5/account" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/account" ) client := client.New( diff --git a/examples/1.9.x/server-go/examples/account/update-prefs.md b/examples/1.9.x/server-go/examples/account/update-prefs.md index 59c0cf27d..d64419867 100644 --- a/examples/1.9.x/server-go/examples/account/update-prefs.md +++ b/examples/1.9.x/server-go/examples/account/update-prefs.md @@ -3,8 +3,8 @@ package main import ( "fmt" - "github.com/appwrite/sdk-for-go/v5/client" - "github.com/appwrite/sdk-for-go/v5/account" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/account" ) client := client.New( diff --git a/examples/1.9.x/server-go/examples/account/update-recovery.md b/examples/1.9.x/server-go/examples/account/update-recovery.md index d1383b37f..2c569ba55 100644 --- a/examples/1.9.x/server-go/examples/account/update-recovery.md +++ b/examples/1.9.x/server-go/examples/account/update-recovery.md @@ -3,8 +3,8 @@ package main import ( "fmt" - "github.com/appwrite/sdk-for-go/v5/client" - "github.com/appwrite/sdk-for-go/v5/account" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/account" ) client := client.New( diff --git a/examples/1.9.x/server-go/examples/account/update-session.md b/examples/1.9.x/server-go/examples/account/update-session.md index b5bc17273..26320f963 100644 --- a/examples/1.9.x/server-go/examples/account/update-session.md +++ b/examples/1.9.x/server-go/examples/account/update-session.md @@ -3,8 +3,8 @@ package main import ( "fmt" - "github.com/appwrite/sdk-for-go/v5/client" - "github.com/appwrite/sdk-for-go/v5/account" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/account" ) client := client.New( diff --git a/examples/1.9.x/server-go/examples/account/update-status.md b/examples/1.9.x/server-go/examples/account/update-status.md index c2c7a23cf..51a47438f 100644 --- a/examples/1.9.x/server-go/examples/account/update-status.md +++ b/examples/1.9.x/server-go/examples/account/update-status.md @@ -3,8 +3,8 @@ package main import ( "fmt" - "github.com/appwrite/sdk-for-go/v5/client" - "github.com/appwrite/sdk-for-go/v5/account" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/account" ) client := client.New( diff --git a/examples/1.9.x/server-go/examples/account/update-verification.md b/examples/1.9.x/server-go/examples/account/update-verification.md index 568d56cd9..41537e2a9 100644 --- a/examples/1.9.x/server-go/examples/account/update-verification.md +++ b/examples/1.9.x/server-go/examples/account/update-verification.md @@ -3,8 +3,8 @@ package main import ( "fmt" - "github.com/appwrite/sdk-for-go/v5/client" - "github.com/appwrite/sdk-for-go/v5/account" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/account" ) client := client.New( diff --git a/examples/1.9.x/server-go/examples/activities/get-event.md b/examples/1.9.x/server-go/examples/activities/get-event.md index 4120d9ed0..0be8e6501 100644 --- a/examples/1.9.x/server-go/examples/activities/get-event.md +++ b/examples/1.9.x/server-go/examples/activities/get-event.md @@ -3,8 +3,8 @@ package main import ( "fmt" - "github.com/appwrite/sdk-for-go/v5/client" - "github.com/appwrite/sdk-for-go/v5/activities" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/activities" ) client := client.New( diff --git a/examples/1.9.x/server-go/examples/activities/list-events.md b/examples/1.9.x/server-go/examples/activities/list-events.md index 5aa484db9..5ecb76650 100644 --- a/examples/1.9.x/server-go/examples/activities/list-events.md +++ b/examples/1.9.x/server-go/examples/activities/list-events.md @@ -3,8 +3,8 @@ package main import ( "fmt" - "github.com/appwrite/sdk-for-go/v5/client" - "github.com/appwrite/sdk-for-go/v5/activities" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/activities" ) client := client.New( diff --git a/examples/1.9.x/server-go/examples/advisor/delete-report.md b/examples/1.9.x/server-go/examples/advisor/delete-report.md index 370a33e29..52b93b808 100644 --- a/examples/1.9.x/server-go/examples/advisor/delete-report.md +++ b/examples/1.9.x/server-go/examples/advisor/delete-report.md @@ -3,8 +3,8 @@ package main import ( "fmt" - "github.com/appwrite/sdk-for-go/v5/client" - "github.com/appwrite/sdk-for-go/v5/advisor" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/advisor" ) client := client.New( diff --git a/examples/1.9.x/server-go/examples/advisor/get-insight.md b/examples/1.9.x/server-go/examples/advisor/get-insight.md index 4fa95148b..c37ca9f30 100644 --- a/examples/1.9.x/server-go/examples/advisor/get-insight.md +++ b/examples/1.9.x/server-go/examples/advisor/get-insight.md @@ -3,8 +3,8 @@ package main import ( "fmt" - "github.com/appwrite/sdk-for-go/v5/client" - "github.com/appwrite/sdk-for-go/v5/advisor" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/advisor" ) client := client.New( diff --git a/examples/1.9.x/server-go/examples/advisor/get-report.md b/examples/1.9.x/server-go/examples/advisor/get-report.md index c1d9c65db..040b87659 100644 --- a/examples/1.9.x/server-go/examples/advisor/get-report.md +++ b/examples/1.9.x/server-go/examples/advisor/get-report.md @@ -3,8 +3,8 @@ package main import ( "fmt" - "github.com/appwrite/sdk-for-go/v5/client" - "github.com/appwrite/sdk-for-go/v5/advisor" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/advisor" ) client := client.New( diff --git a/examples/1.9.x/server-go/examples/advisor/list-insights.md b/examples/1.9.x/server-go/examples/advisor/list-insights.md index 3754df2eb..461de7a94 100644 --- a/examples/1.9.x/server-go/examples/advisor/list-insights.md +++ b/examples/1.9.x/server-go/examples/advisor/list-insights.md @@ -3,8 +3,8 @@ package main import ( "fmt" - "github.com/appwrite/sdk-for-go/v5/client" - "github.com/appwrite/sdk-for-go/v5/advisor" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/advisor" ) client := client.New( diff --git a/examples/1.9.x/server-go/examples/advisor/list-reports.md b/examples/1.9.x/server-go/examples/advisor/list-reports.md index 0931e1887..5ca9471ed 100644 --- a/examples/1.9.x/server-go/examples/advisor/list-reports.md +++ b/examples/1.9.x/server-go/examples/advisor/list-reports.md @@ -3,8 +3,8 @@ package main import ( "fmt" - "github.com/appwrite/sdk-for-go/v5/client" - "github.com/appwrite/sdk-for-go/v5/advisor" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/advisor" ) client := client.New( diff --git a/examples/1.9.x/server-go/examples/avatars/get-browser.md b/examples/1.9.x/server-go/examples/avatars/get-browser.md index 378e30f72..5a8772603 100644 --- a/examples/1.9.x/server-go/examples/avatars/get-browser.md +++ b/examples/1.9.x/server-go/examples/avatars/get-browser.md @@ -3,8 +3,8 @@ package main import ( "fmt" - "github.com/appwrite/sdk-for-go/v5/client" - "github.com/appwrite/sdk-for-go/v5/avatars" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/avatars" ) client := client.New( diff --git a/examples/1.9.x/server-go/examples/avatars/get-credit-card.md b/examples/1.9.x/server-go/examples/avatars/get-credit-card.md index f0bd6a8bb..824837fb9 100644 --- a/examples/1.9.x/server-go/examples/avatars/get-credit-card.md +++ b/examples/1.9.x/server-go/examples/avatars/get-credit-card.md @@ -3,8 +3,8 @@ package main import ( "fmt" - "github.com/appwrite/sdk-for-go/v5/client" - "github.com/appwrite/sdk-for-go/v5/avatars" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/avatars" ) client := client.New( diff --git a/examples/1.9.x/server-go/examples/avatars/get-favicon.md b/examples/1.9.x/server-go/examples/avatars/get-favicon.md index f07e7fbd0..0a7faf7cf 100644 --- a/examples/1.9.x/server-go/examples/avatars/get-favicon.md +++ b/examples/1.9.x/server-go/examples/avatars/get-favicon.md @@ -3,8 +3,8 @@ package main import ( "fmt" - "github.com/appwrite/sdk-for-go/v5/client" - "github.com/appwrite/sdk-for-go/v5/avatars" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/avatars" ) client := client.New( diff --git a/examples/1.9.x/server-go/examples/avatars/get-flag.md b/examples/1.9.x/server-go/examples/avatars/get-flag.md index eff8c369c..986c4c744 100644 --- a/examples/1.9.x/server-go/examples/avatars/get-flag.md +++ b/examples/1.9.x/server-go/examples/avatars/get-flag.md @@ -3,8 +3,8 @@ package main import ( "fmt" - "github.com/appwrite/sdk-for-go/v5/client" - "github.com/appwrite/sdk-for-go/v5/avatars" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/avatars" ) client := client.New( diff --git a/examples/1.9.x/server-go/examples/avatars/get-image.md b/examples/1.9.x/server-go/examples/avatars/get-image.md index fdd79adce..c3421bc02 100644 --- a/examples/1.9.x/server-go/examples/avatars/get-image.md +++ b/examples/1.9.x/server-go/examples/avatars/get-image.md @@ -3,8 +3,8 @@ package main import ( "fmt" - "github.com/appwrite/sdk-for-go/v5/client" - "github.com/appwrite/sdk-for-go/v5/avatars" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/avatars" ) client := client.New( diff --git a/examples/1.9.x/server-go/examples/avatars/get-initials.md b/examples/1.9.x/server-go/examples/avatars/get-initials.md index f3e29b22d..d4277a1e3 100644 --- a/examples/1.9.x/server-go/examples/avatars/get-initials.md +++ b/examples/1.9.x/server-go/examples/avatars/get-initials.md @@ -3,8 +3,8 @@ package main import ( "fmt" - "github.com/appwrite/sdk-for-go/v5/client" - "github.com/appwrite/sdk-for-go/v5/avatars" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/avatars" ) client := client.New( diff --git a/examples/1.9.x/server-go/examples/avatars/get-qr.md b/examples/1.9.x/server-go/examples/avatars/get-qr.md index bae6f2887..6a3e93e9a 100644 --- a/examples/1.9.x/server-go/examples/avatars/get-qr.md +++ b/examples/1.9.x/server-go/examples/avatars/get-qr.md @@ -3,8 +3,8 @@ package main import ( "fmt" - "github.com/appwrite/sdk-for-go/v5/client" - "github.com/appwrite/sdk-for-go/v5/avatars" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/avatars" ) client := client.New( diff --git a/examples/1.9.x/server-go/examples/avatars/get-screenshot.md b/examples/1.9.x/server-go/examples/avatars/get-screenshot.md index 3f1c75710..3a70eebc5 100644 --- a/examples/1.9.x/server-go/examples/avatars/get-screenshot.md +++ b/examples/1.9.x/server-go/examples/avatars/get-screenshot.md @@ -3,8 +3,8 @@ package main import ( "fmt" - "github.com/appwrite/sdk-for-go/v5/client" - "github.com/appwrite/sdk-for-go/v5/avatars" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/avatars" ) client := client.New( diff --git a/examples/1.9.x/server-go/examples/backups/create-archive.md b/examples/1.9.x/server-go/examples/backups/create-archive.md index 00dc8ddb3..94e02247e 100644 --- a/examples/1.9.x/server-go/examples/backups/create-archive.md +++ b/examples/1.9.x/server-go/examples/backups/create-archive.md @@ -3,8 +3,8 @@ package main import ( "fmt" - "github.com/appwrite/sdk-for-go/v5/client" - "github.com/appwrite/sdk-for-go/v5/backups" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/backups" ) client := client.New( diff --git a/examples/1.9.x/server-go/examples/backups/create-policy.md b/examples/1.9.x/server-go/examples/backups/create-policy.md index 8e35a232e..8cd7f22a2 100644 --- a/examples/1.9.x/server-go/examples/backups/create-policy.md +++ b/examples/1.9.x/server-go/examples/backups/create-policy.md @@ -3,8 +3,8 @@ package main import ( "fmt" - "github.com/appwrite/sdk-for-go/v5/client" - "github.com/appwrite/sdk-for-go/v5/backups" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/backups" ) client := client.New( diff --git a/examples/1.9.x/server-go/examples/backups/create-restoration.md b/examples/1.9.x/server-go/examples/backups/create-restoration.md index bfb1e8fac..6f25ba800 100644 --- a/examples/1.9.x/server-go/examples/backups/create-restoration.md +++ b/examples/1.9.x/server-go/examples/backups/create-restoration.md @@ -3,8 +3,8 @@ package main import ( "fmt" - "github.com/appwrite/sdk-for-go/v5/client" - "github.com/appwrite/sdk-for-go/v5/backups" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/backups" ) client := client.New( diff --git a/examples/1.9.x/server-go/examples/backups/delete-archive.md b/examples/1.9.x/server-go/examples/backups/delete-archive.md index f44ff77cc..fb9492b13 100644 --- a/examples/1.9.x/server-go/examples/backups/delete-archive.md +++ b/examples/1.9.x/server-go/examples/backups/delete-archive.md @@ -3,8 +3,8 @@ package main import ( "fmt" - "github.com/appwrite/sdk-for-go/v5/client" - "github.com/appwrite/sdk-for-go/v5/backups" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/backups" ) client := client.New( diff --git a/examples/1.9.x/server-go/examples/backups/delete-policy.md b/examples/1.9.x/server-go/examples/backups/delete-policy.md index 12d608c64..e87658ee6 100644 --- a/examples/1.9.x/server-go/examples/backups/delete-policy.md +++ b/examples/1.9.x/server-go/examples/backups/delete-policy.md @@ -3,8 +3,8 @@ package main import ( "fmt" - "github.com/appwrite/sdk-for-go/v5/client" - "github.com/appwrite/sdk-for-go/v5/backups" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/backups" ) client := client.New( diff --git a/examples/1.9.x/server-go/examples/backups/get-archive.md b/examples/1.9.x/server-go/examples/backups/get-archive.md index 2d34ee1a6..97c68b288 100644 --- a/examples/1.9.x/server-go/examples/backups/get-archive.md +++ b/examples/1.9.x/server-go/examples/backups/get-archive.md @@ -3,8 +3,8 @@ package main import ( "fmt" - "github.com/appwrite/sdk-for-go/v5/client" - "github.com/appwrite/sdk-for-go/v5/backups" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/backups" ) client := client.New( diff --git a/examples/1.9.x/server-go/examples/backups/get-policy.md b/examples/1.9.x/server-go/examples/backups/get-policy.md index 86a9e8d25..49334e4ee 100644 --- a/examples/1.9.x/server-go/examples/backups/get-policy.md +++ b/examples/1.9.x/server-go/examples/backups/get-policy.md @@ -3,8 +3,8 @@ package main import ( "fmt" - "github.com/appwrite/sdk-for-go/v5/client" - "github.com/appwrite/sdk-for-go/v5/backups" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/backups" ) client := client.New( diff --git a/examples/1.9.x/server-go/examples/backups/get-restoration.md b/examples/1.9.x/server-go/examples/backups/get-restoration.md index f42463d18..9a5b14400 100644 --- a/examples/1.9.x/server-go/examples/backups/get-restoration.md +++ b/examples/1.9.x/server-go/examples/backups/get-restoration.md @@ -3,8 +3,8 @@ package main import ( "fmt" - "github.com/appwrite/sdk-for-go/v5/client" - "github.com/appwrite/sdk-for-go/v5/backups" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/backups" ) client := client.New( diff --git a/examples/1.9.x/server-go/examples/backups/list-archives.md b/examples/1.9.x/server-go/examples/backups/list-archives.md index 4a88c05be..2ed6c8b07 100644 --- a/examples/1.9.x/server-go/examples/backups/list-archives.md +++ b/examples/1.9.x/server-go/examples/backups/list-archives.md @@ -3,8 +3,8 @@ package main import ( "fmt" - "github.com/appwrite/sdk-for-go/v5/client" - "github.com/appwrite/sdk-for-go/v5/backups" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/backups" ) client := client.New( diff --git a/examples/1.9.x/server-go/examples/backups/list-policies.md b/examples/1.9.x/server-go/examples/backups/list-policies.md index db3cc1115..257b23546 100644 --- a/examples/1.9.x/server-go/examples/backups/list-policies.md +++ b/examples/1.9.x/server-go/examples/backups/list-policies.md @@ -3,8 +3,8 @@ package main import ( "fmt" - "github.com/appwrite/sdk-for-go/v5/client" - "github.com/appwrite/sdk-for-go/v5/backups" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/backups" ) client := client.New( diff --git a/examples/1.9.x/server-go/examples/backups/list-restorations.md b/examples/1.9.x/server-go/examples/backups/list-restorations.md index c3bff2177..e16637a2a 100644 --- a/examples/1.9.x/server-go/examples/backups/list-restorations.md +++ b/examples/1.9.x/server-go/examples/backups/list-restorations.md @@ -3,8 +3,8 @@ package main import ( "fmt" - "github.com/appwrite/sdk-for-go/v5/client" - "github.com/appwrite/sdk-for-go/v5/backups" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/backups" ) client := client.New( diff --git a/examples/1.9.x/server-go/examples/backups/update-policy.md b/examples/1.9.x/server-go/examples/backups/update-policy.md index e4c555caf..238c7dd5c 100644 --- a/examples/1.9.x/server-go/examples/backups/update-policy.md +++ b/examples/1.9.x/server-go/examples/backups/update-policy.md @@ -3,8 +3,8 @@ package main import ( "fmt" - "github.com/appwrite/sdk-for-go/v5/client" - "github.com/appwrite/sdk-for-go/v5/backups" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/backups" ) client := client.New( diff --git a/examples/1.9.x/server-go/examples/databases/create-big-int-attribute.md b/examples/1.9.x/server-go/examples/databases/create-big-int-attribute.md index 3cf1c2851..84b6d74b0 100644 --- a/examples/1.9.x/server-go/examples/databases/create-big-int-attribute.md +++ b/examples/1.9.x/server-go/examples/databases/create-big-int-attribute.md @@ -3,8 +3,8 @@ package main import ( "fmt" - "github.com/appwrite/sdk-for-go/v5/client" - "github.com/appwrite/sdk-for-go/v5/databases" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/databases" ) client := client.New( diff --git a/examples/1.9.x/server-go/examples/databases/create-boolean-attribute.md b/examples/1.9.x/server-go/examples/databases/create-boolean-attribute.md index 732059f0a..797f50b0b 100644 --- a/examples/1.9.x/server-go/examples/databases/create-boolean-attribute.md +++ b/examples/1.9.x/server-go/examples/databases/create-boolean-attribute.md @@ -3,8 +3,8 @@ package main import ( "fmt" - "github.com/appwrite/sdk-for-go/v5/client" - "github.com/appwrite/sdk-for-go/v5/databases" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/databases" ) client := client.New( diff --git a/examples/1.9.x/server-go/examples/databases/create-collection.md b/examples/1.9.x/server-go/examples/databases/create-collection.md index aaac7c102..c5ace9197 100644 --- a/examples/1.9.x/server-go/examples/databases/create-collection.md +++ b/examples/1.9.x/server-go/examples/databases/create-collection.md @@ -3,8 +3,8 @@ package main import ( "fmt" - "github.com/appwrite/sdk-for-go/v5/client" - "github.com/appwrite/sdk-for-go/v5/databases" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/databases" ) client := client.New( diff --git a/examples/1.9.x/server-go/examples/databases/create-datetime-attribute.md b/examples/1.9.x/server-go/examples/databases/create-datetime-attribute.md index 89a6706ea..9f8fa0848 100644 --- a/examples/1.9.x/server-go/examples/databases/create-datetime-attribute.md +++ b/examples/1.9.x/server-go/examples/databases/create-datetime-attribute.md @@ -3,8 +3,8 @@ package main import ( "fmt" - "github.com/appwrite/sdk-for-go/v5/client" - "github.com/appwrite/sdk-for-go/v5/databases" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/databases" ) client := client.New( diff --git a/examples/1.9.x/server-go/examples/databases/create-document.md b/examples/1.9.x/server-go/examples/databases/create-document.md index a0a0f3e19..baf4324ba 100644 --- a/examples/1.9.x/server-go/examples/databases/create-document.md +++ b/examples/1.9.x/server-go/examples/databases/create-document.md @@ -3,8 +3,8 @@ package main import ( "fmt" - "github.com/appwrite/sdk-for-go/v5/client" - "github.com/appwrite/sdk-for-go/v5/databases" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/databases" ) client := client.New( diff --git a/examples/1.9.x/server-go/examples/databases/create-documents.md b/examples/1.9.x/server-go/examples/databases/create-documents.md index 2836230c9..b881c4dce 100644 --- a/examples/1.9.x/server-go/examples/databases/create-documents.md +++ b/examples/1.9.x/server-go/examples/databases/create-documents.md @@ -3,8 +3,8 @@ package main import ( "fmt" - "github.com/appwrite/sdk-for-go/v5/client" - "github.com/appwrite/sdk-for-go/v5/databases" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/databases" ) client := client.New( diff --git a/examples/1.9.x/server-go/examples/databases/create-email-attribute.md b/examples/1.9.x/server-go/examples/databases/create-email-attribute.md index f6cefb163..525322070 100644 --- a/examples/1.9.x/server-go/examples/databases/create-email-attribute.md +++ b/examples/1.9.x/server-go/examples/databases/create-email-attribute.md @@ -3,8 +3,8 @@ package main import ( "fmt" - "github.com/appwrite/sdk-for-go/v5/client" - "github.com/appwrite/sdk-for-go/v5/databases" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/databases" ) client := client.New( diff --git a/examples/1.9.x/server-go/examples/databases/create-enum-attribute.md b/examples/1.9.x/server-go/examples/databases/create-enum-attribute.md index 805af97b1..76539fe41 100644 --- a/examples/1.9.x/server-go/examples/databases/create-enum-attribute.md +++ b/examples/1.9.x/server-go/examples/databases/create-enum-attribute.md @@ -3,8 +3,8 @@ package main import ( "fmt" - "github.com/appwrite/sdk-for-go/v5/client" - "github.com/appwrite/sdk-for-go/v5/databases" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/databases" ) client := client.New( diff --git a/examples/1.9.x/server-go/examples/databases/create-float-attribute.md b/examples/1.9.x/server-go/examples/databases/create-float-attribute.md index b60c638a8..c9a27bd69 100644 --- a/examples/1.9.x/server-go/examples/databases/create-float-attribute.md +++ b/examples/1.9.x/server-go/examples/databases/create-float-attribute.md @@ -3,8 +3,8 @@ package main import ( "fmt" - "github.com/appwrite/sdk-for-go/v5/client" - "github.com/appwrite/sdk-for-go/v5/databases" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/databases" ) client := client.New( diff --git a/examples/1.9.x/server-go/examples/databases/create-index.md b/examples/1.9.x/server-go/examples/databases/create-index.md index 496000ee6..99a0f56d8 100644 --- a/examples/1.9.x/server-go/examples/databases/create-index.md +++ b/examples/1.9.x/server-go/examples/databases/create-index.md @@ -3,8 +3,8 @@ package main import ( "fmt" - "github.com/appwrite/sdk-for-go/v5/client" - "github.com/appwrite/sdk-for-go/v5/databases" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/databases" ) client := client.New( diff --git a/examples/1.9.x/server-go/examples/databases/create-integer-attribute.md b/examples/1.9.x/server-go/examples/databases/create-integer-attribute.md index 71db4b5e0..ec8368b14 100644 --- a/examples/1.9.x/server-go/examples/databases/create-integer-attribute.md +++ b/examples/1.9.x/server-go/examples/databases/create-integer-attribute.md @@ -3,8 +3,8 @@ package main import ( "fmt" - "github.com/appwrite/sdk-for-go/v5/client" - "github.com/appwrite/sdk-for-go/v5/databases" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/databases" ) client := client.New( diff --git a/examples/1.9.x/server-go/examples/databases/create-ip-attribute.md b/examples/1.9.x/server-go/examples/databases/create-ip-attribute.md index cbc1802f0..79f4c1d4e 100644 --- a/examples/1.9.x/server-go/examples/databases/create-ip-attribute.md +++ b/examples/1.9.x/server-go/examples/databases/create-ip-attribute.md @@ -3,8 +3,8 @@ package main import ( "fmt" - "github.com/appwrite/sdk-for-go/v5/client" - "github.com/appwrite/sdk-for-go/v5/databases" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/databases" ) client := client.New( diff --git a/examples/1.9.x/server-go/examples/databases/create-line-attribute.md b/examples/1.9.x/server-go/examples/databases/create-line-attribute.md index 52fef1bd9..c6f734a15 100644 --- a/examples/1.9.x/server-go/examples/databases/create-line-attribute.md +++ b/examples/1.9.x/server-go/examples/databases/create-line-attribute.md @@ -3,8 +3,8 @@ package main import ( "fmt" - "github.com/appwrite/sdk-for-go/v5/client" - "github.com/appwrite/sdk-for-go/v5/databases" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/databases" ) client := client.New( diff --git a/examples/1.9.x/server-go/examples/databases/create-longtext-attribute.md b/examples/1.9.x/server-go/examples/databases/create-longtext-attribute.md index d22ff7361..aa4b612ed 100644 --- a/examples/1.9.x/server-go/examples/databases/create-longtext-attribute.md +++ b/examples/1.9.x/server-go/examples/databases/create-longtext-attribute.md @@ -3,8 +3,8 @@ package main import ( "fmt" - "github.com/appwrite/sdk-for-go/v5/client" - "github.com/appwrite/sdk-for-go/v5/databases" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/databases" ) client := client.New( diff --git a/examples/1.9.x/server-go/examples/databases/create-mediumtext-attribute.md b/examples/1.9.x/server-go/examples/databases/create-mediumtext-attribute.md index 7f4a9233e..7547d056a 100644 --- a/examples/1.9.x/server-go/examples/databases/create-mediumtext-attribute.md +++ b/examples/1.9.x/server-go/examples/databases/create-mediumtext-attribute.md @@ -3,8 +3,8 @@ package main import ( "fmt" - "github.com/appwrite/sdk-for-go/v5/client" - "github.com/appwrite/sdk-for-go/v5/databases" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/databases" ) client := client.New( diff --git a/examples/1.9.x/server-go/examples/databases/create-operations.md b/examples/1.9.x/server-go/examples/databases/create-operations.md index 16a0147c1..1ede42a5f 100644 --- a/examples/1.9.x/server-go/examples/databases/create-operations.md +++ b/examples/1.9.x/server-go/examples/databases/create-operations.md @@ -3,8 +3,8 @@ package main import ( "fmt" - "github.com/appwrite/sdk-for-go/v5/client" - "github.com/appwrite/sdk-for-go/v5/databases" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/databases" ) client := client.New( diff --git a/examples/1.9.x/server-go/examples/databases/create-point-attribute.md b/examples/1.9.x/server-go/examples/databases/create-point-attribute.md index d53b87bd2..ee6c67be3 100644 --- a/examples/1.9.x/server-go/examples/databases/create-point-attribute.md +++ b/examples/1.9.x/server-go/examples/databases/create-point-attribute.md @@ -3,8 +3,8 @@ package main import ( "fmt" - "github.com/appwrite/sdk-for-go/v5/client" - "github.com/appwrite/sdk-for-go/v5/databases" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/databases" ) client := client.New( diff --git a/examples/1.9.x/server-go/examples/databases/create-polygon-attribute.md b/examples/1.9.x/server-go/examples/databases/create-polygon-attribute.md index 018a901a2..d56853d37 100644 --- a/examples/1.9.x/server-go/examples/databases/create-polygon-attribute.md +++ b/examples/1.9.x/server-go/examples/databases/create-polygon-attribute.md @@ -3,8 +3,8 @@ package main import ( "fmt" - "github.com/appwrite/sdk-for-go/v5/client" - "github.com/appwrite/sdk-for-go/v5/databases" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/databases" ) client := client.New( diff --git a/examples/1.9.x/server-go/examples/databases/create-relationship-attribute.md b/examples/1.9.x/server-go/examples/databases/create-relationship-attribute.md index 53da85ff2..1b737f95f 100644 --- a/examples/1.9.x/server-go/examples/databases/create-relationship-attribute.md +++ b/examples/1.9.x/server-go/examples/databases/create-relationship-attribute.md @@ -3,8 +3,8 @@ package main import ( "fmt" - "github.com/appwrite/sdk-for-go/v5/client" - "github.com/appwrite/sdk-for-go/v5/databases" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/databases" ) client := client.New( diff --git a/examples/1.9.x/server-go/examples/databases/create-string-attribute.md b/examples/1.9.x/server-go/examples/databases/create-string-attribute.md index b68cd180b..1bd614ace 100644 --- a/examples/1.9.x/server-go/examples/databases/create-string-attribute.md +++ b/examples/1.9.x/server-go/examples/databases/create-string-attribute.md @@ -3,8 +3,8 @@ package main import ( "fmt" - "github.com/appwrite/sdk-for-go/v5/client" - "github.com/appwrite/sdk-for-go/v5/databases" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/databases" ) client := client.New( diff --git a/examples/1.9.x/server-go/examples/databases/create-text-attribute.md b/examples/1.9.x/server-go/examples/databases/create-text-attribute.md index 6a1074993..7384f2c9a 100644 --- a/examples/1.9.x/server-go/examples/databases/create-text-attribute.md +++ b/examples/1.9.x/server-go/examples/databases/create-text-attribute.md @@ -3,8 +3,8 @@ package main import ( "fmt" - "github.com/appwrite/sdk-for-go/v5/client" - "github.com/appwrite/sdk-for-go/v5/databases" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/databases" ) client := client.New( diff --git a/examples/1.9.x/server-go/examples/databases/create-transaction.md b/examples/1.9.x/server-go/examples/databases/create-transaction.md index 410e6232a..1c28203b1 100644 --- a/examples/1.9.x/server-go/examples/databases/create-transaction.md +++ b/examples/1.9.x/server-go/examples/databases/create-transaction.md @@ -3,8 +3,8 @@ package main import ( "fmt" - "github.com/appwrite/sdk-for-go/v5/client" - "github.com/appwrite/sdk-for-go/v5/databases" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/databases" ) client := client.New( diff --git a/examples/1.9.x/server-go/examples/databases/create-url-attribute.md b/examples/1.9.x/server-go/examples/databases/create-url-attribute.md index 60d2e708b..7d524437c 100644 --- a/examples/1.9.x/server-go/examples/databases/create-url-attribute.md +++ b/examples/1.9.x/server-go/examples/databases/create-url-attribute.md @@ -3,8 +3,8 @@ package main import ( "fmt" - "github.com/appwrite/sdk-for-go/v5/client" - "github.com/appwrite/sdk-for-go/v5/databases" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/databases" ) client := client.New( diff --git a/examples/1.9.x/server-go/examples/databases/create-varchar-attribute.md b/examples/1.9.x/server-go/examples/databases/create-varchar-attribute.md index 556debc93..d21861967 100644 --- a/examples/1.9.x/server-go/examples/databases/create-varchar-attribute.md +++ b/examples/1.9.x/server-go/examples/databases/create-varchar-attribute.md @@ -3,8 +3,8 @@ package main import ( "fmt" - "github.com/appwrite/sdk-for-go/v5/client" - "github.com/appwrite/sdk-for-go/v5/databases" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/databases" ) client := client.New( diff --git a/examples/1.9.x/server-go/examples/databases/create.md b/examples/1.9.x/server-go/examples/databases/create.md index a41baf5a8..36a16abd2 100644 --- a/examples/1.9.x/server-go/examples/databases/create.md +++ b/examples/1.9.x/server-go/examples/databases/create.md @@ -3,8 +3,8 @@ package main import ( "fmt" - "github.com/appwrite/sdk-for-go/v5/client" - "github.com/appwrite/sdk-for-go/v5/databases" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/databases" ) client := client.New( diff --git a/examples/1.9.x/server-go/examples/databases/decrement-document-attribute.md b/examples/1.9.x/server-go/examples/databases/decrement-document-attribute.md index cab7b222f..8194cdaba 100644 --- a/examples/1.9.x/server-go/examples/databases/decrement-document-attribute.md +++ b/examples/1.9.x/server-go/examples/databases/decrement-document-attribute.md @@ -3,8 +3,8 @@ package main import ( "fmt" - "github.com/appwrite/sdk-for-go/v5/client" - "github.com/appwrite/sdk-for-go/v5/databases" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/databases" ) client := client.New( diff --git a/examples/1.9.x/server-go/examples/databases/delete-attribute.md b/examples/1.9.x/server-go/examples/databases/delete-attribute.md index 19cdc2c42..f63c60bfa 100644 --- a/examples/1.9.x/server-go/examples/databases/delete-attribute.md +++ b/examples/1.9.x/server-go/examples/databases/delete-attribute.md @@ -3,8 +3,8 @@ package main import ( "fmt" - "github.com/appwrite/sdk-for-go/v5/client" - "github.com/appwrite/sdk-for-go/v5/databases" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/databases" ) client := client.New( diff --git a/examples/1.9.x/server-go/examples/databases/delete-collection.md b/examples/1.9.x/server-go/examples/databases/delete-collection.md index 150f2585a..afe3b7641 100644 --- a/examples/1.9.x/server-go/examples/databases/delete-collection.md +++ b/examples/1.9.x/server-go/examples/databases/delete-collection.md @@ -3,8 +3,8 @@ package main import ( "fmt" - "github.com/appwrite/sdk-for-go/v5/client" - "github.com/appwrite/sdk-for-go/v5/databases" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/databases" ) client := client.New( diff --git a/examples/1.9.x/server-go/examples/databases/delete-document.md b/examples/1.9.x/server-go/examples/databases/delete-document.md index a2508651e..50ec5fb5d 100644 --- a/examples/1.9.x/server-go/examples/databases/delete-document.md +++ b/examples/1.9.x/server-go/examples/databases/delete-document.md @@ -3,8 +3,8 @@ package main import ( "fmt" - "github.com/appwrite/sdk-for-go/v5/client" - "github.com/appwrite/sdk-for-go/v5/databases" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/databases" ) client := client.New( diff --git a/examples/1.9.x/server-go/examples/databases/delete-documents.md b/examples/1.9.x/server-go/examples/databases/delete-documents.md index c1e11a631..36f765ea6 100644 --- a/examples/1.9.x/server-go/examples/databases/delete-documents.md +++ b/examples/1.9.x/server-go/examples/databases/delete-documents.md @@ -3,8 +3,8 @@ package main import ( "fmt" - "github.com/appwrite/sdk-for-go/v5/client" - "github.com/appwrite/sdk-for-go/v5/databases" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/databases" ) client := client.New( diff --git a/examples/1.9.x/server-go/examples/databases/delete-index.md b/examples/1.9.x/server-go/examples/databases/delete-index.md index f21805111..e1e53c9d5 100644 --- a/examples/1.9.x/server-go/examples/databases/delete-index.md +++ b/examples/1.9.x/server-go/examples/databases/delete-index.md @@ -3,8 +3,8 @@ package main import ( "fmt" - "github.com/appwrite/sdk-for-go/v5/client" - "github.com/appwrite/sdk-for-go/v5/databases" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/databases" ) client := client.New( diff --git a/examples/1.9.x/server-go/examples/databases/delete-transaction.md b/examples/1.9.x/server-go/examples/databases/delete-transaction.md index b33e9caf6..39bdb107d 100644 --- a/examples/1.9.x/server-go/examples/databases/delete-transaction.md +++ b/examples/1.9.x/server-go/examples/databases/delete-transaction.md @@ -3,8 +3,8 @@ package main import ( "fmt" - "github.com/appwrite/sdk-for-go/v5/client" - "github.com/appwrite/sdk-for-go/v5/databases" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/databases" ) client := client.New( diff --git a/examples/1.9.x/server-go/examples/databases/delete.md b/examples/1.9.x/server-go/examples/databases/delete.md index 720be0d2b..fa58a19d1 100644 --- a/examples/1.9.x/server-go/examples/databases/delete.md +++ b/examples/1.9.x/server-go/examples/databases/delete.md @@ -3,8 +3,8 @@ package main import ( "fmt" - "github.com/appwrite/sdk-for-go/v5/client" - "github.com/appwrite/sdk-for-go/v5/databases" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/databases" ) client := client.New( diff --git a/examples/1.9.x/server-go/examples/databases/get-attribute.md b/examples/1.9.x/server-go/examples/databases/get-attribute.md index 9b17f2d84..87592417b 100644 --- a/examples/1.9.x/server-go/examples/databases/get-attribute.md +++ b/examples/1.9.x/server-go/examples/databases/get-attribute.md @@ -3,8 +3,8 @@ package main import ( "fmt" - "github.com/appwrite/sdk-for-go/v5/client" - "github.com/appwrite/sdk-for-go/v5/databases" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/databases" ) client := client.New( diff --git a/examples/1.9.x/server-go/examples/databases/get-collection.md b/examples/1.9.x/server-go/examples/databases/get-collection.md index 7777ef1a9..437eb9218 100644 --- a/examples/1.9.x/server-go/examples/databases/get-collection.md +++ b/examples/1.9.x/server-go/examples/databases/get-collection.md @@ -3,8 +3,8 @@ package main import ( "fmt" - "github.com/appwrite/sdk-for-go/v5/client" - "github.com/appwrite/sdk-for-go/v5/databases" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/databases" ) client := client.New( diff --git a/examples/1.9.x/server-go/examples/databases/get-document.md b/examples/1.9.x/server-go/examples/databases/get-document.md index e43ec606f..36dc0bd6d 100644 --- a/examples/1.9.x/server-go/examples/databases/get-document.md +++ b/examples/1.9.x/server-go/examples/databases/get-document.md @@ -3,8 +3,8 @@ package main import ( "fmt" - "github.com/appwrite/sdk-for-go/v5/client" - "github.com/appwrite/sdk-for-go/v5/databases" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/databases" ) client := client.New( diff --git a/examples/1.9.x/server-go/examples/databases/get-index.md b/examples/1.9.x/server-go/examples/databases/get-index.md index 90d6333ed..cc1e616f4 100644 --- a/examples/1.9.x/server-go/examples/databases/get-index.md +++ b/examples/1.9.x/server-go/examples/databases/get-index.md @@ -3,8 +3,8 @@ package main import ( "fmt" - "github.com/appwrite/sdk-for-go/v5/client" - "github.com/appwrite/sdk-for-go/v5/databases" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/databases" ) client := client.New( diff --git a/examples/1.9.x/server-go/examples/databases/get-transaction.md b/examples/1.9.x/server-go/examples/databases/get-transaction.md index 651578cb8..4026bd2f9 100644 --- a/examples/1.9.x/server-go/examples/databases/get-transaction.md +++ b/examples/1.9.x/server-go/examples/databases/get-transaction.md @@ -3,8 +3,8 @@ package main import ( "fmt" - "github.com/appwrite/sdk-for-go/v5/client" - "github.com/appwrite/sdk-for-go/v5/databases" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/databases" ) client := client.New( diff --git a/examples/1.9.x/server-go/examples/databases/get.md b/examples/1.9.x/server-go/examples/databases/get.md index 8e4fad519..90bfabf5e 100644 --- a/examples/1.9.x/server-go/examples/databases/get.md +++ b/examples/1.9.x/server-go/examples/databases/get.md @@ -3,8 +3,8 @@ package main import ( "fmt" - "github.com/appwrite/sdk-for-go/v5/client" - "github.com/appwrite/sdk-for-go/v5/databases" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/databases" ) client := client.New( diff --git a/examples/1.9.x/server-go/examples/databases/increment-document-attribute.md b/examples/1.9.x/server-go/examples/databases/increment-document-attribute.md index aa1c3858d..f88be93bb 100644 --- a/examples/1.9.x/server-go/examples/databases/increment-document-attribute.md +++ b/examples/1.9.x/server-go/examples/databases/increment-document-attribute.md @@ -3,8 +3,8 @@ package main import ( "fmt" - "github.com/appwrite/sdk-for-go/v5/client" - "github.com/appwrite/sdk-for-go/v5/databases" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/databases" ) client := client.New( diff --git a/examples/1.9.x/server-go/examples/databases/list-attributes.md b/examples/1.9.x/server-go/examples/databases/list-attributes.md index 9269e6841..af1179890 100644 --- a/examples/1.9.x/server-go/examples/databases/list-attributes.md +++ b/examples/1.9.x/server-go/examples/databases/list-attributes.md @@ -3,8 +3,8 @@ package main import ( "fmt" - "github.com/appwrite/sdk-for-go/v5/client" - "github.com/appwrite/sdk-for-go/v5/databases" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/databases" ) client := client.New( diff --git a/examples/1.9.x/server-go/examples/databases/list-collections.md b/examples/1.9.x/server-go/examples/databases/list-collections.md index a79199493..3eb31994e 100644 --- a/examples/1.9.x/server-go/examples/databases/list-collections.md +++ b/examples/1.9.x/server-go/examples/databases/list-collections.md @@ -3,8 +3,8 @@ package main import ( "fmt" - "github.com/appwrite/sdk-for-go/v5/client" - "github.com/appwrite/sdk-for-go/v5/databases" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/databases" ) client := client.New( diff --git a/examples/1.9.x/server-go/examples/databases/list-documents.md b/examples/1.9.x/server-go/examples/databases/list-documents.md index 813425d42..9022a3353 100644 --- a/examples/1.9.x/server-go/examples/databases/list-documents.md +++ b/examples/1.9.x/server-go/examples/databases/list-documents.md @@ -3,8 +3,8 @@ package main import ( "fmt" - "github.com/appwrite/sdk-for-go/v5/client" - "github.com/appwrite/sdk-for-go/v5/databases" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/databases" ) client := client.New( diff --git a/examples/1.9.x/server-go/examples/databases/list-indexes.md b/examples/1.9.x/server-go/examples/databases/list-indexes.md index c40153696..87d114fe2 100644 --- a/examples/1.9.x/server-go/examples/databases/list-indexes.md +++ b/examples/1.9.x/server-go/examples/databases/list-indexes.md @@ -3,8 +3,8 @@ package main import ( "fmt" - "github.com/appwrite/sdk-for-go/v5/client" - "github.com/appwrite/sdk-for-go/v5/databases" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/databases" ) client := client.New( diff --git a/examples/1.9.x/server-go/examples/databases/list-transactions.md b/examples/1.9.x/server-go/examples/databases/list-transactions.md index 4e90044cb..61fb72bc8 100644 --- a/examples/1.9.x/server-go/examples/databases/list-transactions.md +++ b/examples/1.9.x/server-go/examples/databases/list-transactions.md @@ -3,8 +3,8 @@ package main import ( "fmt" - "github.com/appwrite/sdk-for-go/v5/client" - "github.com/appwrite/sdk-for-go/v5/databases" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/databases" ) client := client.New( diff --git a/examples/1.9.x/server-go/examples/databases/list.md b/examples/1.9.x/server-go/examples/databases/list.md index db1c33481..5c656f64f 100644 --- a/examples/1.9.x/server-go/examples/databases/list.md +++ b/examples/1.9.x/server-go/examples/databases/list.md @@ -3,8 +3,8 @@ package main import ( "fmt" - "github.com/appwrite/sdk-for-go/v5/client" - "github.com/appwrite/sdk-for-go/v5/databases" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/databases" ) client := client.New( diff --git a/examples/1.9.x/server-go/examples/databases/update-big-int-attribute.md b/examples/1.9.x/server-go/examples/databases/update-big-int-attribute.md index 0d3c454d4..2158352be 100644 --- a/examples/1.9.x/server-go/examples/databases/update-big-int-attribute.md +++ b/examples/1.9.x/server-go/examples/databases/update-big-int-attribute.md @@ -3,8 +3,8 @@ package main import ( "fmt" - "github.com/appwrite/sdk-for-go/v5/client" - "github.com/appwrite/sdk-for-go/v5/databases" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/databases" ) client := client.New( diff --git a/examples/1.9.x/server-go/examples/databases/update-boolean-attribute.md b/examples/1.9.x/server-go/examples/databases/update-boolean-attribute.md index ab3aa1b6d..10af5d49f 100644 --- a/examples/1.9.x/server-go/examples/databases/update-boolean-attribute.md +++ b/examples/1.9.x/server-go/examples/databases/update-boolean-attribute.md @@ -3,8 +3,8 @@ package main import ( "fmt" - "github.com/appwrite/sdk-for-go/v5/client" - "github.com/appwrite/sdk-for-go/v5/databases" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/databases" ) client := client.New( diff --git a/examples/1.9.x/server-go/examples/databases/update-collection.md b/examples/1.9.x/server-go/examples/databases/update-collection.md index 2fe288aa6..7f610f168 100644 --- a/examples/1.9.x/server-go/examples/databases/update-collection.md +++ b/examples/1.9.x/server-go/examples/databases/update-collection.md @@ -3,8 +3,8 @@ package main import ( "fmt" - "github.com/appwrite/sdk-for-go/v5/client" - "github.com/appwrite/sdk-for-go/v5/databases" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/databases" ) client := client.New( diff --git a/examples/1.9.x/server-go/examples/databases/update-datetime-attribute.md b/examples/1.9.x/server-go/examples/databases/update-datetime-attribute.md index eafd3a77e..1e6b7b547 100644 --- a/examples/1.9.x/server-go/examples/databases/update-datetime-attribute.md +++ b/examples/1.9.x/server-go/examples/databases/update-datetime-attribute.md @@ -3,8 +3,8 @@ package main import ( "fmt" - "github.com/appwrite/sdk-for-go/v5/client" - "github.com/appwrite/sdk-for-go/v5/databases" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/databases" ) client := client.New( diff --git a/examples/1.9.x/server-go/examples/databases/update-document.md b/examples/1.9.x/server-go/examples/databases/update-document.md index 9357db024..bb3edbd83 100644 --- a/examples/1.9.x/server-go/examples/databases/update-document.md +++ b/examples/1.9.x/server-go/examples/databases/update-document.md @@ -3,8 +3,8 @@ package main import ( "fmt" - "github.com/appwrite/sdk-for-go/v5/client" - "github.com/appwrite/sdk-for-go/v5/databases" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/databases" ) client := client.New( diff --git a/examples/1.9.x/server-go/examples/databases/update-documents.md b/examples/1.9.x/server-go/examples/databases/update-documents.md index da99217d7..9c5b469e0 100644 --- a/examples/1.9.x/server-go/examples/databases/update-documents.md +++ b/examples/1.9.x/server-go/examples/databases/update-documents.md @@ -3,8 +3,8 @@ package main import ( "fmt" - "github.com/appwrite/sdk-for-go/v5/client" - "github.com/appwrite/sdk-for-go/v5/databases" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/databases" ) client := client.New( diff --git a/examples/1.9.x/server-go/examples/databases/update-email-attribute.md b/examples/1.9.x/server-go/examples/databases/update-email-attribute.md index b1e90190f..7094367ca 100644 --- a/examples/1.9.x/server-go/examples/databases/update-email-attribute.md +++ b/examples/1.9.x/server-go/examples/databases/update-email-attribute.md @@ -3,8 +3,8 @@ package main import ( "fmt" - "github.com/appwrite/sdk-for-go/v5/client" - "github.com/appwrite/sdk-for-go/v5/databases" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/databases" ) client := client.New( diff --git a/examples/1.9.x/server-go/examples/databases/update-enum-attribute.md b/examples/1.9.x/server-go/examples/databases/update-enum-attribute.md index c56645b8e..5c51333be 100644 --- a/examples/1.9.x/server-go/examples/databases/update-enum-attribute.md +++ b/examples/1.9.x/server-go/examples/databases/update-enum-attribute.md @@ -3,8 +3,8 @@ package main import ( "fmt" - "github.com/appwrite/sdk-for-go/v5/client" - "github.com/appwrite/sdk-for-go/v5/databases" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/databases" ) client := client.New( diff --git a/examples/1.9.x/server-go/examples/databases/update-float-attribute.md b/examples/1.9.x/server-go/examples/databases/update-float-attribute.md index 2c02d5cf4..be6acb9f3 100644 --- a/examples/1.9.x/server-go/examples/databases/update-float-attribute.md +++ b/examples/1.9.x/server-go/examples/databases/update-float-attribute.md @@ -3,8 +3,8 @@ package main import ( "fmt" - "github.com/appwrite/sdk-for-go/v5/client" - "github.com/appwrite/sdk-for-go/v5/databases" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/databases" ) client := client.New( diff --git a/examples/1.9.x/server-go/examples/databases/update-integer-attribute.md b/examples/1.9.x/server-go/examples/databases/update-integer-attribute.md index 52f7461cf..6067f7d3e 100644 --- a/examples/1.9.x/server-go/examples/databases/update-integer-attribute.md +++ b/examples/1.9.x/server-go/examples/databases/update-integer-attribute.md @@ -3,8 +3,8 @@ package main import ( "fmt" - "github.com/appwrite/sdk-for-go/v5/client" - "github.com/appwrite/sdk-for-go/v5/databases" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/databases" ) client := client.New( diff --git a/examples/1.9.x/server-go/examples/databases/update-ip-attribute.md b/examples/1.9.x/server-go/examples/databases/update-ip-attribute.md index d21c4ca54..b785d3e7c 100644 --- a/examples/1.9.x/server-go/examples/databases/update-ip-attribute.md +++ b/examples/1.9.x/server-go/examples/databases/update-ip-attribute.md @@ -3,8 +3,8 @@ package main import ( "fmt" - "github.com/appwrite/sdk-for-go/v5/client" - "github.com/appwrite/sdk-for-go/v5/databases" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/databases" ) client := client.New( diff --git a/examples/1.9.x/server-go/examples/databases/update-line-attribute.md b/examples/1.9.x/server-go/examples/databases/update-line-attribute.md index b473e1a80..1d9a69e3e 100644 --- a/examples/1.9.x/server-go/examples/databases/update-line-attribute.md +++ b/examples/1.9.x/server-go/examples/databases/update-line-attribute.md @@ -3,8 +3,8 @@ package main import ( "fmt" - "github.com/appwrite/sdk-for-go/v5/client" - "github.com/appwrite/sdk-for-go/v5/databases" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/databases" ) client := client.New( diff --git a/examples/1.9.x/server-go/examples/databases/update-longtext-attribute.md b/examples/1.9.x/server-go/examples/databases/update-longtext-attribute.md index f27d533d9..62ccd2167 100644 --- a/examples/1.9.x/server-go/examples/databases/update-longtext-attribute.md +++ b/examples/1.9.x/server-go/examples/databases/update-longtext-attribute.md @@ -3,8 +3,8 @@ package main import ( "fmt" - "github.com/appwrite/sdk-for-go/v5/client" - "github.com/appwrite/sdk-for-go/v5/databases" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/databases" ) client := client.New( diff --git a/examples/1.9.x/server-go/examples/databases/update-mediumtext-attribute.md b/examples/1.9.x/server-go/examples/databases/update-mediumtext-attribute.md index 3d4961993..ab2002075 100644 --- a/examples/1.9.x/server-go/examples/databases/update-mediumtext-attribute.md +++ b/examples/1.9.x/server-go/examples/databases/update-mediumtext-attribute.md @@ -3,8 +3,8 @@ package main import ( "fmt" - "github.com/appwrite/sdk-for-go/v5/client" - "github.com/appwrite/sdk-for-go/v5/databases" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/databases" ) client := client.New( diff --git a/examples/1.9.x/server-go/examples/databases/update-point-attribute.md b/examples/1.9.x/server-go/examples/databases/update-point-attribute.md index 3456b1795..7733d0ff8 100644 --- a/examples/1.9.x/server-go/examples/databases/update-point-attribute.md +++ b/examples/1.9.x/server-go/examples/databases/update-point-attribute.md @@ -3,8 +3,8 @@ package main import ( "fmt" - "github.com/appwrite/sdk-for-go/v5/client" - "github.com/appwrite/sdk-for-go/v5/databases" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/databases" ) client := client.New( diff --git a/examples/1.9.x/server-go/examples/databases/update-polygon-attribute.md b/examples/1.9.x/server-go/examples/databases/update-polygon-attribute.md index 75b8cc754..171283e66 100644 --- a/examples/1.9.x/server-go/examples/databases/update-polygon-attribute.md +++ b/examples/1.9.x/server-go/examples/databases/update-polygon-attribute.md @@ -3,8 +3,8 @@ package main import ( "fmt" - "github.com/appwrite/sdk-for-go/v5/client" - "github.com/appwrite/sdk-for-go/v5/databases" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/databases" ) client := client.New( diff --git a/examples/1.9.x/server-go/examples/databases/update-relationship-attribute.md b/examples/1.9.x/server-go/examples/databases/update-relationship-attribute.md index 7ef894ef6..2e3288349 100644 --- a/examples/1.9.x/server-go/examples/databases/update-relationship-attribute.md +++ b/examples/1.9.x/server-go/examples/databases/update-relationship-attribute.md @@ -3,8 +3,8 @@ package main import ( "fmt" - "github.com/appwrite/sdk-for-go/v5/client" - "github.com/appwrite/sdk-for-go/v5/databases" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/databases" ) client := client.New( diff --git a/examples/1.9.x/server-go/examples/databases/update-string-attribute.md b/examples/1.9.x/server-go/examples/databases/update-string-attribute.md index a3949812f..4907bcbd3 100644 --- a/examples/1.9.x/server-go/examples/databases/update-string-attribute.md +++ b/examples/1.9.x/server-go/examples/databases/update-string-attribute.md @@ -3,8 +3,8 @@ package main import ( "fmt" - "github.com/appwrite/sdk-for-go/v5/client" - "github.com/appwrite/sdk-for-go/v5/databases" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/databases" ) client := client.New( diff --git a/examples/1.9.x/server-go/examples/databases/update-text-attribute.md b/examples/1.9.x/server-go/examples/databases/update-text-attribute.md index 7fe9a6bd5..f48057c27 100644 --- a/examples/1.9.x/server-go/examples/databases/update-text-attribute.md +++ b/examples/1.9.x/server-go/examples/databases/update-text-attribute.md @@ -3,8 +3,8 @@ package main import ( "fmt" - "github.com/appwrite/sdk-for-go/v5/client" - "github.com/appwrite/sdk-for-go/v5/databases" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/databases" ) client := client.New( diff --git a/examples/1.9.x/server-go/examples/databases/update-transaction.md b/examples/1.9.x/server-go/examples/databases/update-transaction.md index cca98fbe8..ef5931db2 100644 --- a/examples/1.9.x/server-go/examples/databases/update-transaction.md +++ b/examples/1.9.x/server-go/examples/databases/update-transaction.md @@ -3,8 +3,8 @@ package main import ( "fmt" - "github.com/appwrite/sdk-for-go/v5/client" - "github.com/appwrite/sdk-for-go/v5/databases" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/databases" ) client := client.New( diff --git a/examples/1.9.x/server-go/examples/databases/update-url-attribute.md b/examples/1.9.x/server-go/examples/databases/update-url-attribute.md index 9c6c1fd73..a13549bee 100644 --- a/examples/1.9.x/server-go/examples/databases/update-url-attribute.md +++ b/examples/1.9.x/server-go/examples/databases/update-url-attribute.md @@ -3,8 +3,8 @@ package main import ( "fmt" - "github.com/appwrite/sdk-for-go/v5/client" - "github.com/appwrite/sdk-for-go/v5/databases" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/databases" ) client := client.New( diff --git a/examples/1.9.x/server-go/examples/databases/update-varchar-attribute.md b/examples/1.9.x/server-go/examples/databases/update-varchar-attribute.md index 3c360a96d..5d8bd6533 100644 --- a/examples/1.9.x/server-go/examples/databases/update-varchar-attribute.md +++ b/examples/1.9.x/server-go/examples/databases/update-varchar-attribute.md @@ -3,8 +3,8 @@ package main import ( "fmt" - "github.com/appwrite/sdk-for-go/v5/client" - "github.com/appwrite/sdk-for-go/v5/databases" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/databases" ) client := client.New( diff --git a/examples/1.9.x/server-go/examples/databases/update.md b/examples/1.9.x/server-go/examples/databases/update.md index 1c2651545..cc62f41c0 100644 --- a/examples/1.9.x/server-go/examples/databases/update.md +++ b/examples/1.9.x/server-go/examples/databases/update.md @@ -3,8 +3,8 @@ package main import ( "fmt" - "github.com/appwrite/sdk-for-go/v5/client" - "github.com/appwrite/sdk-for-go/v5/databases" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/databases" ) client := client.New( diff --git a/examples/1.9.x/server-go/examples/databases/upsert-document.md b/examples/1.9.x/server-go/examples/databases/upsert-document.md index 6c0c89b12..611c05b3c 100644 --- a/examples/1.9.x/server-go/examples/databases/upsert-document.md +++ b/examples/1.9.x/server-go/examples/databases/upsert-document.md @@ -3,8 +3,8 @@ package main import ( "fmt" - "github.com/appwrite/sdk-for-go/v5/client" - "github.com/appwrite/sdk-for-go/v5/databases" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/databases" ) client := client.New( diff --git a/examples/1.9.x/server-go/examples/databases/upsert-documents.md b/examples/1.9.x/server-go/examples/databases/upsert-documents.md index f1d35f9a9..b4ef71e74 100644 --- a/examples/1.9.x/server-go/examples/databases/upsert-documents.md +++ b/examples/1.9.x/server-go/examples/databases/upsert-documents.md @@ -3,8 +3,8 @@ package main import ( "fmt" - "github.com/appwrite/sdk-for-go/v5/client" - "github.com/appwrite/sdk-for-go/v5/databases" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/databases" ) client := client.New( diff --git a/examples/1.9.x/server-go/examples/functions/create-deployment.md b/examples/1.9.x/server-go/examples/functions/create-deployment.md index c2b921329..e8dbea4db 100644 --- a/examples/1.9.x/server-go/examples/functions/create-deployment.md +++ b/examples/1.9.x/server-go/examples/functions/create-deployment.md @@ -3,8 +3,8 @@ package main import ( "fmt" - "github.com/appwrite/sdk-for-go/v5/client" - "github.com/appwrite/sdk-for-go/v5/functions" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/functions" ) client := client.New( diff --git a/examples/1.9.x/server-go/examples/functions/create-duplicate-deployment.md b/examples/1.9.x/server-go/examples/functions/create-duplicate-deployment.md index 1c250b9fb..1a47bd083 100644 --- a/examples/1.9.x/server-go/examples/functions/create-duplicate-deployment.md +++ b/examples/1.9.x/server-go/examples/functions/create-duplicate-deployment.md @@ -3,8 +3,8 @@ package main import ( "fmt" - "github.com/appwrite/sdk-for-go/v5/client" - "github.com/appwrite/sdk-for-go/v5/functions" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/functions" ) client := client.New( diff --git a/examples/1.9.x/server-go/examples/functions/create-execution.md b/examples/1.9.x/server-go/examples/functions/create-execution.md index 90697f477..e91410cbc 100644 --- a/examples/1.9.x/server-go/examples/functions/create-execution.md +++ b/examples/1.9.x/server-go/examples/functions/create-execution.md @@ -3,8 +3,8 @@ package main import ( "fmt" - "github.com/appwrite/sdk-for-go/v5/client" - "github.com/appwrite/sdk-for-go/v5/functions" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/functions" ) client := client.New( diff --git a/examples/1.9.x/server-go/examples/functions/create-template-deployment.md b/examples/1.9.x/server-go/examples/functions/create-template-deployment.md index e5609f287..fd0c50484 100644 --- a/examples/1.9.x/server-go/examples/functions/create-template-deployment.md +++ b/examples/1.9.x/server-go/examples/functions/create-template-deployment.md @@ -3,8 +3,8 @@ package main import ( "fmt" - "github.com/appwrite/sdk-for-go/v5/client" - "github.com/appwrite/sdk-for-go/v5/functions" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/functions" ) client := client.New( diff --git a/examples/1.9.x/server-go/examples/functions/create-variable.md b/examples/1.9.x/server-go/examples/functions/create-variable.md index 0ca38f211..9cc09b021 100644 --- a/examples/1.9.x/server-go/examples/functions/create-variable.md +++ b/examples/1.9.x/server-go/examples/functions/create-variable.md @@ -3,8 +3,8 @@ package main import ( "fmt" - "github.com/appwrite/sdk-for-go/v5/client" - "github.com/appwrite/sdk-for-go/v5/functions" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/functions" ) client := client.New( diff --git a/examples/1.9.x/server-go/examples/functions/create-vcs-deployment.md b/examples/1.9.x/server-go/examples/functions/create-vcs-deployment.md index 9c9b79ad2..cc992e0f0 100644 --- a/examples/1.9.x/server-go/examples/functions/create-vcs-deployment.md +++ b/examples/1.9.x/server-go/examples/functions/create-vcs-deployment.md @@ -3,8 +3,8 @@ package main import ( "fmt" - "github.com/appwrite/sdk-for-go/v5/client" - "github.com/appwrite/sdk-for-go/v5/functions" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/functions" ) client := client.New( diff --git a/examples/1.9.x/server-go/examples/functions/create.md b/examples/1.9.x/server-go/examples/functions/create.md index e762387aa..242f73758 100644 --- a/examples/1.9.x/server-go/examples/functions/create.md +++ b/examples/1.9.x/server-go/examples/functions/create.md @@ -3,8 +3,8 @@ package main import ( "fmt" - "github.com/appwrite/sdk-for-go/v5/client" - "github.com/appwrite/sdk-for-go/v5/functions" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/functions" ) client := client.New( diff --git a/examples/1.9.x/server-go/examples/functions/delete-deployment.md b/examples/1.9.x/server-go/examples/functions/delete-deployment.md index ec7fef5a8..2b158c98f 100644 --- a/examples/1.9.x/server-go/examples/functions/delete-deployment.md +++ b/examples/1.9.x/server-go/examples/functions/delete-deployment.md @@ -3,8 +3,8 @@ package main import ( "fmt" - "github.com/appwrite/sdk-for-go/v5/client" - "github.com/appwrite/sdk-for-go/v5/functions" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/functions" ) client := client.New( diff --git a/examples/1.9.x/server-go/examples/functions/delete-execution.md b/examples/1.9.x/server-go/examples/functions/delete-execution.md index 04fe7edc3..e3112970d 100644 --- a/examples/1.9.x/server-go/examples/functions/delete-execution.md +++ b/examples/1.9.x/server-go/examples/functions/delete-execution.md @@ -3,8 +3,8 @@ package main import ( "fmt" - "github.com/appwrite/sdk-for-go/v5/client" - "github.com/appwrite/sdk-for-go/v5/functions" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/functions" ) client := client.New( diff --git a/examples/1.9.x/server-go/examples/functions/delete-variable.md b/examples/1.9.x/server-go/examples/functions/delete-variable.md index b33c94795..881bc1bff 100644 --- a/examples/1.9.x/server-go/examples/functions/delete-variable.md +++ b/examples/1.9.x/server-go/examples/functions/delete-variable.md @@ -3,8 +3,8 @@ package main import ( "fmt" - "github.com/appwrite/sdk-for-go/v5/client" - "github.com/appwrite/sdk-for-go/v5/functions" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/functions" ) client := client.New( diff --git a/examples/1.9.x/server-go/examples/functions/delete.md b/examples/1.9.x/server-go/examples/functions/delete.md index 178664472..75d7eba9e 100644 --- a/examples/1.9.x/server-go/examples/functions/delete.md +++ b/examples/1.9.x/server-go/examples/functions/delete.md @@ -3,8 +3,8 @@ package main import ( "fmt" - "github.com/appwrite/sdk-for-go/v5/client" - "github.com/appwrite/sdk-for-go/v5/functions" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/functions" ) client := client.New( diff --git a/examples/1.9.x/server-go/examples/functions/get-deployment-download.md b/examples/1.9.x/server-go/examples/functions/get-deployment-download.md index 965670cf9..db77fc541 100644 --- a/examples/1.9.x/server-go/examples/functions/get-deployment-download.md +++ b/examples/1.9.x/server-go/examples/functions/get-deployment-download.md @@ -3,8 +3,8 @@ package main import ( "fmt" - "github.com/appwrite/sdk-for-go/v5/client" - "github.com/appwrite/sdk-for-go/v5/functions" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/functions" ) client := client.New( @@ -19,5 +19,6 @@ response, error := service.GetDeploymentDownload( "", "", functions.WithGetDeploymentDownloadType("source"), + functions.WithGetDeploymentDownloadToken(""), ) ``` diff --git a/examples/1.9.x/server-go/examples/functions/get-deployment.md b/examples/1.9.x/server-go/examples/functions/get-deployment.md index 09b4a1b16..7e4cc4c98 100644 --- a/examples/1.9.x/server-go/examples/functions/get-deployment.md +++ b/examples/1.9.x/server-go/examples/functions/get-deployment.md @@ -3,8 +3,8 @@ package main import ( "fmt" - "github.com/appwrite/sdk-for-go/v5/client" - "github.com/appwrite/sdk-for-go/v5/functions" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/functions" ) client := client.New( diff --git a/examples/1.9.x/server-go/examples/functions/get-execution.md b/examples/1.9.x/server-go/examples/functions/get-execution.md index e6b5c0af7..1248c11b9 100644 --- a/examples/1.9.x/server-go/examples/functions/get-execution.md +++ b/examples/1.9.x/server-go/examples/functions/get-execution.md @@ -3,8 +3,8 @@ package main import ( "fmt" - "github.com/appwrite/sdk-for-go/v5/client" - "github.com/appwrite/sdk-for-go/v5/functions" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/functions" ) client := client.New( diff --git a/examples/1.9.x/server-go/examples/functions/get-variable.md b/examples/1.9.x/server-go/examples/functions/get-variable.md index 33bc5df36..099f849e8 100644 --- a/examples/1.9.x/server-go/examples/functions/get-variable.md +++ b/examples/1.9.x/server-go/examples/functions/get-variable.md @@ -3,8 +3,8 @@ package main import ( "fmt" - "github.com/appwrite/sdk-for-go/v5/client" - "github.com/appwrite/sdk-for-go/v5/functions" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/functions" ) client := client.New( diff --git a/examples/1.9.x/server-go/examples/functions/get.md b/examples/1.9.x/server-go/examples/functions/get.md index 83bdc4da4..5b62451e3 100644 --- a/examples/1.9.x/server-go/examples/functions/get.md +++ b/examples/1.9.x/server-go/examples/functions/get.md @@ -3,8 +3,8 @@ package main import ( "fmt" - "github.com/appwrite/sdk-for-go/v5/client" - "github.com/appwrite/sdk-for-go/v5/functions" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/functions" ) client := client.New( diff --git a/examples/1.9.x/server-go/examples/functions/list-deployments.md b/examples/1.9.x/server-go/examples/functions/list-deployments.md index da4aa742e..be6ff82fb 100644 --- a/examples/1.9.x/server-go/examples/functions/list-deployments.md +++ b/examples/1.9.x/server-go/examples/functions/list-deployments.md @@ -3,8 +3,8 @@ package main import ( "fmt" - "github.com/appwrite/sdk-for-go/v5/client" - "github.com/appwrite/sdk-for-go/v5/functions" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/functions" ) client := client.New( diff --git a/examples/1.9.x/server-go/examples/functions/list-executions.md b/examples/1.9.x/server-go/examples/functions/list-executions.md index 8096bb19c..1194ab813 100644 --- a/examples/1.9.x/server-go/examples/functions/list-executions.md +++ b/examples/1.9.x/server-go/examples/functions/list-executions.md @@ -3,8 +3,8 @@ package main import ( "fmt" - "github.com/appwrite/sdk-for-go/v5/client" - "github.com/appwrite/sdk-for-go/v5/functions" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/functions" ) client := client.New( diff --git a/examples/1.9.x/server-go/examples/functions/list-runtimes.md b/examples/1.9.x/server-go/examples/functions/list-runtimes.md index 61b1157c0..9b43677aa 100644 --- a/examples/1.9.x/server-go/examples/functions/list-runtimes.md +++ b/examples/1.9.x/server-go/examples/functions/list-runtimes.md @@ -3,8 +3,8 @@ package main import ( "fmt" - "github.com/appwrite/sdk-for-go/v5/client" - "github.com/appwrite/sdk-for-go/v5/functions" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/functions" ) client := client.New( diff --git a/examples/1.9.x/server-go/examples/functions/list-specifications.md b/examples/1.9.x/server-go/examples/functions/list-specifications.md index dcbe95a95..22a3f5e25 100644 --- a/examples/1.9.x/server-go/examples/functions/list-specifications.md +++ b/examples/1.9.x/server-go/examples/functions/list-specifications.md @@ -3,8 +3,8 @@ package main import ( "fmt" - "github.com/appwrite/sdk-for-go/v5/client" - "github.com/appwrite/sdk-for-go/v5/functions" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/functions" ) client := client.New( diff --git a/examples/1.9.x/server-go/examples/functions/list-variables.md b/examples/1.9.x/server-go/examples/functions/list-variables.md index 777e5c67c..e4d25ad09 100644 --- a/examples/1.9.x/server-go/examples/functions/list-variables.md +++ b/examples/1.9.x/server-go/examples/functions/list-variables.md @@ -3,8 +3,8 @@ package main import ( "fmt" - "github.com/appwrite/sdk-for-go/v5/client" - "github.com/appwrite/sdk-for-go/v5/functions" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/functions" ) client := client.New( diff --git a/examples/1.9.x/server-go/examples/functions/list.md b/examples/1.9.x/server-go/examples/functions/list.md index d20718fda..46a89049d 100644 --- a/examples/1.9.x/server-go/examples/functions/list.md +++ b/examples/1.9.x/server-go/examples/functions/list.md @@ -3,8 +3,8 @@ package main import ( "fmt" - "github.com/appwrite/sdk-for-go/v5/client" - "github.com/appwrite/sdk-for-go/v5/functions" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/functions" ) client := client.New( diff --git a/examples/1.9.x/server-go/examples/functions/update-deployment-status.md b/examples/1.9.x/server-go/examples/functions/update-deployment-status.md index c118a1338..ef64cc6ac 100644 --- a/examples/1.9.x/server-go/examples/functions/update-deployment-status.md +++ b/examples/1.9.x/server-go/examples/functions/update-deployment-status.md @@ -3,8 +3,8 @@ package main import ( "fmt" - "github.com/appwrite/sdk-for-go/v5/client" - "github.com/appwrite/sdk-for-go/v5/functions" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/functions" ) client := client.New( diff --git a/examples/1.9.x/server-go/examples/functions/update-function-deployment.md b/examples/1.9.x/server-go/examples/functions/update-function-deployment.md index 81195b2e9..65e6e480f 100644 --- a/examples/1.9.x/server-go/examples/functions/update-function-deployment.md +++ b/examples/1.9.x/server-go/examples/functions/update-function-deployment.md @@ -3,8 +3,8 @@ package main import ( "fmt" - "github.com/appwrite/sdk-for-go/v5/client" - "github.com/appwrite/sdk-for-go/v5/functions" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/functions" ) client := client.New( diff --git a/examples/1.9.x/server-go/examples/functions/update-variable.md b/examples/1.9.x/server-go/examples/functions/update-variable.md index 4b3f26858..73974ab9e 100644 --- a/examples/1.9.x/server-go/examples/functions/update-variable.md +++ b/examples/1.9.x/server-go/examples/functions/update-variable.md @@ -3,8 +3,8 @@ package main import ( "fmt" - "github.com/appwrite/sdk-for-go/v5/client" - "github.com/appwrite/sdk-for-go/v5/functions" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/functions" ) client := client.New( diff --git a/examples/1.9.x/server-go/examples/functions/update.md b/examples/1.9.x/server-go/examples/functions/update.md index 74ea24883..c54788431 100644 --- a/examples/1.9.x/server-go/examples/functions/update.md +++ b/examples/1.9.x/server-go/examples/functions/update.md @@ -3,8 +3,8 @@ package main import ( "fmt" - "github.com/appwrite/sdk-for-go/v5/client" - "github.com/appwrite/sdk-for-go/v5/functions" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/functions" ) client := client.New( diff --git a/examples/1.9.x/server-go/examples/graphql/mutation.md b/examples/1.9.x/server-go/examples/graphql/mutation.md index b7e94ecdd..91a656f08 100644 --- a/examples/1.9.x/server-go/examples/graphql/mutation.md +++ b/examples/1.9.x/server-go/examples/graphql/mutation.md @@ -3,8 +3,8 @@ package main import ( "fmt" - "github.com/appwrite/sdk-for-go/v5/client" - "github.com/appwrite/sdk-for-go/v5/graphql" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/graphql" ) client := client.New( diff --git a/examples/1.9.x/server-go/examples/graphql/query.md b/examples/1.9.x/server-go/examples/graphql/query.md index af59062bd..2336f5d3b 100644 --- a/examples/1.9.x/server-go/examples/graphql/query.md +++ b/examples/1.9.x/server-go/examples/graphql/query.md @@ -3,8 +3,8 @@ package main import ( "fmt" - "github.com/appwrite/sdk-for-go/v5/client" - "github.com/appwrite/sdk-for-go/v5/graphql" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/graphql" ) client := client.New( diff --git a/examples/1.9.x/server-go/examples/health/get-geo-premium.md b/examples/1.9.x/server-go/examples/health/get-geo-premium.md new file mode 100644 index 000000000..451f54cc4 --- /dev/null +++ b/examples/1.9.x/server-go/examples/health/get-geo-premium.md @@ -0,0 +1,19 @@ +```go +package main + +import ( + "fmt" + "github.com/appwrite/sdk-for-go/v5/client" + "github.com/appwrite/sdk-for-go/v5/health" +) + +client := client.New( + client.WithEndpoint("https://.cloud.appwrite.io/v1") + client.WithProject("") + client.WithKey("") +) + +service := health.New(client) + +response, error := service.GetGeoPremium()) +``` diff --git a/examples/1.9.x/server-go/examples/health/get-geo.md b/examples/1.9.x/server-go/examples/health/get-geo.md new file mode 100644 index 000000000..51ca92ef7 --- /dev/null +++ b/examples/1.9.x/server-go/examples/health/get-geo.md @@ -0,0 +1,19 @@ +```go +package main + +import ( + "fmt" + "github.com/appwrite/sdk-for-go/v5/client" + "github.com/appwrite/sdk-for-go/v5/health" +) + +client := client.New( + client.WithEndpoint("https://.cloud.appwrite.io/v1") + client.WithProject("") + client.WithKey("") +) + +service := health.New(client) + +response, error := service.GetGeo()) +``` diff --git a/examples/1.9.x/server-go/examples/health/get-queue-notifications.md b/examples/1.9.x/server-go/examples/health/get-queue-notifications.md new file mode 100644 index 000000000..85367cce3 --- /dev/null +++ b/examples/1.9.x/server-go/examples/health/get-queue-notifications.md @@ -0,0 +1,21 @@ +```go +package main + +import ( + "fmt" + "github.com/appwrite/sdk-for-go/v5/client" + "github.com/appwrite/sdk-for-go/v5/health" +) + +client := client.New( + client.WithEndpoint("https://.cloud.appwrite.io/v1") + client.WithProject("") + client.WithKey("") +) + +service := health.New(client) + +response, error := service.GetQueueNotifications( + health.WithGetQueueNotificationsThreshold(0), +) +``` diff --git a/examples/1.9.x/server-go/examples/locale/get.md b/examples/1.9.x/server-go/examples/locale/get.md index dc2f394c0..432b6f8b9 100644 --- a/examples/1.9.x/server-go/examples/locale/get.md +++ b/examples/1.9.x/server-go/examples/locale/get.md @@ -3,8 +3,8 @@ package main import ( "fmt" - "github.com/appwrite/sdk-for-go/v5/client" - "github.com/appwrite/sdk-for-go/v5/locale" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/locale" ) client := client.New( diff --git a/examples/1.9.x/server-go/examples/locale/list-codes.md b/examples/1.9.x/server-go/examples/locale/list-codes.md index be7df35f3..a7e699916 100644 --- a/examples/1.9.x/server-go/examples/locale/list-codes.md +++ b/examples/1.9.x/server-go/examples/locale/list-codes.md @@ -3,8 +3,8 @@ package main import ( "fmt" - "github.com/appwrite/sdk-for-go/v5/client" - "github.com/appwrite/sdk-for-go/v5/locale" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/locale" ) client := client.New( diff --git a/examples/1.9.x/server-go/examples/locale/list-continents.md b/examples/1.9.x/server-go/examples/locale/list-continents.md index b2e41ff14..b96be6d61 100644 --- a/examples/1.9.x/server-go/examples/locale/list-continents.md +++ b/examples/1.9.x/server-go/examples/locale/list-continents.md @@ -3,8 +3,8 @@ package main import ( "fmt" - "github.com/appwrite/sdk-for-go/v5/client" - "github.com/appwrite/sdk-for-go/v5/locale" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/locale" ) client := client.New( diff --git a/examples/1.9.x/server-go/examples/locale/list-countries-eu.md b/examples/1.9.x/server-go/examples/locale/list-countries-eu.md index 9a675f906..848b89232 100644 --- a/examples/1.9.x/server-go/examples/locale/list-countries-eu.md +++ b/examples/1.9.x/server-go/examples/locale/list-countries-eu.md @@ -3,8 +3,8 @@ package main import ( "fmt" - "github.com/appwrite/sdk-for-go/v5/client" - "github.com/appwrite/sdk-for-go/v5/locale" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/locale" ) client := client.New( diff --git a/examples/1.9.x/server-go/examples/locale/list-countries-phones.md b/examples/1.9.x/server-go/examples/locale/list-countries-phones.md index 600aa5efa..f0b91e39d 100644 --- a/examples/1.9.x/server-go/examples/locale/list-countries-phones.md +++ b/examples/1.9.x/server-go/examples/locale/list-countries-phones.md @@ -3,8 +3,8 @@ package main import ( "fmt" - "github.com/appwrite/sdk-for-go/v5/client" - "github.com/appwrite/sdk-for-go/v5/locale" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/locale" ) client := client.New( diff --git a/examples/1.9.x/server-go/examples/locale/list-countries.md b/examples/1.9.x/server-go/examples/locale/list-countries.md index 0e820ea8e..702c60a94 100644 --- a/examples/1.9.x/server-go/examples/locale/list-countries.md +++ b/examples/1.9.x/server-go/examples/locale/list-countries.md @@ -3,8 +3,8 @@ package main import ( "fmt" - "github.com/appwrite/sdk-for-go/v5/client" - "github.com/appwrite/sdk-for-go/v5/locale" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/locale" ) client := client.New( diff --git a/examples/1.9.x/server-go/examples/locale/list-currencies.md b/examples/1.9.x/server-go/examples/locale/list-currencies.md index 0c2422a00..d0f3e237d 100644 --- a/examples/1.9.x/server-go/examples/locale/list-currencies.md +++ b/examples/1.9.x/server-go/examples/locale/list-currencies.md @@ -3,8 +3,8 @@ package main import ( "fmt" - "github.com/appwrite/sdk-for-go/v5/client" - "github.com/appwrite/sdk-for-go/v5/locale" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/locale" ) client := client.New( diff --git a/examples/1.9.x/server-go/examples/locale/list-languages.md b/examples/1.9.x/server-go/examples/locale/list-languages.md index af956b551..c5055d9c3 100644 --- a/examples/1.9.x/server-go/examples/locale/list-languages.md +++ b/examples/1.9.x/server-go/examples/locale/list-languages.md @@ -3,8 +3,8 @@ package main import ( "fmt" - "github.com/appwrite/sdk-for-go/v5/client" - "github.com/appwrite/sdk-for-go/v5/locale" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/locale" ) client := client.New( diff --git a/examples/1.9.x/server-go/examples/messaging/create-apns-provider.md b/examples/1.9.x/server-go/examples/messaging/create-apns-provider.md index 0d8ea7b76..a86644c2a 100644 --- a/examples/1.9.x/server-go/examples/messaging/create-apns-provider.md +++ b/examples/1.9.x/server-go/examples/messaging/create-apns-provider.md @@ -3,8 +3,8 @@ package main import ( "fmt" - "github.com/appwrite/sdk-for-go/v5/client" - "github.com/appwrite/sdk-for-go/v5/messaging" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/messaging" ) client := client.New( diff --git a/examples/1.9.x/server-go/examples/messaging/create-email.md b/examples/1.9.x/server-go/examples/messaging/create-email.md index 8ef213a1e..6855a5dda 100644 --- a/examples/1.9.x/server-go/examples/messaging/create-email.md +++ b/examples/1.9.x/server-go/examples/messaging/create-email.md @@ -3,8 +3,8 @@ package main import ( "fmt" - "github.com/appwrite/sdk-for-go/v5/client" - "github.com/appwrite/sdk-for-go/v5/messaging" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/messaging" ) client := client.New( diff --git a/examples/1.9.x/server-go/examples/messaging/create-fcm-provider.md b/examples/1.9.x/server-go/examples/messaging/create-fcm-provider.md index e22d8e9e8..2f6d1ac59 100644 --- a/examples/1.9.x/server-go/examples/messaging/create-fcm-provider.md +++ b/examples/1.9.x/server-go/examples/messaging/create-fcm-provider.md @@ -3,8 +3,8 @@ package main import ( "fmt" - "github.com/appwrite/sdk-for-go/v5/client" - "github.com/appwrite/sdk-for-go/v5/messaging" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/messaging" ) client := client.New( diff --git a/examples/1.9.x/server-go/examples/messaging/create-mailgun-provider.md b/examples/1.9.x/server-go/examples/messaging/create-mailgun-provider.md index 9ccbfa948..1b905e6e0 100644 --- a/examples/1.9.x/server-go/examples/messaging/create-mailgun-provider.md +++ b/examples/1.9.x/server-go/examples/messaging/create-mailgun-provider.md @@ -3,8 +3,8 @@ package main import ( "fmt" - "github.com/appwrite/sdk-for-go/v5/client" - "github.com/appwrite/sdk-for-go/v5/messaging" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/messaging" ) client := client.New( diff --git a/examples/1.9.x/server-go/examples/messaging/create-msg-91-provider.md b/examples/1.9.x/server-go/examples/messaging/create-msg-91-provider.md index 9e6c33146..898f0c695 100644 --- a/examples/1.9.x/server-go/examples/messaging/create-msg-91-provider.md +++ b/examples/1.9.x/server-go/examples/messaging/create-msg-91-provider.md @@ -3,8 +3,8 @@ package main import ( "fmt" - "github.com/appwrite/sdk-for-go/v5/client" - "github.com/appwrite/sdk-for-go/v5/messaging" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/messaging" ) client := client.New( diff --git a/examples/1.9.x/server-go/examples/messaging/create-push.md b/examples/1.9.x/server-go/examples/messaging/create-push.md index 7a9f95818..851d9b0ea 100644 --- a/examples/1.9.x/server-go/examples/messaging/create-push.md +++ b/examples/1.9.x/server-go/examples/messaging/create-push.md @@ -3,8 +3,8 @@ package main import ( "fmt" - "github.com/appwrite/sdk-for-go/v5/client" - "github.com/appwrite/sdk-for-go/v5/messaging" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/messaging" ) client := client.New( diff --git a/examples/1.9.x/server-go/examples/messaging/create-resend-provider.md b/examples/1.9.x/server-go/examples/messaging/create-resend-provider.md index 1c3136f2e..2eb7ed141 100644 --- a/examples/1.9.x/server-go/examples/messaging/create-resend-provider.md +++ b/examples/1.9.x/server-go/examples/messaging/create-resend-provider.md @@ -3,8 +3,8 @@ package main import ( "fmt" - "github.com/appwrite/sdk-for-go/v5/client" - "github.com/appwrite/sdk-for-go/v5/messaging" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/messaging" ) client := client.New( diff --git a/examples/1.9.x/server-go/examples/messaging/create-sendgrid-provider.md b/examples/1.9.x/server-go/examples/messaging/create-sendgrid-provider.md index 13feb8ee6..3674e1503 100644 --- a/examples/1.9.x/server-go/examples/messaging/create-sendgrid-provider.md +++ b/examples/1.9.x/server-go/examples/messaging/create-sendgrid-provider.md @@ -3,8 +3,8 @@ package main import ( "fmt" - "github.com/appwrite/sdk-for-go/v5/client" - "github.com/appwrite/sdk-for-go/v5/messaging" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/messaging" ) client := client.New( diff --git a/examples/1.9.x/server-go/examples/messaging/create-ses-provider.md b/examples/1.9.x/server-go/examples/messaging/create-ses-provider.md index e625c8e0b..9e24149bc 100644 --- a/examples/1.9.x/server-go/examples/messaging/create-ses-provider.md +++ b/examples/1.9.x/server-go/examples/messaging/create-ses-provider.md @@ -3,8 +3,8 @@ package main import ( "fmt" - "github.com/appwrite/sdk-for-go/v5/client" - "github.com/appwrite/sdk-for-go/v5/messaging" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/messaging" ) client := client.New( diff --git a/examples/1.9.x/server-go/examples/messaging/create-sms.md b/examples/1.9.x/server-go/examples/messaging/create-sms.md index 063ea7a59..153f162fc 100644 --- a/examples/1.9.x/server-go/examples/messaging/create-sms.md +++ b/examples/1.9.x/server-go/examples/messaging/create-sms.md @@ -3,8 +3,8 @@ package main import ( "fmt" - "github.com/appwrite/sdk-for-go/v5/client" - "github.com/appwrite/sdk-for-go/v5/messaging" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/messaging" ) client := client.New( diff --git a/examples/1.9.x/server-go/examples/messaging/create-smtp-provider.md b/examples/1.9.x/server-go/examples/messaging/create-smtp-provider.md index e8d213b1b..18bc73fff 100644 --- a/examples/1.9.x/server-go/examples/messaging/create-smtp-provider.md +++ b/examples/1.9.x/server-go/examples/messaging/create-smtp-provider.md @@ -3,8 +3,8 @@ package main import ( "fmt" - "github.com/appwrite/sdk-for-go/v5/client" - "github.com/appwrite/sdk-for-go/v5/messaging" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/messaging" ) client := client.New( diff --git a/examples/1.9.x/server-go/examples/messaging/create-subscriber.md b/examples/1.9.x/server-go/examples/messaging/create-subscriber.md index 98a607245..14b1626d0 100644 --- a/examples/1.9.x/server-go/examples/messaging/create-subscriber.md +++ b/examples/1.9.x/server-go/examples/messaging/create-subscriber.md @@ -3,8 +3,8 @@ package main import ( "fmt" - "github.com/appwrite/sdk-for-go/v5/client" - "github.com/appwrite/sdk-for-go/v5/messaging" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/messaging" ) client := client.New( diff --git a/examples/1.9.x/server-go/examples/messaging/create-telesign-provider.md b/examples/1.9.x/server-go/examples/messaging/create-telesign-provider.md index e47c2c1e4..e049c8b1b 100644 --- a/examples/1.9.x/server-go/examples/messaging/create-telesign-provider.md +++ b/examples/1.9.x/server-go/examples/messaging/create-telesign-provider.md @@ -3,8 +3,8 @@ package main import ( "fmt" - "github.com/appwrite/sdk-for-go/v5/client" - "github.com/appwrite/sdk-for-go/v5/messaging" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/messaging" ) client := client.New( diff --git a/examples/1.9.x/server-go/examples/messaging/create-textmagic-provider.md b/examples/1.9.x/server-go/examples/messaging/create-textmagic-provider.md index 2f7c52c3e..98e5810c0 100644 --- a/examples/1.9.x/server-go/examples/messaging/create-textmagic-provider.md +++ b/examples/1.9.x/server-go/examples/messaging/create-textmagic-provider.md @@ -3,8 +3,8 @@ package main import ( "fmt" - "github.com/appwrite/sdk-for-go/v5/client" - "github.com/appwrite/sdk-for-go/v5/messaging" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/messaging" ) client := client.New( diff --git a/examples/1.9.x/server-go/examples/messaging/create-topic.md b/examples/1.9.x/server-go/examples/messaging/create-topic.md index da81e8068..af3a96b81 100644 --- a/examples/1.9.x/server-go/examples/messaging/create-topic.md +++ b/examples/1.9.x/server-go/examples/messaging/create-topic.md @@ -3,8 +3,8 @@ package main import ( "fmt" - "github.com/appwrite/sdk-for-go/v5/client" - "github.com/appwrite/sdk-for-go/v5/messaging" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/messaging" ) client := client.New( diff --git a/examples/1.9.x/server-go/examples/messaging/create-twilio-provider.md b/examples/1.9.x/server-go/examples/messaging/create-twilio-provider.md index 46708cc0e..945abceff 100644 --- a/examples/1.9.x/server-go/examples/messaging/create-twilio-provider.md +++ b/examples/1.9.x/server-go/examples/messaging/create-twilio-provider.md @@ -3,8 +3,8 @@ package main import ( "fmt" - "github.com/appwrite/sdk-for-go/v5/client" - "github.com/appwrite/sdk-for-go/v5/messaging" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/messaging" ) client := client.New( diff --git a/examples/1.9.x/server-go/examples/messaging/create-vonage-provider.md b/examples/1.9.x/server-go/examples/messaging/create-vonage-provider.md index 22c59e0d4..f33e44241 100644 --- a/examples/1.9.x/server-go/examples/messaging/create-vonage-provider.md +++ b/examples/1.9.x/server-go/examples/messaging/create-vonage-provider.md @@ -3,8 +3,8 @@ package main import ( "fmt" - "github.com/appwrite/sdk-for-go/v5/client" - "github.com/appwrite/sdk-for-go/v5/messaging" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/messaging" ) client := client.New( diff --git a/examples/1.9.x/server-go/examples/messaging/delete-provider.md b/examples/1.9.x/server-go/examples/messaging/delete-provider.md index 4c641a854..9c0177546 100644 --- a/examples/1.9.x/server-go/examples/messaging/delete-provider.md +++ b/examples/1.9.x/server-go/examples/messaging/delete-provider.md @@ -3,8 +3,8 @@ package main import ( "fmt" - "github.com/appwrite/sdk-for-go/v5/client" - "github.com/appwrite/sdk-for-go/v5/messaging" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/messaging" ) client := client.New( diff --git a/examples/1.9.x/server-go/examples/messaging/delete-subscriber.md b/examples/1.9.x/server-go/examples/messaging/delete-subscriber.md index 1914238f2..81528c2ff 100644 --- a/examples/1.9.x/server-go/examples/messaging/delete-subscriber.md +++ b/examples/1.9.x/server-go/examples/messaging/delete-subscriber.md @@ -3,8 +3,8 @@ package main import ( "fmt" - "github.com/appwrite/sdk-for-go/v5/client" - "github.com/appwrite/sdk-for-go/v5/messaging" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/messaging" ) client := client.New( diff --git a/examples/1.9.x/server-go/examples/messaging/delete-topic.md b/examples/1.9.x/server-go/examples/messaging/delete-topic.md index a3b127ed2..4336bd659 100644 --- a/examples/1.9.x/server-go/examples/messaging/delete-topic.md +++ b/examples/1.9.x/server-go/examples/messaging/delete-topic.md @@ -3,8 +3,8 @@ package main import ( "fmt" - "github.com/appwrite/sdk-for-go/v5/client" - "github.com/appwrite/sdk-for-go/v5/messaging" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/messaging" ) client := client.New( diff --git a/examples/1.9.x/server-go/examples/messaging/delete.md b/examples/1.9.x/server-go/examples/messaging/delete.md index 1cfe92516..4d448f416 100644 --- a/examples/1.9.x/server-go/examples/messaging/delete.md +++ b/examples/1.9.x/server-go/examples/messaging/delete.md @@ -3,8 +3,8 @@ package main import ( "fmt" - "github.com/appwrite/sdk-for-go/v5/client" - "github.com/appwrite/sdk-for-go/v5/messaging" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/messaging" ) client := client.New( diff --git a/examples/1.9.x/server-go/examples/messaging/get-message.md b/examples/1.9.x/server-go/examples/messaging/get-message.md index c0153ed80..00a3fa1d3 100644 --- a/examples/1.9.x/server-go/examples/messaging/get-message.md +++ b/examples/1.9.x/server-go/examples/messaging/get-message.md @@ -3,8 +3,8 @@ package main import ( "fmt" - "github.com/appwrite/sdk-for-go/v5/client" - "github.com/appwrite/sdk-for-go/v5/messaging" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/messaging" ) client := client.New( diff --git a/examples/1.9.x/server-go/examples/messaging/get-provider.md b/examples/1.9.x/server-go/examples/messaging/get-provider.md index ee59fb5ea..1833b0f7c 100644 --- a/examples/1.9.x/server-go/examples/messaging/get-provider.md +++ b/examples/1.9.x/server-go/examples/messaging/get-provider.md @@ -3,8 +3,8 @@ package main import ( "fmt" - "github.com/appwrite/sdk-for-go/v5/client" - "github.com/appwrite/sdk-for-go/v5/messaging" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/messaging" ) client := client.New( diff --git a/examples/1.9.x/server-go/examples/messaging/get-subscriber.md b/examples/1.9.x/server-go/examples/messaging/get-subscriber.md index f00ea9e16..e856f84a7 100644 --- a/examples/1.9.x/server-go/examples/messaging/get-subscriber.md +++ b/examples/1.9.x/server-go/examples/messaging/get-subscriber.md @@ -3,8 +3,8 @@ package main import ( "fmt" - "github.com/appwrite/sdk-for-go/v5/client" - "github.com/appwrite/sdk-for-go/v5/messaging" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/messaging" ) client := client.New( diff --git a/examples/1.9.x/server-go/examples/messaging/get-topic.md b/examples/1.9.x/server-go/examples/messaging/get-topic.md index 83176c20e..08b85215b 100644 --- a/examples/1.9.x/server-go/examples/messaging/get-topic.md +++ b/examples/1.9.x/server-go/examples/messaging/get-topic.md @@ -3,8 +3,8 @@ package main import ( "fmt" - "github.com/appwrite/sdk-for-go/v5/client" - "github.com/appwrite/sdk-for-go/v5/messaging" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/messaging" ) client := client.New( diff --git a/examples/1.9.x/server-go/examples/messaging/list-messages.md b/examples/1.9.x/server-go/examples/messaging/list-messages.md index 6648d751a..8b62c5f69 100644 --- a/examples/1.9.x/server-go/examples/messaging/list-messages.md +++ b/examples/1.9.x/server-go/examples/messaging/list-messages.md @@ -3,8 +3,8 @@ package main import ( "fmt" - "github.com/appwrite/sdk-for-go/v5/client" - "github.com/appwrite/sdk-for-go/v5/messaging" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/messaging" ) client := client.New( diff --git a/examples/1.9.x/server-go/examples/messaging/list-providers.md b/examples/1.9.x/server-go/examples/messaging/list-providers.md index 155c4a389..0dd9cddb3 100644 --- a/examples/1.9.x/server-go/examples/messaging/list-providers.md +++ b/examples/1.9.x/server-go/examples/messaging/list-providers.md @@ -3,8 +3,8 @@ package main import ( "fmt" - "github.com/appwrite/sdk-for-go/v5/client" - "github.com/appwrite/sdk-for-go/v5/messaging" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/messaging" ) client := client.New( diff --git a/examples/1.9.x/server-go/examples/messaging/list-subscribers.md b/examples/1.9.x/server-go/examples/messaging/list-subscribers.md index bba7f4fad..e92e9ea4d 100644 --- a/examples/1.9.x/server-go/examples/messaging/list-subscribers.md +++ b/examples/1.9.x/server-go/examples/messaging/list-subscribers.md @@ -3,8 +3,8 @@ package main import ( "fmt" - "github.com/appwrite/sdk-for-go/v5/client" - "github.com/appwrite/sdk-for-go/v5/messaging" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/messaging" ) client := client.New( diff --git a/examples/1.9.x/server-go/examples/messaging/list-targets.md b/examples/1.9.x/server-go/examples/messaging/list-targets.md index e59036ee3..96db38e3c 100644 --- a/examples/1.9.x/server-go/examples/messaging/list-targets.md +++ b/examples/1.9.x/server-go/examples/messaging/list-targets.md @@ -3,8 +3,8 @@ package main import ( "fmt" - "github.com/appwrite/sdk-for-go/v5/client" - "github.com/appwrite/sdk-for-go/v5/messaging" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/messaging" ) client := client.New( diff --git a/examples/1.9.x/server-go/examples/messaging/list-topics.md b/examples/1.9.x/server-go/examples/messaging/list-topics.md index 9d3ec3cf1..35568290f 100644 --- a/examples/1.9.x/server-go/examples/messaging/list-topics.md +++ b/examples/1.9.x/server-go/examples/messaging/list-topics.md @@ -3,8 +3,8 @@ package main import ( "fmt" - "github.com/appwrite/sdk-for-go/v5/client" - "github.com/appwrite/sdk-for-go/v5/messaging" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/messaging" ) client := client.New( diff --git a/examples/1.9.x/server-go/examples/messaging/update-apns-provider.md b/examples/1.9.x/server-go/examples/messaging/update-apns-provider.md index 06f2e56db..08befd38b 100644 --- a/examples/1.9.x/server-go/examples/messaging/update-apns-provider.md +++ b/examples/1.9.x/server-go/examples/messaging/update-apns-provider.md @@ -3,8 +3,8 @@ package main import ( "fmt" - "github.com/appwrite/sdk-for-go/v5/client" - "github.com/appwrite/sdk-for-go/v5/messaging" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/messaging" ) client := client.New( diff --git a/examples/1.9.x/server-go/examples/messaging/update-email.md b/examples/1.9.x/server-go/examples/messaging/update-email.md index 44557b17e..9fa9426b3 100644 --- a/examples/1.9.x/server-go/examples/messaging/update-email.md +++ b/examples/1.9.x/server-go/examples/messaging/update-email.md @@ -3,8 +3,8 @@ package main import ( "fmt" - "github.com/appwrite/sdk-for-go/v5/client" - "github.com/appwrite/sdk-for-go/v5/messaging" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/messaging" ) client := client.New( diff --git a/examples/1.9.x/server-go/examples/messaging/update-fcm-provider.md b/examples/1.9.x/server-go/examples/messaging/update-fcm-provider.md index ec6d62b91..f49c22e29 100644 --- a/examples/1.9.x/server-go/examples/messaging/update-fcm-provider.md +++ b/examples/1.9.x/server-go/examples/messaging/update-fcm-provider.md @@ -3,8 +3,8 @@ package main import ( "fmt" - "github.com/appwrite/sdk-for-go/v5/client" - "github.com/appwrite/sdk-for-go/v5/messaging" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/messaging" ) client := client.New( diff --git a/examples/1.9.x/server-go/examples/messaging/update-mailgun-provider.md b/examples/1.9.x/server-go/examples/messaging/update-mailgun-provider.md index 7a4e3854c..90a619476 100644 --- a/examples/1.9.x/server-go/examples/messaging/update-mailgun-provider.md +++ b/examples/1.9.x/server-go/examples/messaging/update-mailgun-provider.md @@ -3,8 +3,8 @@ package main import ( "fmt" - "github.com/appwrite/sdk-for-go/v5/client" - "github.com/appwrite/sdk-for-go/v5/messaging" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/messaging" ) client := client.New( diff --git a/examples/1.9.x/server-go/examples/messaging/update-msg-91-provider.md b/examples/1.9.x/server-go/examples/messaging/update-msg-91-provider.md index 055153817..2e9857cf3 100644 --- a/examples/1.9.x/server-go/examples/messaging/update-msg-91-provider.md +++ b/examples/1.9.x/server-go/examples/messaging/update-msg-91-provider.md @@ -3,8 +3,8 @@ package main import ( "fmt" - "github.com/appwrite/sdk-for-go/v5/client" - "github.com/appwrite/sdk-for-go/v5/messaging" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/messaging" ) client := client.New( diff --git a/examples/1.9.x/server-go/examples/messaging/update-push.md b/examples/1.9.x/server-go/examples/messaging/update-push.md index 522766329..2ca50d517 100644 --- a/examples/1.9.x/server-go/examples/messaging/update-push.md +++ b/examples/1.9.x/server-go/examples/messaging/update-push.md @@ -3,8 +3,8 @@ package main import ( "fmt" - "github.com/appwrite/sdk-for-go/v5/client" - "github.com/appwrite/sdk-for-go/v5/messaging" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/messaging" ) client := client.New( diff --git a/examples/1.9.x/server-go/examples/messaging/update-resend-provider.md b/examples/1.9.x/server-go/examples/messaging/update-resend-provider.md index 9e4fb6976..337fec668 100644 --- a/examples/1.9.x/server-go/examples/messaging/update-resend-provider.md +++ b/examples/1.9.x/server-go/examples/messaging/update-resend-provider.md @@ -3,8 +3,8 @@ package main import ( "fmt" - "github.com/appwrite/sdk-for-go/v5/client" - "github.com/appwrite/sdk-for-go/v5/messaging" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/messaging" ) client := client.New( diff --git a/examples/1.9.x/server-go/examples/messaging/update-sendgrid-provider.md b/examples/1.9.x/server-go/examples/messaging/update-sendgrid-provider.md index d8f1bf327..c3fa6b93a 100644 --- a/examples/1.9.x/server-go/examples/messaging/update-sendgrid-provider.md +++ b/examples/1.9.x/server-go/examples/messaging/update-sendgrid-provider.md @@ -3,8 +3,8 @@ package main import ( "fmt" - "github.com/appwrite/sdk-for-go/v5/client" - "github.com/appwrite/sdk-for-go/v5/messaging" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/messaging" ) client := client.New( diff --git a/examples/1.9.x/server-go/examples/messaging/update-ses-provider.md b/examples/1.9.x/server-go/examples/messaging/update-ses-provider.md index 49847ca7f..55339d962 100644 --- a/examples/1.9.x/server-go/examples/messaging/update-ses-provider.md +++ b/examples/1.9.x/server-go/examples/messaging/update-ses-provider.md @@ -3,8 +3,8 @@ package main import ( "fmt" - "github.com/appwrite/sdk-for-go/v5/client" - "github.com/appwrite/sdk-for-go/v5/messaging" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/messaging" ) client := client.New( diff --git a/examples/1.9.x/server-go/examples/messaging/update-sms.md b/examples/1.9.x/server-go/examples/messaging/update-sms.md index 066d9ae09..e04147ec0 100644 --- a/examples/1.9.x/server-go/examples/messaging/update-sms.md +++ b/examples/1.9.x/server-go/examples/messaging/update-sms.md @@ -3,8 +3,8 @@ package main import ( "fmt" - "github.com/appwrite/sdk-for-go/v5/client" - "github.com/appwrite/sdk-for-go/v5/messaging" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/messaging" ) client := client.New( diff --git a/examples/1.9.x/server-go/examples/messaging/update-smtp-provider.md b/examples/1.9.x/server-go/examples/messaging/update-smtp-provider.md index 477e558e0..a67da8be7 100644 --- a/examples/1.9.x/server-go/examples/messaging/update-smtp-provider.md +++ b/examples/1.9.x/server-go/examples/messaging/update-smtp-provider.md @@ -3,8 +3,8 @@ package main import ( "fmt" - "github.com/appwrite/sdk-for-go/v5/client" - "github.com/appwrite/sdk-for-go/v5/messaging" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/messaging" ) client := client.New( diff --git a/examples/1.9.x/server-go/examples/messaging/update-telesign-provider.md b/examples/1.9.x/server-go/examples/messaging/update-telesign-provider.md index 2c4089c9b..2b2280037 100644 --- a/examples/1.9.x/server-go/examples/messaging/update-telesign-provider.md +++ b/examples/1.9.x/server-go/examples/messaging/update-telesign-provider.md @@ -3,8 +3,8 @@ package main import ( "fmt" - "github.com/appwrite/sdk-for-go/v5/client" - "github.com/appwrite/sdk-for-go/v5/messaging" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/messaging" ) client := client.New( diff --git a/examples/1.9.x/server-go/examples/messaging/update-textmagic-provider.md b/examples/1.9.x/server-go/examples/messaging/update-textmagic-provider.md index d631180e8..23a270ed5 100644 --- a/examples/1.9.x/server-go/examples/messaging/update-textmagic-provider.md +++ b/examples/1.9.x/server-go/examples/messaging/update-textmagic-provider.md @@ -3,8 +3,8 @@ package main import ( "fmt" - "github.com/appwrite/sdk-for-go/v5/client" - "github.com/appwrite/sdk-for-go/v5/messaging" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/messaging" ) client := client.New( diff --git a/examples/1.9.x/server-go/examples/messaging/update-topic.md b/examples/1.9.x/server-go/examples/messaging/update-topic.md index 109e26584..198f563e4 100644 --- a/examples/1.9.x/server-go/examples/messaging/update-topic.md +++ b/examples/1.9.x/server-go/examples/messaging/update-topic.md @@ -3,8 +3,8 @@ package main import ( "fmt" - "github.com/appwrite/sdk-for-go/v5/client" - "github.com/appwrite/sdk-for-go/v5/messaging" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/messaging" ) client := client.New( diff --git a/examples/1.9.x/server-go/examples/messaging/update-twilio-provider.md b/examples/1.9.x/server-go/examples/messaging/update-twilio-provider.md index 7c079f44f..7ac5eac0e 100644 --- a/examples/1.9.x/server-go/examples/messaging/update-twilio-provider.md +++ b/examples/1.9.x/server-go/examples/messaging/update-twilio-provider.md @@ -3,8 +3,8 @@ package main import ( "fmt" - "github.com/appwrite/sdk-for-go/v5/client" - "github.com/appwrite/sdk-for-go/v5/messaging" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/messaging" ) client := client.New( diff --git a/examples/1.9.x/server-go/examples/messaging/update-vonage-provider.md b/examples/1.9.x/server-go/examples/messaging/update-vonage-provider.md index 32edfacda..e4cf53a73 100644 --- a/examples/1.9.x/server-go/examples/messaging/update-vonage-provider.md +++ b/examples/1.9.x/server-go/examples/messaging/update-vonage-provider.md @@ -3,8 +3,8 @@ package main import ( "fmt" - "github.com/appwrite/sdk-for-go/v5/client" - "github.com/appwrite/sdk-for-go/v5/messaging" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/messaging" ) client := client.New( diff --git a/examples/1.9.x/server-go/examples/mongo/create-backup-policy.md b/examples/1.9.x/server-go/examples/mongo/create-backup-policy.md new file mode 100644 index 000000000..88f78b99a --- /dev/null +++ b/examples/1.9.x/server-go/examples/mongo/create-backup-policy.md @@ -0,0 +1,27 @@ +```go +package main + +import ( + "fmt" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/mongo" +) + +client := client.New( + client.WithEndpoint("https://.cloud.appwrite.io/v1") + client.WithProject("") + client.WithKey("") +) + +service := mongo.New(client) + +response, error := service.CreateBackupPolicy( + "", + "", + "", + "", + 1, + mongo.WithCreateBackupPolicyType("full"), + mongo.WithCreateBackupPolicyEnabled(false), +) +``` diff --git a/examples/1.9.x/server-go/examples/mongo/create-backup.md b/examples/1.9.x/server-go/examples/mongo/create-backup.md new file mode 100644 index 000000000..576c78893 --- /dev/null +++ b/examples/1.9.x/server-go/examples/mongo/create-backup.md @@ -0,0 +1,22 @@ +```go +package main + +import ( + "fmt" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/mongo" +) + +client := client.New( + client.WithEndpoint("https://.cloud.appwrite.io/v1") + client.WithProject("") + client.WithKey("") +) + +service := mongo.New(client) + +response, error := service.CreateBackup( + "", + mongo.WithCreateBackupType("full"), +) +``` diff --git a/examples/1.9.x/server-go/examples/mongo/create-branch.md b/examples/1.9.x/server-go/examples/mongo/create-branch.md new file mode 100644 index 000000000..f8214403f --- /dev/null +++ b/examples/1.9.x/server-go/examples/mongo/create-branch.md @@ -0,0 +1,23 @@ +```go +package main + +import ( + "fmt" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/mongo" +) + +client := client.New( + client.WithEndpoint("https://.cloud.appwrite.io/v1") + client.WithProject("") + client.WithKey("") +) + +service := mongo.New(client) + +response, error := service.CreateBranch( + "", + mongo.WithCreateBranchBranchId(""), + mongo.WithCreateBranchTtl(300), +) +``` diff --git a/examples/1.9.x/server-go/examples/mongo/create-failover.md b/examples/1.9.x/server-go/examples/mongo/create-failover.md new file mode 100644 index 000000000..ade74370e --- /dev/null +++ b/examples/1.9.x/server-go/examples/mongo/create-failover.md @@ -0,0 +1,22 @@ +```go +package main + +import ( + "fmt" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/mongo" +) + +client := client.New( + client.WithEndpoint("https://.cloud.appwrite.io/v1") + client.WithProject("") + client.WithKey("") +) + +service := mongo.New(client) + +response, error := service.CreateFailover( + "", + mongo.WithCreateFailoverTargetReplicaId(""), +) +``` diff --git a/examples/1.9.x/server-go/examples/mongo/create-migration.md b/examples/1.9.x/server-go/examples/mongo/create-migration.md new file mode 100644 index 000000000..2668f66ea --- /dev/null +++ b/examples/1.9.x/server-go/examples/mongo/create-migration.md @@ -0,0 +1,23 @@ +```go +package main + +import ( + "fmt" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/mongo" +) + +client := client.New( + client.WithEndpoint("https://.cloud.appwrite.io/v1") + client.WithProject("") + client.WithKey("") +) + +service := mongo.New(client) + +response, error := service.CreateMigration( + "", + "shared", + mongo.WithCreateMigrationSpecification(""), +) +``` diff --git a/examples/1.9.x/server-go/examples/mongo/create-restoration.md b/examples/1.9.x/server-go/examples/mongo/create-restoration.md new file mode 100644 index 000000000..ac7b6397f --- /dev/null +++ b/examples/1.9.x/server-go/examples/mongo/create-restoration.md @@ -0,0 +1,24 @@ +```go +package main + +import ( + "fmt" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/mongo" +) + +client := client.New( + client.WithEndpoint("https://.cloud.appwrite.io/v1") + client.WithProject("") + client.WithKey("") +) + +service := mongo.New(client) + +response, error := service.CreateRestoration( + "", + mongo.WithCreateRestorationType("backup"), + mongo.WithCreateRestorationBackupId(""), + mongo.WithCreateRestorationTargetTime("2020-10-15T06:38:00.000+00:00"), +) +``` diff --git a/examples/1.9.x/server-go/examples/mongo/create-upgrade.md b/examples/1.9.x/server-go/examples/mongo/create-upgrade.md new file mode 100644 index 000000000..32074f69c --- /dev/null +++ b/examples/1.9.x/server-go/examples/mongo/create-upgrade.md @@ -0,0 +1,22 @@ +```go +package main + +import ( + "fmt" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/mongo" +) + +client := client.New( + client.WithEndpoint("https://.cloud.appwrite.io/v1") + client.WithProject("") + client.WithKey("") +) + +service := mongo.New(client) + +response, error := service.CreateUpgrade( + "", + "", +) +``` diff --git a/examples/1.9.x/server-go/examples/mongo/create.md b/examples/1.9.x/server-go/examples/mongo/create.md new file mode 100644 index 000000000..cdc5c9b30 --- /dev/null +++ b/examples/1.9.x/server-go/examples/mongo/create.md @@ -0,0 +1,35 @@ +```go +package main + +import ( + "fmt" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/mongo" +) + +client := client.New( + client.WithEndpoint("https://.cloud.appwrite.io/v1") + client.WithProject("") + client.WithKey("") +) + +service := mongo.New(client) + +response, error := service.Create( + "", + "", + mongo.WithCreateVersion("17"), + mongo.WithCreateSpecification(""), + mongo.WithCreateReplicas(0), + mongo.WithCreateSyncMode("async"), + mongo.WithCreateNetworkIdleTimeoutSeconds(60), + mongo.WithCreateNetworkIPAllowlist([]string{}), + mongo.WithCreateIdleTimeoutMinutes(5), + mongo.WithCreatePitr(false), + mongo.WithCreatePitrRetentionDays(1), + mongo.WithCreateStorageAutoscaling(false), + mongo.WithCreateStorageAutoscalingThresholdPercent(50), + mongo.WithCreateStorageAutoscalingMaxGb(0), + mongo.WithCreateApi("nativedb"), +) +``` diff --git a/examples/1.9.x/server-go/examples/mongo/delete-backup-policy.md b/examples/1.9.x/server-go/examples/mongo/delete-backup-policy.md new file mode 100644 index 000000000..fb92c6617 --- /dev/null +++ b/examples/1.9.x/server-go/examples/mongo/delete-backup-policy.md @@ -0,0 +1,22 @@ +```go +package main + +import ( + "fmt" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/mongo" +) + +client := client.New( + client.WithEndpoint("https://.cloud.appwrite.io/v1") + client.WithProject("") + client.WithKey("") +) + +service := mongo.New(client) + +response, error := service.DeleteBackupPolicy( + "", + "", +) +``` diff --git a/examples/1.9.x/server-go/examples/mongo/delete-backup.md b/examples/1.9.x/server-go/examples/mongo/delete-backup.md new file mode 100644 index 000000000..1db4cc7e8 --- /dev/null +++ b/examples/1.9.x/server-go/examples/mongo/delete-backup.md @@ -0,0 +1,22 @@ +```go +package main + +import ( + "fmt" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/mongo" +) + +client := client.New( + client.WithEndpoint("https://.cloud.appwrite.io/v1") + client.WithProject("") + client.WithKey("") +) + +service := mongo.New(client) + +response, error := service.DeleteBackup( + "", + "", +) +``` diff --git a/examples/1.9.x/server-go/examples/mongo/delete-branch.md b/examples/1.9.x/server-go/examples/mongo/delete-branch.md new file mode 100644 index 000000000..25909d0c7 --- /dev/null +++ b/examples/1.9.x/server-go/examples/mongo/delete-branch.md @@ -0,0 +1,22 @@ +```go +package main + +import ( + "fmt" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/mongo" +) + +client := client.New( + client.WithEndpoint("https://.cloud.appwrite.io/v1") + client.WithProject("") + client.WithKey("") +) + +service := mongo.New(client) + +response, error := service.DeleteBranch( + "", + "", +) +``` diff --git a/examples/1.9.x/server-go/examples/mongo/delete.md b/examples/1.9.x/server-go/examples/mongo/delete.md new file mode 100644 index 000000000..9de40ed98 --- /dev/null +++ b/examples/1.9.x/server-go/examples/mongo/delete.md @@ -0,0 +1,21 @@ +```go +package main + +import ( + "fmt" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/mongo" +) + +client := client.New( + client.WithEndpoint("https://.cloud.appwrite.io/v1") + client.WithProject("") + client.WithKey("") +) + +service := mongo.New(client) + +response, error := service.Delete( + "", +) +``` diff --git a/examples/1.9.x/server-go/examples/mongo/get-backup-policy.md b/examples/1.9.x/server-go/examples/mongo/get-backup-policy.md new file mode 100644 index 000000000..c25b1e882 --- /dev/null +++ b/examples/1.9.x/server-go/examples/mongo/get-backup-policy.md @@ -0,0 +1,22 @@ +```go +package main + +import ( + "fmt" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/mongo" +) + +client := client.New( + client.WithEndpoint("https://.cloud.appwrite.io/v1") + client.WithProject("") + client.WithKey("") +) + +service := mongo.New(client) + +response, error := service.GetBackupPolicy( + "", + "", +) +``` diff --git a/examples/1.9.x/server-go/examples/mongo/get-backup.md b/examples/1.9.x/server-go/examples/mongo/get-backup.md new file mode 100644 index 000000000..a430a6a7b --- /dev/null +++ b/examples/1.9.x/server-go/examples/mongo/get-backup.md @@ -0,0 +1,22 @@ +```go +package main + +import ( + "fmt" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/mongo" +) + +client := client.New( + client.WithEndpoint("https://.cloud.appwrite.io/v1") + client.WithProject("") + client.WithKey("") +) + +service := mongo.New(client) + +response, error := service.GetBackup( + "", + "", +) +``` diff --git a/examples/1.9.x/server-go/examples/mongo/get-pitr.md b/examples/1.9.x/server-go/examples/mongo/get-pitr.md new file mode 100644 index 000000000..ac7815dc3 --- /dev/null +++ b/examples/1.9.x/server-go/examples/mongo/get-pitr.md @@ -0,0 +1,21 @@ +```go +package main + +import ( + "fmt" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/mongo" +) + +client := client.New( + client.WithEndpoint("https://.cloud.appwrite.io/v1") + client.WithProject("") + client.WithKey("") +) + +service := mongo.New(client) + +response, error := service.GetPitr( + "", +) +``` diff --git a/examples/1.9.x/server-go/examples/mongo/get-replicas.md b/examples/1.9.x/server-go/examples/mongo/get-replicas.md new file mode 100644 index 000000000..232b16090 --- /dev/null +++ b/examples/1.9.x/server-go/examples/mongo/get-replicas.md @@ -0,0 +1,21 @@ +```go +package main + +import ( + "fmt" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/mongo" +) + +client := client.New( + client.WithEndpoint("https://.cloud.appwrite.io/v1") + client.WithProject("") + client.WithKey("") +) + +service := mongo.New(client) + +response, error := service.GetReplicas( + "", +) +``` diff --git a/examples/1.9.x/server-go/examples/mongo/get-restoration.md b/examples/1.9.x/server-go/examples/mongo/get-restoration.md new file mode 100644 index 000000000..559fdc295 --- /dev/null +++ b/examples/1.9.x/server-go/examples/mongo/get-restoration.md @@ -0,0 +1,22 @@ +```go +package main + +import ( + "fmt" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/mongo" +) + +client := client.New( + client.WithEndpoint("https://.cloud.appwrite.io/v1") + client.WithProject("") + client.WithKey("") +) + +service := mongo.New(client) + +response, error := service.GetRestoration( + "", + "", +) +``` diff --git a/examples/1.9.x/server-go/examples/mongo/get-status.md b/examples/1.9.x/server-go/examples/mongo/get-status.md new file mode 100644 index 000000000..e51b86399 --- /dev/null +++ b/examples/1.9.x/server-go/examples/mongo/get-status.md @@ -0,0 +1,21 @@ +```go +package main + +import ( + "fmt" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/mongo" +) + +client := client.New( + client.WithEndpoint("https://.cloud.appwrite.io/v1") + client.WithProject("") + client.WithKey("") +) + +service := mongo.New(client) + +response, error := service.GetStatus( + "", +) +``` diff --git a/examples/1.9.x/server-go/examples/mongo/get.md b/examples/1.9.x/server-go/examples/mongo/get.md new file mode 100644 index 000000000..e5fde8e41 --- /dev/null +++ b/examples/1.9.x/server-go/examples/mongo/get.md @@ -0,0 +1,21 @@ +```go +package main + +import ( + "fmt" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/mongo" +) + +client := client.New( + client.WithEndpoint("https://.cloud.appwrite.io/v1") + client.WithProject("") + client.WithKey("") +) + +service := mongo.New(client) + +response, error := service.Get( + "", +) +``` diff --git a/examples/1.9.x/server-go/examples/mongo/list-backup-policies.md b/examples/1.9.x/server-go/examples/mongo/list-backup-policies.md new file mode 100644 index 000000000..0ee520a1b --- /dev/null +++ b/examples/1.9.x/server-go/examples/mongo/list-backup-policies.md @@ -0,0 +1,22 @@ +```go +package main + +import ( + "fmt" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/mongo" +) + +client := client.New( + client.WithEndpoint("https://.cloud.appwrite.io/v1") + client.WithProject("") + client.WithKey("") +) + +service := mongo.New(client) + +response, error := service.ListBackupPolicies( + "", + mongo.WithListBackupPoliciesQueries([]string{}), +) +``` diff --git a/examples/1.9.x/server-go/examples/mongo/list-backups.md b/examples/1.9.x/server-go/examples/mongo/list-backups.md new file mode 100644 index 000000000..da5b8ba1c --- /dev/null +++ b/examples/1.9.x/server-go/examples/mongo/list-backups.md @@ -0,0 +1,22 @@ +```go +package main + +import ( + "fmt" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/mongo" +) + +client := client.New( + client.WithEndpoint("https://.cloud.appwrite.io/v1") + client.WithProject("") + client.WithKey("") +) + +service := mongo.New(client) + +response, error := service.ListBackups( + "", + mongo.WithListBackupsQueries([]string{}), +) +``` diff --git a/examples/1.9.x/server-go/examples/mongo/list-branches.md b/examples/1.9.x/server-go/examples/mongo/list-branches.md new file mode 100644 index 000000000..6c741dfbf --- /dev/null +++ b/examples/1.9.x/server-go/examples/mongo/list-branches.md @@ -0,0 +1,21 @@ +```go +package main + +import ( + "fmt" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/mongo" +) + +client := client.New( + client.WithEndpoint("https://.cloud.appwrite.io/v1") + client.WithProject("") + client.WithKey("") +) + +service := mongo.New(client) + +response, error := service.ListBranches( + "", +) +``` diff --git a/examples/1.9.x/server-go/examples/mongo/list-restorations.md b/examples/1.9.x/server-go/examples/mongo/list-restorations.md new file mode 100644 index 000000000..bc0498f40 --- /dev/null +++ b/examples/1.9.x/server-go/examples/mongo/list-restorations.md @@ -0,0 +1,25 @@ +```go +package main + +import ( + "fmt" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/mongo" +) + +client := client.New( + client.WithEndpoint("https://.cloud.appwrite.io/v1") + client.WithProject("") + client.WithKey("") +) + +service := mongo.New(client) + +response, error := service.ListRestorations( + "", + mongo.WithListRestorationsStatus("pending"), + mongo.WithListRestorationsType("backup"), + mongo.WithListRestorationsLimit(1), + mongo.WithListRestorationsOffset(0), +) +``` diff --git a/examples/1.9.x/server-go/examples/mongo/list-specifications.md b/examples/1.9.x/server-go/examples/mongo/list-specifications.md new file mode 100644 index 000000000..411f61eed --- /dev/null +++ b/examples/1.9.x/server-go/examples/mongo/list-specifications.md @@ -0,0 +1,19 @@ +```go +package main + +import ( + "fmt" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/mongo" +) + +client := client.New( + client.WithEndpoint("https://.cloud.appwrite.io/v1") + client.WithProject("") + client.WithKey("") +) + +service := mongo.New(client) + +response, error := service.ListSpecifications()) +``` diff --git a/examples/1.9.x/server-go/examples/mongo/list.md b/examples/1.9.x/server-go/examples/mongo/list.md new file mode 100644 index 000000000..589738334 --- /dev/null +++ b/examples/1.9.x/server-go/examples/mongo/list.md @@ -0,0 +1,21 @@ +```go +package main + +import ( + "fmt" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/mongo" +) + +client := client.New( + client.WithEndpoint("https://.cloud.appwrite.io/v1") + client.WithProject("") + client.WithKey("") +) + +service := mongo.New(client) + +response, error := service.List( + mongo.WithListQueries([]string{}), +) +``` diff --git a/examples/1.9.x/server-go/examples/mongo/update-backup-policy.md b/examples/1.9.x/server-go/examples/mongo/update-backup-policy.md new file mode 100644 index 000000000..5a60cb7cc --- /dev/null +++ b/examples/1.9.x/server-go/examples/mongo/update-backup-policy.md @@ -0,0 +1,26 @@ +```go +package main + +import ( + "fmt" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/mongo" +) + +client := client.New( + client.WithEndpoint("https://.cloud.appwrite.io/v1") + client.WithProject("") + client.WithKey("") +) + +service := mongo.New(client) + +response, error := service.UpdateBackupPolicy( + "", + "", + mongo.WithUpdateBackupPolicyName(""), + mongo.WithUpdateBackupPolicySchedule(""), + mongo.WithUpdateBackupPolicyRetention(1), + mongo.WithUpdateBackupPolicyEnabled(false), +) +``` diff --git a/examples/1.9.x/server-go/examples/mongo/update-backup-storage.md b/examples/1.9.x/server-go/examples/mongo/update-backup-storage.md new file mode 100644 index 000000000..e5df56c88 --- /dev/null +++ b/examples/1.9.x/server-go/examples/mongo/update-backup-storage.md @@ -0,0 +1,28 @@ +```go +package main + +import ( + "fmt" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/mongo" +) + +client := client.New( + client.WithEndpoint("https://.cloud.appwrite.io/v1") + client.WithProject("") + client.WithKey("") +) + +service := mongo.New(client) + +response, error := service.UpdateBackupStorage( + "", + "s3", + "", + "", + "", + mongo.WithUpdateBackupStorageRegion(""), + mongo.WithUpdateBackupStoragePrefix(""), + mongo.WithUpdateBackupStorageEndpoint(""), +) +``` diff --git a/examples/1.9.x/server-go/examples/mongo/update-credentials.md b/examples/1.9.x/server-go/examples/mongo/update-credentials.md new file mode 100644 index 000000000..dfb387a27 --- /dev/null +++ b/examples/1.9.x/server-go/examples/mongo/update-credentials.md @@ -0,0 +1,21 @@ +```go +package main + +import ( + "fmt" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/mongo" +) + +client := client.New( + client.WithEndpoint("https://.cloud.appwrite.io/v1") + client.WithProject("") + client.WithKey("") +) + +service := mongo.New(client) + +response, error := service.UpdateCredentials( + "", +) +``` diff --git a/examples/1.9.x/server-go/examples/mongo/update-maintenance.md b/examples/1.9.x/server-go/examples/mongo/update-maintenance.md new file mode 100644 index 000000000..02b214c7b --- /dev/null +++ b/examples/1.9.x/server-go/examples/mongo/update-maintenance.md @@ -0,0 +1,23 @@ +```go +package main + +import ( + "fmt" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/mongo" +) + +client := client.New( + client.WithEndpoint("https://.cloud.appwrite.io/v1") + client.WithProject("") + client.WithKey("") +) + +service := mongo.New(client) + +response, error := service.UpdateMaintenance( + "", + "sun", + 0, +) +``` diff --git a/examples/1.9.x/server-go/examples/mongo/update.md b/examples/1.9.x/server-go/examples/mongo/update.md new file mode 100644 index 000000000..b8d721d1d --- /dev/null +++ b/examples/1.9.x/server-go/examples/mongo/update.md @@ -0,0 +1,41 @@ +```go +package main + +import ( + "fmt" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/mongo" +) + +client := client.New( + client.WithEndpoint("https://.cloud.appwrite.io/v1") + client.WithProject("") + client.WithKey("") +) + +service := mongo.New(client) + +response, error := service.Update( + "", + mongo.WithUpdateName(""), + mongo.WithUpdateStatus("ready"), + mongo.WithUpdateSpecification(""), + mongo.WithUpdateReplicas(0), + mongo.WithUpdateSyncMode("async"), + mongo.WithUpdateNetworkIdleTimeoutSeconds(60), + mongo.WithUpdateNetworkIPAllowlist([]string{}), + mongo.WithUpdateIdleTimeoutMinutes(5), + mongo.WithUpdatePitr(false), + mongo.WithUpdatePitrRetentionDays(1), + mongo.WithUpdateStorageAutoscaling(false), + mongo.WithUpdateStorageAutoscalingThresholdPercent(50), + mongo.WithUpdateStorageAutoscalingMaxGb(0), + mongo.WithUpdateMetricsTraceSampleRate(0), + mongo.WithUpdateMetricsSlowQueryLogThresholdMs(0), + mongo.WithUpdateSqlApiEnabled(false), + mongo.WithUpdateSqlApiAllowedStatements([]string{}), + mongo.WithUpdateSqlApiMaxRows(1), + mongo.WithUpdateSqlApiMaxBytes(1024), + mongo.WithUpdateSqlApiTimeoutSeconds(1), +) +``` diff --git a/examples/1.9.x/server-go/examples/mysql/create-backup-policy.md b/examples/1.9.x/server-go/examples/mysql/create-backup-policy.md new file mode 100644 index 000000000..83d5a71e3 --- /dev/null +++ b/examples/1.9.x/server-go/examples/mysql/create-backup-policy.md @@ -0,0 +1,27 @@ +```go +package main + +import ( + "fmt" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/mysql" +) + +client := client.New( + client.WithEndpoint("https://.cloud.appwrite.io/v1") + client.WithProject("") + client.WithKey("") +) + +service := mysql.New(client) + +response, error := service.CreateBackupPolicy( + "", + "", + "", + "", + 1, + mysql.WithCreateBackupPolicyType("full"), + mysql.WithCreateBackupPolicyEnabled(false), +) +``` diff --git a/examples/1.9.x/server-go/examples/mysql/create-backup.md b/examples/1.9.x/server-go/examples/mysql/create-backup.md new file mode 100644 index 000000000..7411e6532 --- /dev/null +++ b/examples/1.9.x/server-go/examples/mysql/create-backup.md @@ -0,0 +1,22 @@ +```go +package main + +import ( + "fmt" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/mysql" +) + +client := client.New( + client.WithEndpoint("https://.cloud.appwrite.io/v1") + client.WithProject("") + client.WithKey("") +) + +service := mysql.New(client) + +response, error := service.CreateBackup( + "", + mysql.WithCreateBackupType("full"), +) +``` diff --git a/examples/1.9.x/server-go/examples/mysql/create-branch.md b/examples/1.9.x/server-go/examples/mysql/create-branch.md new file mode 100644 index 000000000..a0b47e5b1 --- /dev/null +++ b/examples/1.9.x/server-go/examples/mysql/create-branch.md @@ -0,0 +1,23 @@ +```go +package main + +import ( + "fmt" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/mysql" +) + +client := client.New( + client.WithEndpoint("https://.cloud.appwrite.io/v1") + client.WithProject("") + client.WithKey("") +) + +service := mysql.New(client) + +response, error := service.CreateBranch( + "", + mysql.WithCreateBranchBranchId(""), + mysql.WithCreateBranchTtl(300), +) +``` diff --git a/examples/1.9.x/server-go/examples/mysql/create-execution.md b/examples/1.9.x/server-go/examples/mysql/create-execution.md new file mode 100644 index 000000000..2aeb729f9 --- /dev/null +++ b/examples/1.9.x/server-go/examples/mysql/create-execution.md @@ -0,0 +1,24 @@ +```go +package main + +import ( + "fmt" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/mysql" +) + +client := client.New( + client.WithEndpoint("https://.cloud.appwrite.io/v1") + client.WithProject("") + client.WithKey("") +) + +service := mysql.New(client) + +response, error := service.CreateExecution( + "", + "", + mysql.WithCreateExecutionBindings(map[string]interface{}{}), + mysql.WithCreateExecutionTimeoutSeconds(1), +) +``` diff --git a/examples/1.9.x/server-go/examples/mysql/create-failover.md b/examples/1.9.x/server-go/examples/mysql/create-failover.md new file mode 100644 index 000000000..55aa0c7d7 --- /dev/null +++ b/examples/1.9.x/server-go/examples/mysql/create-failover.md @@ -0,0 +1,22 @@ +```go +package main + +import ( + "fmt" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/mysql" +) + +client := client.New( + client.WithEndpoint("https://.cloud.appwrite.io/v1") + client.WithProject("") + client.WithKey("") +) + +service := mysql.New(client) + +response, error := service.CreateFailover( + "", + mysql.WithCreateFailoverTargetReplicaId(""), +) +``` diff --git a/examples/1.9.x/server-go/examples/mysql/create-migration.md b/examples/1.9.x/server-go/examples/mysql/create-migration.md new file mode 100644 index 000000000..10df21768 --- /dev/null +++ b/examples/1.9.x/server-go/examples/mysql/create-migration.md @@ -0,0 +1,23 @@ +```go +package main + +import ( + "fmt" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/mysql" +) + +client := client.New( + client.WithEndpoint("https://.cloud.appwrite.io/v1") + client.WithProject("") + client.WithKey("") +) + +service := mysql.New(client) + +response, error := service.CreateMigration( + "", + "shared", + mysql.WithCreateMigrationSpecification(""), +) +``` diff --git a/examples/1.9.x/server-go/examples/mysql/create-restoration.md b/examples/1.9.x/server-go/examples/mysql/create-restoration.md new file mode 100644 index 000000000..49701d62d --- /dev/null +++ b/examples/1.9.x/server-go/examples/mysql/create-restoration.md @@ -0,0 +1,24 @@ +```go +package main + +import ( + "fmt" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/mysql" +) + +client := client.New( + client.WithEndpoint("https://.cloud.appwrite.io/v1") + client.WithProject("") + client.WithKey("") +) + +service := mysql.New(client) + +response, error := service.CreateRestoration( + "", + mysql.WithCreateRestorationType("backup"), + mysql.WithCreateRestorationBackupId(""), + mysql.WithCreateRestorationTargetTime("2020-10-15T06:38:00.000+00:00"), +) +``` diff --git a/examples/1.9.x/server-go/examples/mysql/create-upgrade.md b/examples/1.9.x/server-go/examples/mysql/create-upgrade.md new file mode 100644 index 000000000..3629a7e70 --- /dev/null +++ b/examples/1.9.x/server-go/examples/mysql/create-upgrade.md @@ -0,0 +1,22 @@ +```go +package main + +import ( + "fmt" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/mysql" +) + +client := client.New( + client.WithEndpoint("https://.cloud.appwrite.io/v1") + client.WithProject("") + client.WithKey("") +) + +service := mysql.New(client) + +response, error := service.CreateUpgrade( + "", + "", +) +``` diff --git a/examples/1.9.x/server-go/examples/mysql/create.md b/examples/1.9.x/server-go/examples/mysql/create.md new file mode 100644 index 000000000..cfa9cef1d --- /dev/null +++ b/examples/1.9.x/server-go/examples/mysql/create.md @@ -0,0 +1,35 @@ +```go +package main + +import ( + "fmt" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/mysql" +) + +client := client.New( + client.WithEndpoint("https://.cloud.appwrite.io/v1") + client.WithProject("") + client.WithKey("") +) + +service := mysql.New(client) + +response, error := service.Create( + "", + "", + mysql.WithCreateVersion("17"), + mysql.WithCreateSpecification(""), + mysql.WithCreateReplicas(0), + mysql.WithCreateSyncMode("async"), + mysql.WithCreateNetworkIdleTimeoutSeconds(60), + mysql.WithCreateNetworkIPAllowlist([]string{}), + mysql.WithCreateIdleTimeoutMinutes(5), + mysql.WithCreatePitr(false), + mysql.WithCreatePitrRetentionDays(1), + mysql.WithCreateStorageAutoscaling(false), + mysql.WithCreateStorageAutoscalingThresholdPercent(50), + mysql.WithCreateStorageAutoscalingMaxGb(0), + mysql.WithCreateApi("nativedb"), +) +``` diff --git a/examples/1.9.x/server-go/examples/mysql/delete-backup-policy.md b/examples/1.9.x/server-go/examples/mysql/delete-backup-policy.md new file mode 100644 index 000000000..dde678cd9 --- /dev/null +++ b/examples/1.9.x/server-go/examples/mysql/delete-backup-policy.md @@ -0,0 +1,22 @@ +```go +package main + +import ( + "fmt" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/mysql" +) + +client := client.New( + client.WithEndpoint("https://.cloud.appwrite.io/v1") + client.WithProject("") + client.WithKey("") +) + +service := mysql.New(client) + +response, error := service.DeleteBackupPolicy( + "", + "", +) +``` diff --git a/examples/1.9.x/server-go/examples/mysql/delete-backup.md b/examples/1.9.x/server-go/examples/mysql/delete-backup.md new file mode 100644 index 000000000..35a0f6c6c --- /dev/null +++ b/examples/1.9.x/server-go/examples/mysql/delete-backup.md @@ -0,0 +1,22 @@ +```go +package main + +import ( + "fmt" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/mysql" +) + +client := client.New( + client.WithEndpoint("https://.cloud.appwrite.io/v1") + client.WithProject("") + client.WithKey("") +) + +service := mysql.New(client) + +response, error := service.DeleteBackup( + "", + "", +) +``` diff --git a/examples/1.9.x/server-go/examples/mysql/delete-branch.md b/examples/1.9.x/server-go/examples/mysql/delete-branch.md new file mode 100644 index 000000000..6de702acb --- /dev/null +++ b/examples/1.9.x/server-go/examples/mysql/delete-branch.md @@ -0,0 +1,22 @@ +```go +package main + +import ( + "fmt" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/mysql" +) + +client := client.New( + client.WithEndpoint("https://.cloud.appwrite.io/v1") + client.WithProject("") + client.WithKey("") +) + +service := mysql.New(client) + +response, error := service.DeleteBranch( + "", + "", +) +``` diff --git a/examples/1.9.x/server-go/examples/mysql/delete.md b/examples/1.9.x/server-go/examples/mysql/delete.md new file mode 100644 index 000000000..3b29d371c --- /dev/null +++ b/examples/1.9.x/server-go/examples/mysql/delete.md @@ -0,0 +1,21 @@ +```go +package main + +import ( + "fmt" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/mysql" +) + +client := client.New( + client.WithEndpoint("https://.cloud.appwrite.io/v1") + client.WithProject("") + client.WithKey("") +) + +service := mysql.New(client) + +response, error := service.Delete( + "", +) +``` diff --git a/examples/1.9.x/server-go/examples/mysql/get-backup-policy.md b/examples/1.9.x/server-go/examples/mysql/get-backup-policy.md new file mode 100644 index 000000000..ec790c086 --- /dev/null +++ b/examples/1.9.x/server-go/examples/mysql/get-backup-policy.md @@ -0,0 +1,22 @@ +```go +package main + +import ( + "fmt" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/mysql" +) + +client := client.New( + client.WithEndpoint("https://.cloud.appwrite.io/v1") + client.WithProject("") + client.WithKey("") +) + +service := mysql.New(client) + +response, error := service.GetBackupPolicy( + "", + "", +) +``` diff --git a/examples/1.9.x/server-go/examples/mysql/get-backup.md b/examples/1.9.x/server-go/examples/mysql/get-backup.md new file mode 100644 index 000000000..cd0b86acf --- /dev/null +++ b/examples/1.9.x/server-go/examples/mysql/get-backup.md @@ -0,0 +1,22 @@ +```go +package main + +import ( + "fmt" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/mysql" +) + +client := client.New( + client.WithEndpoint("https://.cloud.appwrite.io/v1") + client.WithProject("") + client.WithKey("") +) + +service := mysql.New(client) + +response, error := service.GetBackup( + "", + "", +) +``` diff --git a/examples/1.9.x/server-go/examples/mysql/get-pitr.md b/examples/1.9.x/server-go/examples/mysql/get-pitr.md new file mode 100644 index 000000000..00b5aed5c --- /dev/null +++ b/examples/1.9.x/server-go/examples/mysql/get-pitr.md @@ -0,0 +1,21 @@ +```go +package main + +import ( + "fmt" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/mysql" +) + +client := client.New( + client.WithEndpoint("https://.cloud.appwrite.io/v1") + client.WithProject("") + client.WithKey("") +) + +service := mysql.New(client) + +response, error := service.GetPitr( + "", +) +``` diff --git a/examples/1.9.x/server-go/examples/mysql/get-pooler.md b/examples/1.9.x/server-go/examples/mysql/get-pooler.md new file mode 100644 index 000000000..d91063356 --- /dev/null +++ b/examples/1.9.x/server-go/examples/mysql/get-pooler.md @@ -0,0 +1,21 @@ +```go +package main + +import ( + "fmt" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/mysql" +) + +client := client.New( + client.WithEndpoint("https://.cloud.appwrite.io/v1") + client.WithProject("") + client.WithKey("") +) + +service := mysql.New(client) + +response, error := service.GetPooler( + "", +) +``` diff --git a/examples/1.9.x/server-go/examples/mysql/get-replicas.md b/examples/1.9.x/server-go/examples/mysql/get-replicas.md new file mode 100644 index 000000000..22333987a --- /dev/null +++ b/examples/1.9.x/server-go/examples/mysql/get-replicas.md @@ -0,0 +1,21 @@ +```go +package main + +import ( + "fmt" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/mysql" +) + +client := client.New( + client.WithEndpoint("https://.cloud.appwrite.io/v1") + client.WithProject("") + client.WithKey("") +) + +service := mysql.New(client) + +response, error := service.GetReplicas( + "", +) +``` diff --git a/examples/1.9.x/server-go/examples/mysql/get-restoration.md b/examples/1.9.x/server-go/examples/mysql/get-restoration.md new file mode 100644 index 000000000..938853168 --- /dev/null +++ b/examples/1.9.x/server-go/examples/mysql/get-restoration.md @@ -0,0 +1,22 @@ +```go +package main + +import ( + "fmt" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/mysql" +) + +client := client.New( + client.WithEndpoint("https://.cloud.appwrite.io/v1") + client.WithProject("") + client.WithKey("") +) + +service := mysql.New(client) + +response, error := service.GetRestoration( + "", + "", +) +``` diff --git a/examples/1.9.x/server-go/examples/mysql/get-status.md b/examples/1.9.x/server-go/examples/mysql/get-status.md new file mode 100644 index 000000000..b0e624d99 --- /dev/null +++ b/examples/1.9.x/server-go/examples/mysql/get-status.md @@ -0,0 +1,21 @@ +```go +package main + +import ( + "fmt" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/mysql" +) + +client := client.New( + client.WithEndpoint("https://.cloud.appwrite.io/v1") + client.WithProject("") + client.WithKey("") +) + +service := mysql.New(client) + +response, error := service.GetStatus( + "", +) +``` diff --git a/examples/1.9.x/server-go/examples/mysql/get.md b/examples/1.9.x/server-go/examples/mysql/get.md new file mode 100644 index 000000000..ff12a7966 --- /dev/null +++ b/examples/1.9.x/server-go/examples/mysql/get.md @@ -0,0 +1,21 @@ +```go +package main + +import ( + "fmt" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/mysql" +) + +client := client.New( + client.WithEndpoint("https://.cloud.appwrite.io/v1") + client.WithProject("") + client.WithKey("") +) + +service := mysql.New(client) + +response, error := service.Get( + "", +) +``` diff --git a/examples/1.9.x/server-go/examples/mysql/list-backup-policies.md b/examples/1.9.x/server-go/examples/mysql/list-backup-policies.md new file mode 100644 index 000000000..7dde8dbe3 --- /dev/null +++ b/examples/1.9.x/server-go/examples/mysql/list-backup-policies.md @@ -0,0 +1,22 @@ +```go +package main + +import ( + "fmt" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/mysql" +) + +client := client.New( + client.WithEndpoint("https://.cloud.appwrite.io/v1") + client.WithProject("") + client.WithKey("") +) + +service := mysql.New(client) + +response, error := service.ListBackupPolicies( + "", + mysql.WithListBackupPoliciesQueries([]string{}), +) +``` diff --git a/examples/1.9.x/server-go/examples/mysql/list-backups.md b/examples/1.9.x/server-go/examples/mysql/list-backups.md new file mode 100644 index 000000000..075622eaf --- /dev/null +++ b/examples/1.9.x/server-go/examples/mysql/list-backups.md @@ -0,0 +1,22 @@ +```go +package main + +import ( + "fmt" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/mysql" +) + +client := client.New( + client.WithEndpoint("https://.cloud.appwrite.io/v1") + client.WithProject("") + client.WithKey("") +) + +service := mysql.New(client) + +response, error := service.ListBackups( + "", + mysql.WithListBackupsQueries([]string{}), +) +``` diff --git a/examples/1.9.x/server-go/examples/mysql/list-branches.md b/examples/1.9.x/server-go/examples/mysql/list-branches.md new file mode 100644 index 000000000..b51e62a72 --- /dev/null +++ b/examples/1.9.x/server-go/examples/mysql/list-branches.md @@ -0,0 +1,21 @@ +```go +package main + +import ( + "fmt" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/mysql" +) + +client := client.New( + client.WithEndpoint("https://.cloud.appwrite.io/v1") + client.WithProject("") + client.WithKey("") +) + +service := mysql.New(client) + +response, error := service.ListBranches( + "", +) +``` diff --git a/examples/1.9.x/server-go/examples/mysql/list-restorations.md b/examples/1.9.x/server-go/examples/mysql/list-restorations.md new file mode 100644 index 000000000..b88c5b71f --- /dev/null +++ b/examples/1.9.x/server-go/examples/mysql/list-restorations.md @@ -0,0 +1,25 @@ +```go +package main + +import ( + "fmt" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/mysql" +) + +client := client.New( + client.WithEndpoint("https://.cloud.appwrite.io/v1") + client.WithProject("") + client.WithKey("") +) + +service := mysql.New(client) + +response, error := service.ListRestorations( + "", + mysql.WithListRestorationsStatus("pending"), + mysql.WithListRestorationsType("backup"), + mysql.WithListRestorationsLimit(1), + mysql.WithListRestorationsOffset(0), +) +``` diff --git a/examples/1.9.x/server-go/examples/mysql/list-specifications.md b/examples/1.9.x/server-go/examples/mysql/list-specifications.md new file mode 100644 index 000000000..29bf456a7 --- /dev/null +++ b/examples/1.9.x/server-go/examples/mysql/list-specifications.md @@ -0,0 +1,19 @@ +```go +package main + +import ( + "fmt" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/mysql" +) + +client := client.New( + client.WithEndpoint("https://.cloud.appwrite.io/v1") + client.WithProject("") + client.WithKey("") +) + +service := mysql.New(client) + +response, error := service.ListSpecifications()) +``` diff --git a/examples/1.9.x/server-go/examples/mysql/list.md b/examples/1.9.x/server-go/examples/mysql/list.md new file mode 100644 index 000000000..e5123bbeb --- /dev/null +++ b/examples/1.9.x/server-go/examples/mysql/list.md @@ -0,0 +1,21 @@ +```go +package main + +import ( + "fmt" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/mysql" +) + +client := client.New( + client.WithEndpoint("https://.cloud.appwrite.io/v1") + client.WithProject("") + client.WithKey("") +) + +service := mysql.New(client) + +response, error := service.List( + mysql.WithListQueries([]string{}), +) +``` diff --git a/examples/1.9.x/server-go/examples/mysql/update-backup-policy.md b/examples/1.9.x/server-go/examples/mysql/update-backup-policy.md new file mode 100644 index 000000000..a179ecf38 --- /dev/null +++ b/examples/1.9.x/server-go/examples/mysql/update-backup-policy.md @@ -0,0 +1,26 @@ +```go +package main + +import ( + "fmt" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/mysql" +) + +client := client.New( + client.WithEndpoint("https://.cloud.appwrite.io/v1") + client.WithProject("") + client.WithKey("") +) + +service := mysql.New(client) + +response, error := service.UpdateBackupPolicy( + "", + "", + mysql.WithUpdateBackupPolicyName(""), + mysql.WithUpdateBackupPolicySchedule(""), + mysql.WithUpdateBackupPolicyRetention(1), + mysql.WithUpdateBackupPolicyEnabled(false), +) +``` diff --git a/examples/1.9.x/server-go/examples/mysql/update-backup-storage.md b/examples/1.9.x/server-go/examples/mysql/update-backup-storage.md new file mode 100644 index 000000000..d421d95d8 --- /dev/null +++ b/examples/1.9.x/server-go/examples/mysql/update-backup-storage.md @@ -0,0 +1,28 @@ +```go +package main + +import ( + "fmt" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/mysql" +) + +client := client.New( + client.WithEndpoint("https://.cloud.appwrite.io/v1") + client.WithProject("") + client.WithKey("") +) + +service := mysql.New(client) + +response, error := service.UpdateBackupStorage( + "", + "s3", + "", + "", + "", + mysql.WithUpdateBackupStorageRegion(""), + mysql.WithUpdateBackupStoragePrefix(""), + mysql.WithUpdateBackupStorageEndpoint(""), +) +``` diff --git a/examples/1.9.x/server-go/examples/mysql/update-credentials.md b/examples/1.9.x/server-go/examples/mysql/update-credentials.md new file mode 100644 index 000000000..a82abcf36 --- /dev/null +++ b/examples/1.9.x/server-go/examples/mysql/update-credentials.md @@ -0,0 +1,21 @@ +```go +package main + +import ( + "fmt" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/mysql" +) + +client := client.New( + client.WithEndpoint("https://.cloud.appwrite.io/v1") + client.WithProject("") + client.WithKey("") +) + +service := mysql.New(client) + +response, error := service.UpdateCredentials( + "", +) +``` diff --git a/examples/1.9.x/server-go/examples/mysql/update-maintenance.md b/examples/1.9.x/server-go/examples/mysql/update-maintenance.md new file mode 100644 index 000000000..63e55f362 --- /dev/null +++ b/examples/1.9.x/server-go/examples/mysql/update-maintenance.md @@ -0,0 +1,23 @@ +```go +package main + +import ( + "fmt" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/mysql" +) + +client := client.New( + client.WithEndpoint("https://.cloud.appwrite.io/v1") + client.WithProject("") + client.WithKey("") +) + +service := mysql.New(client) + +response, error := service.UpdateMaintenance( + "", + "sun", + 0, +) +``` diff --git a/examples/1.9.x/server-go/examples/mysql/update-pooler.md b/examples/1.9.x/server-go/examples/mysql/update-pooler.md new file mode 100644 index 000000000..2df2588ff --- /dev/null +++ b/examples/1.9.x/server-go/examples/mysql/update-pooler.md @@ -0,0 +1,29 @@ +```go +package main + +import ( + "fmt" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/mysql" +) + +client := client.New( + client.WithEndpoint("https://.cloud.appwrite.io/v1") + client.WithProject("") + client.WithKey("") +) + +service := mysql.New(client) + +response, error := service.UpdatePooler( + "", + mysql.WithUpdatePoolerMode("transaction"), + mysql.WithUpdatePoolerMaxConnections(10), + mysql.WithUpdatePoolerDefaultPoolSize(1), + mysql.WithUpdatePoolerReadWriteSplitting(false), + mysql.WithUpdatePoolerPoolerCpuRequest(""), + mysql.WithUpdatePoolerPoolerCpuLimit(""), + mysql.WithUpdatePoolerPoolerMemoryRequest(""), + mysql.WithUpdatePoolerPoolerMemoryLimit(""), +) +``` diff --git a/examples/1.9.x/server-go/examples/mysql/update.md b/examples/1.9.x/server-go/examples/mysql/update.md new file mode 100644 index 000000000..1e0c05070 --- /dev/null +++ b/examples/1.9.x/server-go/examples/mysql/update.md @@ -0,0 +1,41 @@ +```go +package main + +import ( + "fmt" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/mysql" +) + +client := client.New( + client.WithEndpoint("https://.cloud.appwrite.io/v1") + client.WithProject("") + client.WithKey("") +) + +service := mysql.New(client) + +response, error := service.Update( + "", + mysql.WithUpdateName(""), + mysql.WithUpdateStatus("ready"), + mysql.WithUpdateSpecification(""), + mysql.WithUpdateReplicas(0), + mysql.WithUpdateSyncMode("async"), + mysql.WithUpdateNetworkIdleTimeoutSeconds(60), + mysql.WithUpdateNetworkIPAllowlist([]string{}), + mysql.WithUpdateIdleTimeoutMinutes(5), + mysql.WithUpdatePitr(false), + mysql.WithUpdatePitrRetentionDays(1), + mysql.WithUpdateStorageAutoscaling(false), + mysql.WithUpdateStorageAutoscalingThresholdPercent(50), + mysql.WithUpdateStorageAutoscalingMaxGb(0), + mysql.WithUpdateMetricsTraceSampleRate(0), + mysql.WithUpdateMetricsSlowQueryLogThresholdMs(0), + mysql.WithUpdateSqlApiEnabled(false), + mysql.WithUpdateSqlApiAllowedStatements([]string{}), + mysql.WithUpdateSqlApiMaxRows(1), + mysql.WithUpdateSqlApiMaxBytes(1024), + mysql.WithUpdateSqlApiTimeoutSeconds(1), +) +``` diff --git a/examples/1.9.x/server-go/examples/organization/create-key.md b/examples/1.9.x/server-go/examples/organization/create-key.md index 667627b66..0d56e88fe 100644 --- a/examples/1.9.x/server-go/examples/organization/create-key.md +++ b/examples/1.9.x/server-go/examples/organization/create-key.md @@ -3,8 +3,8 @@ package main import ( "fmt" - "github.com/appwrite/sdk-for-go/v5/client" - "github.com/appwrite/sdk-for-go/v5/organization" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/organization" ) client := client.New( diff --git a/examples/1.9.x/server-go/examples/organization/create-membership.md b/examples/1.9.x/server-go/examples/organization/create-membership.md new file mode 100644 index 000000000..e30bbb32c --- /dev/null +++ b/examples/1.9.x/server-go/examples/organization/create-membership.md @@ -0,0 +1,26 @@ +```go +package main + +import ( + "fmt" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/organization" +) + +client := client.New( + client.WithEndpoint("https://.cloud.appwrite.io/v1") + client.WithProject("") + client.WithKey("") +) + +service := organization.New(client) + +response, error := service.CreateMembership( + []string{}, + organization.WithCreateMembershipEmail("email@example.com"), + organization.WithCreateMembershipUserId(""), + organization.WithCreateMembershipPhone("+12065550100"), + organization.WithCreateMembershipUrl("https://example.com"), + organization.WithCreateMembershipName(""), +) +``` diff --git a/examples/1.9.x/server-go/examples/organization/create-project.md b/examples/1.9.x/server-go/examples/organization/create-project.md index fc59725b6..e90814d75 100644 --- a/examples/1.9.x/server-go/examples/organization/create-project.md +++ b/examples/1.9.x/server-go/examples/organization/create-project.md @@ -3,8 +3,8 @@ package main import ( "fmt" - "github.com/appwrite/sdk-for-go/v5/client" - "github.com/appwrite/sdk-for-go/v5/organization" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/organization" ) client := client.New( diff --git a/examples/1.9.x/server-go/examples/organization/delete-key.md b/examples/1.9.x/server-go/examples/organization/delete-key.md index 7d81d6e93..1785cc252 100644 --- a/examples/1.9.x/server-go/examples/organization/delete-key.md +++ b/examples/1.9.x/server-go/examples/organization/delete-key.md @@ -3,8 +3,8 @@ package main import ( "fmt" - "github.com/appwrite/sdk-for-go/v5/client" - "github.com/appwrite/sdk-for-go/v5/organization" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/organization" ) client := client.New( diff --git a/examples/1.9.x/server-go/examples/organization/delete-membership.md b/examples/1.9.x/server-go/examples/organization/delete-membership.md new file mode 100644 index 000000000..00c20f8cf --- /dev/null +++ b/examples/1.9.x/server-go/examples/organization/delete-membership.md @@ -0,0 +1,21 @@ +```go +package main + +import ( + "fmt" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/organization" +) + +client := client.New( + client.WithEndpoint("https://.cloud.appwrite.io/v1") + client.WithProject("") + client.WithKey("") +) + +service := organization.New(client) + +response, error := service.DeleteMembership( + "", +) +``` diff --git a/examples/1.9.x/server-go/examples/organization/delete-project.md b/examples/1.9.x/server-go/examples/organization/delete-project.md index 3a8c9341c..b0a009436 100644 --- a/examples/1.9.x/server-go/examples/organization/delete-project.md +++ b/examples/1.9.x/server-go/examples/organization/delete-project.md @@ -3,8 +3,8 @@ package main import ( "fmt" - "github.com/appwrite/sdk-for-go/v5/client" - "github.com/appwrite/sdk-for-go/v5/organization" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/organization" ) client := client.New( diff --git a/examples/1.9.x/server-go/examples/organization/delete.md b/examples/1.9.x/server-go/examples/organization/delete.md new file mode 100644 index 000000000..805da9358 --- /dev/null +++ b/examples/1.9.x/server-go/examples/organization/delete.md @@ -0,0 +1,19 @@ +```go +package main + +import ( + "fmt" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/organization" +) + +client := client.New( + client.WithEndpoint("https://.cloud.appwrite.io/v1") + client.WithProject("") + client.WithKey("") +) + +service := organization.New(client) + +response, error := service.Delete()) +``` diff --git a/examples/1.9.x/server-go/examples/organization/get-key.md b/examples/1.9.x/server-go/examples/organization/get-key.md index 903ab3612..7294151a8 100644 --- a/examples/1.9.x/server-go/examples/organization/get-key.md +++ b/examples/1.9.x/server-go/examples/organization/get-key.md @@ -3,8 +3,8 @@ package main import ( "fmt" - "github.com/appwrite/sdk-for-go/v5/client" - "github.com/appwrite/sdk-for-go/v5/organization" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/organization" ) client := client.New( diff --git a/examples/1.9.x/server-go/examples/organization/get-membership.md b/examples/1.9.x/server-go/examples/organization/get-membership.md new file mode 100644 index 000000000..c997db576 --- /dev/null +++ b/examples/1.9.x/server-go/examples/organization/get-membership.md @@ -0,0 +1,21 @@ +```go +package main + +import ( + "fmt" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/organization" +) + +client := client.New( + client.WithEndpoint("https://.cloud.appwrite.io/v1") + client.WithProject("") + client.WithKey("") +) + +service := organization.New(client) + +response, error := service.GetMembership( + "", +) +``` diff --git a/examples/1.9.x/server-go/examples/organization/get-project.md b/examples/1.9.x/server-go/examples/organization/get-project.md index 65165500f..d46837adb 100644 --- a/examples/1.9.x/server-go/examples/organization/get-project.md +++ b/examples/1.9.x/server-go/examples/organization/get-project.md @@ -3,8 +3,8 @@ package main import ( "fmt" - "github.com/appwrite/sdk-for-go/v5/client" - "github.com/appwrite/sdk-for-go/v5/organization" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/organization" ) client := client.New( diff --git a/examples/1.9.x/server-go/examples/organization/get.md b/examples/1.9.x/server-go/examples/organization/get.md new file mode 100644 index 000000000..6a5cdb338 --- /dev/null +++ b/examples/1.9.x/server-go/examples/organization/get.md @@ -0,0 +1,19 @@ +```go +package main + +import ( + "fmt" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/organization" +) + +client := client.New( + client.WithEndpoint("https://.cloud.appwrite.io/v1") + client.WithProject("") + client.WithKey("") +) + +service := organization.New(client) + +response, error := service.Get()) +``` diff --git a/examples/1.9.x/server-go/examples/organization/list-keys.md b/examples/1.9.x/server-go/examples/organization/list-keys.md index 50aa6adc6..2b032cebb 100644 --- a/examples/1.9.x/server-go/examples/organization/list-keys.md +++ b/examples/1.9.x/server-go/examples/organization/list-keys.md @@ -3,8 +3,8 @@ package main import ( "fmt" - "github.com/appwrite/sdk-for-go/v5/client" - "github.com/appwrite/sdk-for-go/v5/organization" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/organization" ) client := client.New( diff --git a/examples/1.9.x/server-go/examples/organization/list-memberships.md b/examples/1.9.x/server-go/examples/organization/list-memberships.md new file mode 100644 index 000000000..135d73cb8 --- /dev/null +++ b/examples/1.9.x/server-go/examples/organization/list-memberships.md @@ -0,0 +1,23 @@ +```go +package main + +import ( + "fmt" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/organization" +) + +client := client.New( + client.WithEndpoint("https://.cloud.appwrite.io/v1") + client.WithProject("") + client.WithKey("") +) + +service := organization.New(client) + +response, error := service.ListMemberships( + organization.WithListMembershipsQueries([]string{}), + organization.WithListMembershipsSearch(""), + organization.WithListMembershipsTotal(false), +) +``` diff --git a/examples/1.9.x/server-go/examples/organization/list-projects.md b/examples/1.9.x/server-go/examples/organization/list-projects.md index d22173aab..f252924c8 100644 --- a/examples/1.9.x/server-go/examples/organization/list-projects.md +++ b/examples/1.9.x/server-go/examples/organization/list-projects.md @@ -3,8 +3,8 @@ package main import ( "fmt" - "github.com/appwrite/sdk-for-go/v5/client" - "github.com/appwrite/sdk-for-go/v5/organization" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/organization" ) client := client.New( diff --git a/examples/1.9.x/server-go/examples/organization/update-key.md b/examples/1.9.x/server-go/examples/organization/update-key.md index 52794c5ed..3bec3cf93 100644 --- a/examples/1.9.x/server-go/examples/organization/update-key.md +++ b/examples/1.9.x/server-go/examples/organization/update-key.md @@ -3,8 +3,8 @@ package main import ( "fmt" - "github.com/appwrite/sdk-for-go/v5/client" - "github.com/appwrite/sdk-for-go/v5/organization" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/organization" ) client := client.New( diff --git a/examples/1.9.x/server-go/examples/organization/update-membership.md b/examples/1.9.x/server-go/examples/organization/update-membership.md new file mode 100644 index 000000000..a91e450f9 --- /dev/null +++ b/examples/1.9.x/server-go/examples/organization/update-membership.md @@ -0,0 +1,22 @@ +```go +package main + +import ( + "fmt" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/organization" +) + +client := client.New( + client.WithEndpoint("https://.cloud.appwrite.io/v1") + client.WithProject("") + client.WithKey("") +) + +service := organization.New(client) + +response, error := service.UpdateMembership( + "", + []string{}, +) +``` diff --git a/examples/1.9.x/server-go/examples/organization/update-project.md b/examples/1.9.x/server-go/examples/organization/update-project.md index 7c9d0567f..389964671 100644 --- a/examples/1.9.x/server-go/examples/organization/update-project.md +++ b/examples/1.9.x/server-go/examples/organization/update-project.md @@ -3,8 +3,8 @@ package main import ( "fmt" - "github.com/appwrite/sdk-for-go/v5/client" - "github.com/appwrite/sdk-for-go/v5/organization" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/organization" ) client := client.New( diff --git a/examples/1.9.x/server-go/examples/organization/update.md b/examples/1.9.x/server-go/examples/organization/update.md new file mode 100644 index 000000000..6cfe0f06f --- /dev/null +++ b/examples/1.9.x/server-go/examples/organization/update.md @@ -0,0 +1,21 @@ +```go +package main + +import ( + "fmt" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/organization" +) + +client := client.New( + client.WithEndpoint("https://.cloud.appwrite.io/v1") + client.WithProject("") + client.WithKey("") +) + +service := organization.New(client) + +response, error := service.Update( + "", +) +``` diff --git a/examples/1.9.x/server-go/examples/postgresql/create-backup-policy.md b/examples/1.9.x/server-go/examples/postgresql/create-backup-policy.md new file mode 100644 index 000000000..e27b15144 --- /dev/null +++ b/examples/1.9.x/server-go/examples/postgresql/create-backup-policy.md @@ -0,0 +1,27 @@ +```go +package main + +import ( + "fmt" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/postgresql" +) + +client := client.New( + client.WithEndpoint("https://.cloud.appwrite.io/v1") + client.WithProject("") + client.WithKey("") +) + +service := postgresql.New(client) + +response, error := service.CreateBackupPolicy( + "", + "", + "", + "", + 1, + postgresql.WithCreateBackupPolicyType("full"), + postgresql.WithCreateBackupPolicyEnabled(false), +) +``` diff --git a/examples/1.9.x/server-go/examples/postgresql/create-backup.md b/examples/1.9.x/server-go/examples/postgresql/create-backup.md new file mode 100644 index 000000000..0db677ced --- /dev/null +++ b/examples/1.9.x/server-go/examples/postgresql/create-backup.md @@ -0,0 +1,22 @@ +```go +package main + +import ( + "fmt" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/postgresql" +) + +client := client.New( + client.WithEndpoint("https://.cloud.appwrite.io/v1") + client.WithProject("") + client.WithKey("") +) + +service := postgresql.New(client) + +response, error := service.CreateBackup( + "", + postgresql.WithCreateBackupType("full"), +) +``` diff --git a/examples/1.9.x/server-go/examples/postgresql/create-branch.md b/examples/1.9.x/server-go/examples/postgresql/create-branch.md new file mode 100644 index 000000000..c708c81c2 --- /dev/null +++ b/examples/1.9.x/server-go/examples/postgresql/create-branch.md @@ -0,0 +1,23 @@ +```go +package main + +import ( + "fmt" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/postgresql" +) + +client := client.New( + client.WithEndpoint("https://.cloud.appwrite.io/v1") + client.WithProject("") + client.WithKey("") +) + +service := postgresql.New(client) + +response, error := service.CreateBranch( + "", + postgresql.WithCreateBranchBranchId(""), + postgresql.WithCreateBranchTtl(300), +) +``` diff --git a/examples/1.9.x/server-go/examples/postgresql/create-execution.md b/examples/1.9.x/server-go/examples/postgresql/create-execution.md new file mode 100644 index 000000000..164785e9a --- /dev/null +++ b/examples/1.9.x/server-go/examples/postgresql/create-execution.md @@ -0,0 +1,24 @@ +```go +package main + +import ( + "fmt" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/postgresql" +) + +client := client.New( + client.WithEndpoint("https://.cloud.appwrite.io/v1") + client.WithProject("") + client.WithKey("") +) + +service := postgresql.New(client) + +response, error := service.CreateExecution( + "", + "", + postgresql.WithCreateExecutionBindings(map[string]interface{}{}), + postgresql.WithCreateExecutionTimeoutSeconds(1), +) +``` diff --git a/examples/1.9.x/server-go/examples/postgresql/create-extension.md b/examples/1.9.x/server-go/examples/postgresql/create-extension.md new file mode 100644 index 000000000..e0ed04dcd --- /dev/null +++ b/examples/1.9.x/server-go/examples/postgresql/create-extension.md @@ -0,0 +1,22 @@ +```go +package main + +import ( + "fmt" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/postgresql" +) + +client := client.New( + client.WithEndpoint("https://.cloud.appwrite.io/v1") + client.WithProject("") + client.WithKey("") +) + +service := postgresql.New(client) + +response, error := service.CreateExtension( + "", + "", +) +``` diff --git a/examples/1.9.x/server-go/examples/postgresql/create-failover.md b/examples/1.9.x/server-go/examples/postgresql/create-failover.md new file mode 100644 index 000000000..fdb48e4fa --- /dev/null +++ b/examples/1.9.x/server-go/examples/postgresql/create-failover.md @@ -0,0 +1,22 @@ +```go +package main + +import ( + "fmt" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/postgresql" +) + +client := client.New( + client.WithEndpoint("https://.cloud.appwrite.io/v1") + client.WithProject("") + client.WithKey("") +) + +service := postgresql.New(client) + +response, error := service.CreateFailover( + "", + postgresql.WithCreateFailoverTargetReplicaId(""), +) +``` diff --git a/examples/1.9.x/server-go/examples/postgresql/create-migration.md b/examples/1.9.x/server-go/examples/postgresql/create-migration.md new file mode 100644 index 000000000..ea5d461d7 --- /dev/null +++ b/examples/1.9.x/server-go/examples/postgresql/create-migration.md @@ -0,0 +1,23 @@ +```go +package main + +import ( + "fmt" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/postgresql" +) + +client := client.New( + client.WithEndpoint("https://.cloud.appwrite.io/v1") + client.WithProject("") + client.WithKey("") +) + +service := postgresql.New(client) + +response, error := service.CreateMigration( + "", + "shared", + postgresql.WithCreateMigrationSpecification(""), +) +``` diff --git a/examples/1.9.x/server-go/examples/postgresql/create-restoration.md b/examples/1.9.x/server-go/examples/postgresql/create-restoration.md new file mode 100644 index 000000000..39c6bb488 --- /dev/null +++ b/examples/1.9.x/server-go/examples/postgresql/create-restoration.md @@ -0,0 +1,24 @@ +```go +package main + +import ( + "fmt" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/postgresql" +) + +client := client.New( + client.WithEndpoint("https://.cloud.appwrite.io/v1") + client.WithProject("") + client.WithKey("") +) + +service := postgresql.New(client) + +response, error := service.CreateRestoration( + "", + postgresql.WithCreateRestorationType("backup"), + postgresql.WithCreateRestorationBackupId(""), + postgresql.WithCreateRestorationTargetTime("2020-10-15T06:38:00.000+00:00"), +) +``` diff --git a/examples/1.9.x/server-go/examples/postgresql/create-upgrade.md b/examples/1.9.x/server-go/examples/postgresql/create-upgrade.md new file mode 100644 index 000000000..d62392079 --- /dev/null +++ b/examples/1.9.x/server-go/examples/postgresql/create-upgrade.md @@ -0,0 +1,22 @@ +```go +package main + +import ( + "fmt" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/postgresql" +) + +client := client.New( + client.WithEndpoint("https://.cloud.appwrite.io/v1") + client.WithProject("") + client.WithKey("") +) + +service := postgresql.New(client) + +response, error := service.CreateUpgrade( + "", + "", +) +``` diff --git a/examples/1.9.x/server-go/examples/postgresql/create.md b/examples/1.9.x/server-go/examples/postgresql/create.md new file mode 100644 index 000000000..6805a505c --- /dev/null +++ b/examples/1.9.x/server-go/examples/postgresql/create.md @@ -0,0 +1,35 @@ +```go +package main + +import ( + "fmt" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/postgresql" +) + +client := client.New( + client.WithEndpoint("https://.cloud.appwrite.io/v1") + client.WithProject("") + client.WithKey("") +) + +service := postgresql.New(client) + +response, error := service.Create( + "", + "", + postgresql.WithCreateVersion("17"), + postgresql.WithCreateSpecification(""), + postgresql.WithCreateReplicas(0), + postgresql.WithCreateSyncMode("async"), + postgresql.WithCreateNetworkIdleTimeoutSeconds(60), + postgresql.WithCreateNetworkIPAllowlist([]string{}), + postgresql.WithCreateIdleTimeoutMinutes(5), + postgresql.WithCreatePitr(false), + postgresql.WithCreatePitrRetentionDays(1), + postgresql.WithCreateStorageAutoscaling(false), + postgresql.WithCreateStorageAutoscalingThresholdPercent(50), + postgresql.WithCreateStorageAutoscalingMaxGb(0), + postgresql.WithCreateApi("nativedb"), +) +``` diff --git a/examples/1.9.x/server-go/examples/postgresql/delete-backup-policy.md b/examples/1.9.x/server-go/examples/postgresql/delete-backup-policy.md new file mode 100644 index 000000000..5fa086a20 --- /dev/null +++ b/examples/1.9.x/server-go/examples/postgresql/delete-backup-policy.md @@ -0,0 +1,22 @@ +```go +package main + +import ( + "fmt" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/postgresql" +) + +client := client.New( + client.WithEndpoint("https://.cloud.appwrite.io/v1") + client.WithProject("") + client.WithKey("") +) + +service := postgresql.New(client) + +response, error := service.DeleteBackupPolicy( + "", + "", +) +``` diff --git a/examples/1.9.x/server-go/examples/postgresql/delete-backup.md b/examples/1.9.x/server-go/examples/postgresql/delete-backup.md new file mode 100644 index 000000000..415c52d91 --- /dev/null +++ b/examples/1.9.x/server-go/examples/postgresql/delete-backup.md @@ -0,0 +1,22 @@ +```go +package main + +import ( + "fmt" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/postgresql" +) + +client := client.New( + client.WithEndpoint("https://.cloud.appwrite.io/v1") + client.WithProject("") + client.WithKey("") +) + +service := postgresql.New(client) + +response, error := service.DeleteBackup( + "", + "", +) +``` diff --git a/examples/1.9.x/server-go/examples/postgresql/delete-branch.md b/examples/1.9.x/server-go/examples/postgresql/delete-branch.md new file mode 100644 index 000000000..ea5cb2702 --- /dev/null +++ b/examples/1.9.x/server-go/examples/postgresql/delete-branch.md @@ -0,0 +1,22 @@ +```go +package main + +import ( + "fmt" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/postgresql" +) + +client := client.New( + client.WithEndpoint("https://.cloud.appwrite.io/v1") + client.WithProject("") + client.WithKey("") +) + +service := postgresql.New(client) + +response, error := service.DeleteBranch( + "", + "", +) +``` diff --git a/examples/1.9.x/server-go/examples/postgresql/delete-extension.md b/examples/1.9.x/server-go/examples/postgresql/delete-extension.md new file mode 100644 index 000000000..28649d252 --- /dev/null +++ b/examples/1.9.x/server-go/examples/postgresql/delete-extension.md @@ -0,0 +1,22 @@ +```go +package main + +import ( + "fmt" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/postgresql" +) + +client := client.New( + client.WithEndpoint("https://.cloud.appwrite.io/v1") + client.WithProject("") + client.WithKey("") +) + +service := postgresql.New(client) + +response, error := service.DeleteExtension( + "", + "", +) +``` diff --git a/examples/1.9.x/server-go/examples/postgresql/delete.md b/examples/1.9.x/server-go/examples/postgresql/delete.md new file mode 100644 index 000000000..31d5880e2 --- /dev/null +++ b/examples/1.9.x/server-go/examples/postgresql/delete.md @@ -0,0 +1,21 @@ +```go +package main + +import ( + "fmt" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/postgresql" +) + +client := client.New( + client.WithEndpoint("https://.cloud.appwrite.io/v1") + client.WithProject("") + client.WithKey("") +) + +service := postgresql.New(client) + +response, error := service.Delete( + "", +) +``` diff --git a/examples/1.9.x/server-go/examples/postgresql/get-backup-policy.md b/examples/1.9.x/server-go/examples/postgresql/get-backup-policy.md new file mode 100644 index 000000000..b43c2f356 --- /dev/null +++ b/examples/1.9.x/server-go/examples/postgresql/get-backup-policy.md @@ -0,0 +1,22 @@ +```go +package main + +import ( + "fmt" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/postgresql" +) + +client := client.New( + client.WithEndpoint("https://.cloud.appwrite.io/v1") + client.WithProject("") + client.WithKey("") +) + +service := postgresql.New(client) + +response, error := service.GetBackupPolicy( + "", + "", +) +``` diff --git a/examples/1.9.x/server-go/examples/postgresql/get-backup.md b/examples/1.9.x/server-go/examples/postgresql/get-backup.md new file mode 100644 index 000000000..dd0c2bb3b --- /dev/null +++ b/examples/1.9.x/server-go/examples/postgresql/get-backup.md @@ -0,0 +1,22 @@ +```go +package main + +import ( + "fmt" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/postgresql" +) + +client := client.New( + client.WithEndpoint("https://.cloud.appwrite.io/v1") + client.WithProject("") + client.WithKey("") +) + +service := postgresql.New(client) + +response, error := service.GetBackup( + "", + "", +) +``` diff --git a/examples/1.9.x/server-go/examples/postgresql/get-pitr.md b/examples/1.9.x/server-go/examples/postgresql/get-pitr.md new file mode 100644 index 000000000..c3fad0704 --- /dev/null +++ b/examples/1.9.x/server-go/examples/postgresql/get-pitr.md @@ -0,0 +1,21 @@ +```go +package main + +import ( + "fmt" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/postgresql" +) + +client := client.New( + client.WithEndpoint("https://.cloud.appwrite.io/v1") + client.WithProject("") + client.WithKey("") +) + +service := postgresql.New(client) + +response, error := service.GetPitr( + "", +) +``` diff --git a/examples/1.9.x/server-go/examples/postgresql/get-pooler.md b/examples/1.9.x/server-go/examples/postgresql/get-pooler.md new file mode 100644 index 000000000..dc7818103 --- /dev/null +++ b/examples/1.9.x/server-go/examples/postgresql/get-pooler.md @@ -0,0 +1,21 @@ +```go +package main + +import ( + "fmt" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/postgresql" +) + +client := client.New( + client.WithEndpoint("https://.cloud.appwrite.io/v1") + client.WithProject("") + client.WithKey("") +) + +service := postgresql.New(client) + +response, error := service.GetPooler( + "", +) +``` diff --git a/examples/1.9.x/server-go/examples/postgresql/get-replicas.md b/examples/1.9.x/server-go/examples/postgresql/get-replicas.md new file mode 100644 index 000000000..af996b30f --- /dev/null +++ b/examples/1.9.x/server-go/examples/postgresql/get-replicas.md @@ -0,0 +1,21 @@ +```go +package main + +import ( + "fmt" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/postgresql" +) + +client := client.New( + client.WithEndpoint("https://.cloud.appwrite.io/v1") + client.WithProject("") + client.WithKey("") +) + +service := postgresql.New(client) + +response, error := service.GetReplicas( + "", +) +``` diff --git a/examples/1.9.x/server-go/examples/postgresql/get-restoration.md b/examples/1.9.x/server-go/examples/postgresql/get-restoration.md new file mode 100644 index 000000000..8afd7e052 --- /dev/null +++ b/examples/1.9.x/server-go/examples/postgresql/get-restoration.md @@ -0,0 +1,22 @@ +```go +package main + +import ( + "fmt" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/postgresql" +) + +client := client.New( + client.WithEndpoint("https://.cloud.appwrite.io/v1") + client.WithProject("") + client.WithKey("") +) + +service := postgresql.New(client) + +response, error := service.GetRestoration( + "", + "", +) +``` diff --git a/examples/1.9.x/server-go/examples/postgresql/get-status.md b/examples/1.9.x/server-go/examples/postgresql/get-status.md new file mode 100644 index 000000000..83776d442 --- /dev/null +++ b/examples/1.9.x/server-go/examples/postgresql/get-status.md @@ -0,0 +1,21 @@ +```go +package main + +import ( + "fmt" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/postgresql" +) + +client := client.New( + client.WithEndpoint("https://.cloud.appwrite.io/v1") + client.WithProject("") + client.WithKey("") +) + +service := postgresql.New(client) + +response, error := service.GetStatus( + "", +) +``` diff --git a/examples/1.9.x/server-go/examples/postgresql/get.md b/examples/1.9.x/server-go/examples/postgresql/get.md new file mode 100644 index 000000000..809036741 --- /dev/null +++ b/examples/1.9.x/server-go/examples/postgresql/get.md @@ -0,0 +1,21 @@ +```go +package main + +import ( + "fmt" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/postgresql" +) + +client := client.New( + client.WithEndpoint("https://.cloud.appwrite.io/v1") + client.WithProject("") + client.WithKey("") +) + +service := postgresql.New(client) + +response, error := service.Get( + "", +) +``` diff --git a/examples/1.9.x/server-go/examples/postgresql/list-backup-policies.md b/examples/1.9.x/server-go/examples/postgresql/list-backup-policies.md new file mode 100644 index 000000000..d4585d5c5 --- /dev/null +++ b/examples/1.9.x/server-go/examples/postgresql/list-backup-policies.md @@ -0,0 +1,22 @@ +```go +package main + +import ( + "fmt" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/postgresql" +) + +client := client.New( + client.WithEndpoint("https://.cloud.appwrite.io/v1") + client.WithProject("") + client.WithKey("") +) + +service := postgresql.New(client) + +response, error := service.ListBackupPolicies( + "", + postgresql.WithListBackupPoliciesQueries([]string{}), +) +``` diff --git a/examples/1.9.x/server-go/examples/postgresql/list-backups.md b/examples/1.9.x/server-go/examples/postgresql/list-backups.md new file mode 100644 index 000000000..4bd02f4f2 --- /dev/null +++ b/examples/1.9.x/server-go/examples/postgresql/list-backups.md @@ -0,0 +1,22 @@ +```go +package main + +import ( + "fmt" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/postgresql" +) + +client := client.New( + client.WithEndpoint("https://.cloud.appwrite.io/v1") + client.WithProject("") + client.WithKey("") +) + +service := postgresql.New(client) + +response, error := service.ListBackups( + "", + postgresql.WithListBackupsQueries([]string{}), +) +``` diff --git a/examples/1.9.x/server-go/examples/postgresql/list-branches.md b/examples/1.9.x/server-go/examples/postgresql/list-branches.md new file mode 100644 index 000000000..5b9c9f26f --- /dev/null +++ b/examples/1.9.x/server-go/examples/postgresql/list-branches.md @@ -0,0 +1,21 @@ +```go +package main + +import ( + "fmt" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/postgresql" +) + +client := client.New( + client.WithEndpoint("https://.cloud.appwrite.io/v1") + client.WithProject("") + client.WithKey("") +) + +service := postgresql.New(client) + +response, error := service.ListBranches( + "", +) +``` diff --git a/examples/1.9.x/server-go/examples/postgresql/list-extensions.md b/examples/1.9.x/server-go/examples/postgresql/list-extensions.md new file mode 100644 index 000000000..f9a5ee6cd --- /dev/null +++ b/examples/1.9.x/server-go/examples/postgresql/list-extensions.md @@ -0,0 +1,21 @@ +```go +package main + +import ( + "fmt" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/postgresql" +) + +client := client.New( + client.WithEndpoint("https://.cloud.appwrite.io/v1") + client.WithProject("") + client.WithKey("") +) + +service := postgresql.New(client) + +response, error := service.ListExtensions( + "", +) +``` diff --git a/examples/1.9.x/server-go/examples/postgresql/list-restorations.md b/examples/1.9.x/server-go/examples/postgresql/list-restorations.md new file mode 100644 index 000000000..3984bc67e --- /dev/null +++ b/examples/1.9.x/server-go/examples/postgresql/list-restorations.md @@ -0,0 +1,25 @@ +```go +package main + +import ( + "fmt" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/postgresql" +) + +client := client.New( + client.WithEndpoint("https://.cloud.appwrite.io/v1") + client.WithProject("") + client.WithKey("") +) + +service := postgresql.New(client) + +response, error := service.ListRestorations( + "", + postgresql.WithListRestorationsStatus("pending"), + postgresql.WithListRestorationsType("backup"), + postgresql.WithListRestorationsLimit(1), + postgresql.WithListRestorationsOffset(0), +) +``` diff --git a/examples/1.9.x/server-go/examples/postgresql/list-specifications.md b/examples/1.9.x/server-go/examples/postgresql/list-specifications.md new file mode 100644 index 000000000..cc7dd8f38 --- /dev/null +++ b/examples/1.9.x/server-go/examples/postgresql/list-specifications.md @@ -0,0 +1,19 @@ +```go +package main + +import ( + "fmt" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/postgresql" +) + +client := client.New( + client.WithEndpoint("https://.cloud.appwrite.io/v1") + client.WithProject("") + client.WithKey("") +) + +service := postgresql.New(client) + +response, error := service.ListSpecifications()) +``` diff --git a/examples/1.9.x/server-go/examples/postgresql/list.md b/examples/1.9.x/server-go/examples/postgresql/list.md new file mode 100644 index 000000000..c5a2b858f --- /dev/null +++ b/examples/1.9.x/server-go/examples/postgresql/list.md @@ -0,0 +1,21 @@ +```go +package main + +import ( + "fmt" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/postgresql" +) + +client := client.New( + client.WithEndpoint("https://.cloud.appwrite.io/v1") + client.WithProject("") + client.WithKey("") +) + +service := postgresql.New(client) + +response, error := service.List( + postgresql.WithListQueries([]string{}), +) +``` diff --git a/examples/1.9.x/server-go/examples/postgresql/update-backup-policy.md b/examples/1.9.x/server-go/examples/postgresql/update-backup-policy.md new file mode 100644 index 000000000..339f3b2be --- /dev/null +++ b/examples/1.9.x/server-go/examples/postgresql/update-backup-policy.md @@ -0,0 +1,26 @@ +```go +package main + +import ( + "fmt" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/postgresql" +) + +client := client.New( + client.WithEndpoint("https://.cloud.appwrite.io/v1") + client.WithProject("") + client.WithKey("") +) + +service := postgresql.New(client) + +response, error := service.UpdateBackupPolicy( + "", + "", + postgresql.WithUpdateBackupPolicyName(""), + postgresql.WithUpdateBackupPolicySchedule(""), + postgresql.WithUpdateBackupPolicyRetention(1), + postgresql.WithUpdateBackupPolicyEnabled(false), +) +``` diff --git a/examples/1.9.x/server-go/examples/postgresql/update-backup-storage.md b/examples/1.9.x/server-go/examples/postgresql/update-backup-storage.md new file mode 100644 index 000000000..8936d407f --- /dev/null +++ b/examples/1.9.x/server-go/examples/postgresql/update-backup-storage.md @@ -0,0 +1,28 @@ +```go +package main + +import ( + "fmt" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/postgresql" +) + +client := client.New( + client.WithEndpoint("https://.cloud.appwrite.io/v1") + client.WithProject("") + client.WithKey("") +) + +service := postgresql.New(client) + +response, error := service.UpdateBackupStorage( + "", + "s3", + "", + "", + "", + postgresql.WithUpdateBackupStorageRegion(""), + postgresql.WithUpdateBackupStoragePrefix(""), + postgresql.WithUpdateBackupStorageEndpoint(""), +) +``` diff --git a/examples/1.9.x/server-go/examples/postgresql/update-credentials.md b/examples/1.9.x/server-go/examples/postgresql/update-credentials.md new file mode 100644 index 000000000..16ab10fa5 --- /dev/null +++ b/examples/1.9.x/server-go/examples/postgresql/update-credentials.md @@ -0,0 +1,21 @@ +```go +package main + +import ( + "fmt" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/postgresql" +) + +client := client.New( + client.WithEndpoint("https://.cloud.appwrite.io/v1") + client.WithProject("") + client.WithKey("") +) + +service := postgresql.New(client) + +response, error := service.UpdateCredentials( + "", +) +``` diff --git a/examples/1.9.x/server-go/examples/postgresql/update-maintenance.md b/examples/1.9.x/server-go/examples/postgresql/update-maintenance.md new file mode 100644 index 000000000..af3304b2c --- /dev/null +++ b/examples/1.9.x/server-go/examples/postgresql/update-maintenance.md @@ -0,0 +1,23 @@ +```go +package main + +import ( + "fmt" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/postgresql" +) + +client := client.New( + client.WithEndpoint("https://.cloud.appwrite.io/v1") + client.WithProject("") + client.WithKey("") +) + +service := postgresql.New(client) + +response, error := service.UpdateMaintenance( + "", + "sun", + 0, +) +``` diff --git a/examples/1.9.x/server-go/examples/postgresql/update-pooler.md b/examples/1.9.x/server-go/examples/postgresql/update-pooler.md new file mode 100644 index 000000000..094b75bd3 --- /dev/null +++ b/examples/1.9.x/server-go/examples/postgresql/update-pooler.md @@ -0,0 +1,29 @@ +```go +package main + +import ( + "fmt" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/postgresql" +) + +client := client.New( + client.WithEndpoint("https://.cloud.appwrite.io/v1") + client.WithProject("") + client.WithKey("") +) + +service := postgresql.New(client) + +response, error := service.UpdatePooler( + "", + postgresql.WithUpdatePoolerMode("transaction"), + postgresql.WithUpdatePoolerMaxConnections(10), + postgresql.WithUpdatePoolerDefaultPoolSize(1), + postgresql.WithUpdatePoolerReadWriteSplitting(false), + postgresql.WithUpdatePoolerPoolerCpuRequest(""), + postgresql.WithUpdatePoolerPoolerCpuLimit(""), + postgresql.WithUpdatePoolerPoolerMemoryRequest(""), + postgresql.WithUpdatePoolerPoolerMemoryLimit(""), +) +``` diff --git a/examples/1.9.x/server-go/examples/postgresql/update.md b/examples/1.9.x/server-go/examples/postgresql/update.md new file mode 100644 index 000000000..2dffa5a67 --- /dev/null +++ b/examples/1.9.x/server-go/examples/postgresql/update.md @@ -0,0 +1,41 @@ +```go +package main + +import ( + "fmt" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/postgresql" +) + +client := client.New( + client.WithEndpoint("https://.cloud.appwrite.io/v1") + client.WithProject("") + client.WithKey("") +) + +service := postgresql.New(client) + +response, error := service.Update( + "", + postgresql.WithUpdateName(""), + postgresql.WithUpdateStatus("ready"), + postgresql.WithUpdateSpecification(""), + postgresql.WithUpdateReplicas(0), + postgresql.WithUpdateSyncMode("async"), + postgresql.WithUpdateNetworkIdleTimeoutSeconds(60), + postgresql.WithUpdateNetworkIPAllowlist([]string{}), + postgresql.WithUpdateIdleTimeoutMinutes(5), + postgresql.WithUpdatePitr(false), + postgresql.WithUpdatePitrRetentionDays(1), + postgresql.WithUpdateStorageAutoscaling(false), + postgresql.WithUpdateStorageAutoscalingThresholdPercent(50), + postgresql.WithUpdateStorageAutoscalingMaxGb(0), + postgresql.WithUpdateMetricsTraceSampleRate(0), + postgresql.WithUpdateMetricsSlowQueryLogThresholdMs(0), + postgresql.WithUpdateSqlApiEnabled(false), + postgresql.WithUpdateSqlApiAllowedStatements([]string{}), + postgresql.WithUpdateSqlApiMaxRows(1), + postgresql.WithUpdateSqlApiMaxBytes(1024), + postgresql.WithUpdateSqlApiTimeoutSeconds(1), +) +``` diff --git a/examples/1.9.x/server-go/examples/presences/delete.md b/examples/1.9.x/server-go/examples/presences/delete.md index 1b32e0fb2..d03c64eb3 100644 --- a/examples/1.9.x/server-go/examples/presences/delete.md +++ b/examples/1.9.x/server-go/examples/presences/delete.md @@ -3,8 +3,8 @@ package main import ( "fmt" - "github.com/appwrite/sdk-for-go/v5/client" - "github.com/appwrite/sdk-for-go/v5/presences" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/presences" ) client := client.New( diff --git a/examples/1.9.x/server-go/examples/presences/get.md b/examples/1.9.x/server-go/examples/presences/get.md index e21b74f2e..4ff381d0c 100644 --- a/examples/1.9.x/server-go/examples/presences/get.md +++ b/examples/1.9.x/server-go/examples/presences/get.md @@ -3,8 +3,8 @@ package main import ( "fmt" - "github.com/appwrite/sdk-for-go/v5/client" - "github.com/appwrite/sdk-for-go/v5/presences" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/presences" ) client := client.New( diff --git a/examples/1.9.x/server-go/examples/presences/list.md b/examples/1.9.x/server-go/examples/presences/list.md index 49bde40f0..3e0a3b5cb 100644 --- a/examples/1.9.x/server-go/examples/presences/list.md +++ b/examples/1.9.x/server-go/examples/presences/list.md @@ -3,8 +3,8 @@ package main import ( "fmt" - "github.com/appwrite/sdk-for-go/v5/client" - "github.com/appwrite/sdk-for-go/v5/presences" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/presences" ) client := client.New( diff --git a/examples/1.9.x/server-go/examples/presences/update.md b/examples/1.9.x/server-go/examples/presences/update.md index 870651882..0e8a12383 100644 --- a/examples/1.9.x/server-go/examples/presences/update.md +++ b/examples/1.9.x/server-go/examples/presences/update.md @@ -3,8 +3,8 @@ package main import ( "fmt" - "github.com/appwrite/sdk-for-go/v5/client" - "github.com/appwrite/sdk-for-go/v5/presences" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/presences" ) client := client.New( diff --git a/examples/1.9.x/server-go/examples/presences/upsert.md b/examples/1.9.x/server-go/examples/presences/upsert.md index 7da7a9a72..11ade23f9 100644 --- a/examples/1.9.x/server-go/examples/presences/upsert.md +++ b/examples/1.9.x/server-go/examples/presences/upsert.md @@ -3,8 +3,8 @@ package main import ( "fmt" - "github.com/appwrite/sdk-for-go/v5/client" - "github.com/appwrite/sdk-for-go/v5/presences" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/presences" ) client := client.New( diff --git a/examples/1.9.x/server-go/examples/project/create-android-platform.md b/examples/1.9.x/server-go/examples/project/create-android-platform.md index 746371025..0b31943b1 100644 --- a/examples/1.9.x/server-go/examples/project/create-android-platform.md +++ b/examples/1.9.x/server-go/examples/project/create-android-platform.md @@ -3,8 +3,8 @@ package main import ( "fmt" - "github.com/appwrite/sdk-for-go/v5/client" - "github.com/appwrite/sdk-for-go/v5/project" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/project" ) client := client.New( diff --git a/examples/1.9.x/server-go/examples/project/create-apple-platform.md b/examples/1.9.x/server-go/examples/project/create-apple-platform.md index 4ad2d2ec6..0d211474d 100644 --- a/examples/1.9.x/server-go/examples/project/create-apple-platform.md +++ b/examples/1.9.x/server-go/examples/project/create-apple-platform.md @@ -3,8 +3,8 @@ package main import ( "fmt" - "github.com/appwrite/sdk-for-go/v5/client" - "github.com/appwrite/sdk-for-go/v5/project" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/project" ) client := client.New( diff --git a/examples/1.9.x/server-go/examples/project/create-ephemeral-key.md b/examples/1.9.x/server-go/examples/project/create-ephemeral-key.md index 55d192181..1c18fe2c4 100644 --- a/examples/1.9.x/server-go/examples/project/create-ephemeral-key.md +++ b/examples/1.9.x/server-go/examples/project/create-ephemeral-key.md @@ -3,8 +3,8 @@ package main import ( "fmt" - "github.com/appwrite/sdk-for-go/v5/client" - "github.com/appwrite/sdk-for-go/v5/project" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/project" ) client := client.New( diff --git a/examples/1.9.x/server-go/examples/project/create-key.md b/examples/1.9.x/server-go/examples/project/create-key.md index 595bd1dba..617af45eb 100644 --- a/examples/1.9.x/server-go/examples/project/create-key.md +++ b/examples/1.9.x/server-go/examples/project/create-key.md @@ -3,8 +3,8 @@ package main import ( "fmt" - "github.com/appwrite/sdk-for-go/v5/client" - "github.com/appwrite/sdk-for-go/v5/project" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/project" ) client := client.New( diff --git a/examples/1.9.x/server-go/examples/project/create-linux-platform.md b/examples/1.9.x/server-go/examples/project/create-linux-platform.md index 167711594..bf594c16e 100644 --- a/examples/1.9.x/server-go/examples/project/create-linux-platform.md +++ b/examples/1.9.x/server-go/examples/project/create-linux-platform.md @@ -3,8 +3,8 @@ package main import ( "fmt" - "github.com/appwrite/sdk-for-go/v5/client" - "github.com/appwrite/sdk-for-go/v5/project" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/project" ) client := client.New( diff --git a/examples/1.9.x/server-go/examples/project/create-mock-phone.md b/examples/1.9.x/server-go/examples/project/create-mock-phone.md index 5d7b81b9e..25c323521 100644 --- a/examples/1.9.x/server-go/examples/project/create-mock-phone.md +++ b/examples/1.9.x/server-go/examples/project/create-mock-phone.md @@ -3,8 +3,8 @@ package main import ( "fmt" - "github.com/appwrite/sdk-for-go/v5/client" - "github.com/appwrite/sdk-for-go/v5/project" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/project" ) client := client.New( diff --git a/examples/1.9.x/server-go/examples/project/create-smtp-test.md b/examples/1.9.x/server-go/examples/project/create-smtp-test.md index d0a684207..034272949 100644 --- a/examples/1.9.x/server-go/examples/project/create-smtp-test.md +++ b/examples/1.9.x/server-go/examples/project/create-smtp-test.md @@ -3,8 +3,8 @@ package main import ( "fmt" - "github.com/appwrite/sdk-for-go/v5/client" - "github.com/appwrite/sdk-for-go/v5/project" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/project" ) client := client.New( diff --git a/examples/1.9.x/server-go/examples/project/create-variable.md b/examples/1.9.x/server-go/examples/project/create-variable.md index 5e895efc0..7ff630a2e 100644 --- a/examples/1.9.x/server-go/examples/project/create-variable.md +++ b/examples/1.9.x/server-go/examples/project/create-variable.md @@ -3,8 +3,8 @@ package main import ( "fmt" - "github.com/appwrite/sdk-for-go/v5/client" - "github.com/appwrite/sdk-for-go/v5/project" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/project" ) client := client.New( diff --git a/examples/1.9.x/server-go/examples/project/create-web-platform.md b/examples/1.9.x/server-go/examples/project/create-web-platform.md index 84386bc4a..5ee86f78e 100644 --- a/examples/1.9.x/server-go/examples/project/create-web-platform.md +++ b/examples/1.9.x/server-go/examples/project/create-web-platform.md @@ -3,8 +3,8 @@ package main import ( "fmt" - "github.com/appwrite/sdk-for-go/v5/client" - "github.com/appwrite/sdk-for-go/v5/project" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/project" ) client := client.New( diff --git a/examples/1.9.x/server-go/examples/project/create-windows-platform.md b/examples/1.9.x/server-go/examples/project/create-windows-platform.md index 84aae5132..809eb0a4b 100644 --- a/examples/1.9.x/server-go/examples/project/create-windows-platform.md +++ b/examples/1.9.x/server-go/examples/project/create-windows-platform.md @@ -3,8 +3,8 @@ package main import ( "fmt" - "github.com/appwrite/sdk-for-go/v5/client" - "github.com/appwrite/sdk-for-go/v5/project" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/project" ) client := client.New( diff --git a/examples/1.9.x/server-go/examples/project/delete-key.md b/examples/1.9.x/server-go/examples/project/delete-key.md index b36afc43d..4b09b819b 100644 --- a/examples/1.9.x/server-go/examples/project/delete-key.md +++ b/examples/1.9.x/server-go/examples/project/delete-key.md @@ -3,8 +3,8 @@ package main import ( "fmt" - "github.com/appwrite/sdk-for-go/v5/client" - "github.com/appwrite/sdk-for-go/v5/project" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/project" ) client := client.New( diff --git a/examples/1.9.x/server-go/examples/project/delete-mock-phone.md b/examples/1.9.x/server-go/examples/project/delete-mock-phone.md index 8ba1c0a7e..e77b09562 100644 --- a/examples/1.9.x/server-go/examples/project/delete-mock-phone.md +++ b/examples/1.9.x/server-go/examples/project/delete-mock-phone.md @@ -3,8 +3,8 @@ package main import ( "fmt" - "github.com/appwrite/sdk-for-go/v5/client" - "github.com/appwrite/sdk-for-go/v5/project" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/project" ) client := client.New( diff --git a/examples/1.9.x/server-go/examples/project/delete-platform.md b/examples/1.9.x/server-go/examples/project/delete-platform.md index c7a645134..858daeee3 100644 --- a/examples/1.9.x/server-go/examples/project/delete-platform.md +++ b/examples/1.9.x/server-go/examples/project/delete-platform.md @@ -3,8 +3,8 @@ package main import ( "fmt" - "github.com/appwrite/sdk-for-go/v5/client" - "github.com/appwrite/sdk-for-go/v5/project" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/project" ) client := client.New( diff --git a/examples/1.9.x/server-go/examples/project/delete-variable.md b/examples/1.9.x/server-go/examples/project/delete-variable.md index f8f12c28a..18c7c6414 100644 --- a/examples/1.9.x/server-go/examples/project/delete-variable.md +++ b/examples/1.9.x/server-go/examples/project/delete-variable.md @@ -3,8 +3,8 @@ package main import ( "fmt" - "github.com/appwrite/sdk-for-go/v5/client" - "github.com/appwrite/sdk-for-go/v5/project" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/project" ) client := client.New( diff --git a/examples/1.9.x/server-go/examples/project/delete.md b/examples/1.9.x/server-go/examples/project/delete.md index c415f96b4..b59499bb8 100644 --- a/examples/1.9.x/server-go/examples/project/delete.md +++ b/examples/1.9.x/server-go/examples/project/delete.md @@ -3,8 +3,8 @@ package main import ( "fmt" - "github.com/appwrite/sdk-for-go/v5/client" - "github.com/appwrite/sdk-for-go/v5/project" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/project" ) client := client.New( diff --git a/examples/1.9.x/server-go/examples/project/get-email-template.md b/examples/1.9.x/server-go/examples/project/get-email-template.md index 6abf87f38..1f1a0fcd9 100644 --- a/examples/1.9.x/server-go/examples/project/get-email-template.md +++ b/examples/1.9.x/server-go/examples/project/get-email-template.md @@ -3,8 +3,8 @@ package main import ( "fmt" - "github.com/appwrite/sdk-for-go/v5/client" - "github.com/appwrite/sdk-for-go/v5/project" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/project" ) client := client.New( diff --git a/examples/1.9.x/server-go/examples/project/get-key.md b/examples/1.9.x/server-go/examples/project/get-key.md index 65b525482..79403ee7c 100644 --- a/examples/1.9.x/server-go/examples/project/get-key.md +++ b/examples/1.9.x/server-go/examples/project/get-key.md @@ -3,8 +3,8 @@ package main import ( "fmt" - "github.com/appwrite/sdk-for-go/v5/client" - "github.com/appwrite/sdk-for-go/v5/project" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/project" ) client := client.New( diff --git a/examples/1.9.x/server-go/examples/project/get-mock-phone.md b/examples/1.9.x/server-go/examples/project/get-mock-phone.md index 56a41c0ac..60b659c52 100644 --- a/examples/1.9.x/server-go/examples/project/get-mock-phone.md +++ b/examples/1.9.x/server-go/examples/project/get-mock-phone.md @@ -3,8 +3,8 @@ package main import ( "fmt" - "github.com/appwrite/sdk-for-go/v5/client" - "github.com/appwrite/sdk-for-go/v5/project" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/project" ) client := client.New( diff --git a/examples/1.9.x/server-go/examples/project/get-o-auth-2-provider.md b/examples/1.9.x/server-go/examples/project/get-o-auth-2-provider.md index cc0f0b25c..a48d62d26 100644 --- a/examples/1.9.x/server-go/examples/project/get-o-auth-2-provider.md +++ b/examples/1.9.x/server-go/examples/project/get-o-auth-2-provider.md @@ -3,8 +3,8 @@ package main import ( "fmt" - "github.com/appwrite/sdk-for-go/v5/client" - "github.com/appwrite/sdk-for-go/v5/project" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/project" ) client := client.New( diff --git a/examples/1.9.x/server-go/examples/project/get-platform.md b/examples/1.9.x/server-go/examples/project/get-platform.md index 72dc615b2..a9030ffdb 100644 --- a/examples/1.9.x/server-go/examples/project/get-platform.md +++ b/examples/1.9.x/server-go/examples/project/get-platform.md @@ -3,8 +3,8 @@ package main import ( "fmt" - "github.com/appwrite/sdk-for-go/v5/client" - "github.com/appwrite/sdk-for-go/v5/project" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/project" ) client := client.New( diff --git a/examples/1.9.x/server-go/examples/project/get-policy.md b/examples/1.9.x/server-go/examples/project/get-policy.md index 79bb30e10..9b0c1e03d 100644 --- a/examples/1.9.x/server-go/examples/project/get-policy.md +++ b/examples/1.9.x/server-go/examples/project/get-policy.md @@ -3,8 +3,8 @@ package main import ( "fmt" - "github.com/appwrite/sdk-for-go/v5/client" - "github.com/appwrite/sdk-for-go/v5/project" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/project" ) client := client.New( diff --git a/examples/1.9.x/server-go/examples/project/get-variable.md b/examples/1.9.x/server-go/examples/project/get-variable.md index e5c9ebecd..1f947afbb 100644 --- a/examples/1.9.x/server-go/examples/project/get-variable.md +++ b/examples/1.9.x/server-go/examples/project/get-variable.md @@ -3,8 +3,8 @@ package main import ( "fmt" - "github.com/appwrite/sdk-for-go/v5/client" - "github.com/appwrite/sdk-for-go/v5/project" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/project" ) client := client.New( diff --git a/examples/1.9.x/server-go/examples/project/get.md b/examples/1.9.x/server-go/examples/project/get.md index a7e79b2e1..b5607e1cb 100644 --- a/examples/1.9.x/server-go/examples/project/get.md +++ b/examples/1.9.x/server-go/examples/project/get.md @@ -3,8 +3,8 @@ package main import ( "fmt" - "github.com/appwrite/sdk-for-go/v5/client" - "github.com/appwrite/sdk-for-go/v5/project" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/project" ) client := client.New( diff --git a/examples/1.9.x/server-go/examples/project/list-email-templates.md b/examples/1.9.x/server-go/examples/project/list-email-templates.md index 2cdce7440..dfb3fa033 100644 --- a/examples/1.9.x/server-go/examples/project/list-email-templates.md +++ b/examples/1.9.x/server-go/examples/project/list-email-templates.md @@ -3,8 +3,8 @@ package main import ( "fmt" - "github.com/appwrite/sdk-for-go/v5/client" - "github.com/appwrite/sdk-for-go/v5/project" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/project" ) client := client.New( diff --git a/examples/1.9.x/server-go/examples/project/list-keys.md b/examples/1.9.x/server-go/examples/project/list-keys.md index 19072e66b..2c0896c31 100644 --- a/examples/1.9.x/server-go/examples/project/list-keys.md +++ b/examples/1.9.x/server-go/examples/project/list-keys.md @@ -3,8 +3,8 @@ package main import ( "fmt" - "github.com/appwrite/sdk-for-go/v5/client" - "github.com/appwrite/sdk-for-go/v5/project" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/project" ) client := client.New( diff --git a/examples/1.9.x/server-go/examples/project/list-mock-phones.md b/examples/1.9.x/server-go/examples/project/list-mock-phones.md index 80bbc669f..d7891b2e3 100644 --- a/examples/1.9.x/server-go/examples/project/list-mock-phones.md +++ b/examples/1.9.x/server-go/examples/project/list-mock-phones.md @@ -3,8 +3,8 @@ package main import ( "fmt" - "github.com/appwrite/sdk-for-go/v5/client" - "github.com/appwrite/sdk-for-go/v5/project" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/project" ) client := client.New( diff --git a/examples/1.9.x/server-go/examples/project/list-o-auth-2-providers.md b/examples/1.9.x/server-go/examples/project/list-o-auth-2-providers.md index 7c4f287fe..35241c083 100644 --- a/examples/1.9.x/server-go/examples/project/list-o-auth-2-providers.md +++ b/examples/1.9.x/server-go/examples/project/list-o-auth-2-providers.md @@ -3,8 +3,8 @@ package main import ( "fmt" - "github.com/appwrite/sdk-for-go/v5/client" - "github.com/appwrite/sdk-for-go/v5/project" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/project" ) client := client.New( diff --git a/examples/1.9.x/server-go/examples/project/list-platforms.md b/examples/1.9.x/server-go/examples/project/list-platforms.md index fd2295e01..c2ff5fd62 100644 --- a/examples/1.9.x/server-go/examples/project/list-platforms.md +++ b/examples/1.9.x/server-go/examples/project/list-platforms.md @@ -3,8 +3,8 @@ package main import ( "fmt" - "github.com/appwrite/sdk-for-go/v5/client" - "github.com/appwrite/sdk-for-go/v5/project" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/project" ) client := client.New( diff --git a/examples/1.9.x/server-go/examples/project/list-policies.md b/examples/1.9.x/server-go/examples/project/list-policies.md index eb96e2178..decf51bad 100644 --- a/examples/1.9.x/server-go/examples/project/list-policies.md +++ b/examples/1.9.x/server-go/examples/project/list-policies.md @@ -3,8 +3,8 @@ package main import ( "fmt" - "github.com/appwrite/sdk-for-go/v5/client" - "github.com/appwrite/sdk-for-go/v5/project" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/project" ) client := client.New( diff --git a/examples/1.9.x/server-go/examples/project/list-variables.md b/examples/1.9.x/server-go/examples/project/list-variables.md index 2cd1929dd..f7bfcac6b 100644 --- a/examples/1.9.x/server-go/examples/project/list-variables.md +++ b/examples/1.9.x/server-go/examples/project/list-variables.md @@ -3,8 +3,8 @@ package main import ( "fmt" - "github.com/appwrite/sdk-for-go/v5/client" - "github.com/appwrite/sdk-for-go/v5/project" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/project" ) client := client.New( diff --git a/examples/1.9.x/server-go/examples/project/update-android-platform.md b/examples/1.9.x/server-go/examples/project/update-android-platform.md index cda7e27a5..4d6cc2cdc 100644 --- a/examples/1.9.x/server-go/examples/project/update-android-platform.md +++ b/examples/1.9.x/server-go/examples/project/update-android-platform.md @@ -3,8 +3,8 @@ package main import ( "fmt" - "github.com/appwrite/sdk-for-go/v5/client" - "github.com/appwrite/sdk-for-go/v5/project" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/project" ) client := client.New( diff --git a/examples/1.9.x/server-go/examples/project/update-apple-platform.md b/examples/1.9.x/server-go/examples/project/update-apple-platform.md index 02e26b3ef..8660beb76 100644 --- a/examples/1.9.x/server-go/examples/project/update-apple-platform.md +++ b/examples/1.9.x/server-go/examples/project/update-apple-platform.md @@ -3,8 +3,8 @@ package main import ( "fmt" - "github.com/appwrite/sdk-for-go/v5/client" - "github.com/appwrite/sdk-for-go/v5/project" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/project" ) client := client.New( diff --git a/examples/1.9.x/server-go/examples/project/update-auth-method.md b/examples/1.9.x/server-go/examples/project/update-auth-method.md index d9e456dd8..0cb70cd73 100644 --- a/examples/1.9.x/server-go/examples/project/update-auth-method.md +++ b/examples/1.9.x/server-go/examples/project/update-auth-method.md @@ -3,8 +3,8 @@ package main import ( "fmt" - "github.com/appwrite/sdk-for-go/v5/client" - "github.com/appwrite/sdk-for-go/v5/project" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/project" ) client := client.New( diff --git a/examples/1.9.x/server-go/examples/project/update-deny-aliased-email-policy.md b/examples/1.9.x/server-go/examples/project/update-deny-aliased-email-policy.md index 029f61d84..57afe8d0e 100644 --- a/examples/1.9.x/server-go/examples/project/update-deny-aliased-email-policy.md +++ b/examples/1.9.x/server-go/examples/project/update-deny-aliased-email-policy.md @@ -3,8 +3,8 @@ package main import ( "fmt" - "github.com/appwrite/sdk-for-go/v5/client" - "github.com/appwrite/sdk-for-go/v5/project" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/project" ) client := client.New( diff --git a/examples/1.9.x/server-go/examples/project/update-deny-corporate-email-policy.md b/examples/1.9.x/server-go/examples/project/update-deny-corporate-email-policy.md index edcc5fd55..30fe5a6fa 100644 --- a/examples/1.9.x/server-go/examples/project/update-deny-corporate-email-policy.md +++ b/examples/1.9.x/server-go/examples/project/update-deny-corporate-email-policy.md @@ -3,8 +3,8 @@ package main import ( "fmt" - "github.com/appwrite/sdk-for-go/v5/client" - "github.com/appwrite/sdk-for-go/v5/project" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/project" ) client := client.New( diff --git a/examples/1.9.x/server-go/examples/project/update-deny-disposable-email-policy.md b/examples/1.9.x/server-go/examples/project/update-deny-disposable-email-policy.md index 283459c1f..ffd52d7ac 100644 --- a/examples/1.9.x/server-go/examples/project/update-deny-disposable-email-policy.md +++ b/examples/1.9.x/server-go/examples/project/update-deny-disposable-email-policy.md @@ -3,8 +3,8 @@ package main import ( "fmt" - "github.com/appwrite/sdk-for-go/v5/client" - "github.com/appwrite/sdk-for-go/v5/project" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/project" ) client := client.New( diff --git a/examples/1.9.x/server-go/examples/project/update-deny-free-email-policy.md b/examples/1.9.x/server-go/examples/project/update-deny-free-email-policy.md index 3ccb8f9ef..6e68893b7 100644 --- a/examples/1.9.x/server-go/examples/project/update-deny-free-email-policy.md +++ b/examples/1.9.x/server-go/examples/project/update-deny-free-email-policy.md @@ -3,8 +3,8 @@ package main import ( "fmt" - "github.com/appwrite/sdk-for-go/v5/client" - "github.com/appwrite/sdk-for-go/v5/project" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/project" ) client := client.New( diff --git a/examples/1.9.x/server-go/examples/project/update-email-template.md b/examples/1.9.x/server-go/examples/project/update-email-template.md index 7f4830230..6ea1fd9a8 100644 --- a/examples/1.9.x/server-go/examples/project/update-email-template.md +++ b/examples/1.9.x/server-go/examples/project/update-email-template.md @@ -3,8 +3,8 @@ package main import ( "fmt" - "github.com/appwrite/sdk-for-go/v5/client" - "github.com/appwrite/sdk-for-go/v5/project" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/project" ) client := client.New( diff --git a/examples/1.9.x/server-go/examples/project/update-key.md b/examples/1.9.x/server-go/examples/project/update-key.md index d476714dd..7fc0ae5e8 100644 --- a/examples/1.9.x/server-go/examples/project/update-key.md +++ b/examples/1.9.x/server-go/examples/project/update-key.md @@ -3,8 +3,8 @@ package main import ( "fmt" - "github.com/appwrite/sdk-for-go/v5/client" - "github.com/appwrite/sdk-for-go/v5/project" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/project" ) client := client.New( diff --git a/examples/1.9.x/server-go/examples/project/update-labels.md b/examples/1.9.x/server-go/examples/project/update-labels.md index 4275c4778..d44e8fcaf 100644 --- a/examples/1.9.x/server-go/examples/project/update-labels.md +++ b/examples/1.9.x/server-go/examples/project/update-labels.md @@ -3,8 +3,8 @@ package main import ( "fmt" - "github.com/appwrite/sdk-for-go/v5/client" - "github.com/appwrite/sdk-for-go/v5/project" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/project" ) client := client.New( diff --git a/examples/1.9.x/server-go/examples/project/update-linux-platform.md b/examples/1.9.x/server-go/examples/project/update-linux-platform.md index e11b27606..5ef667b93 100644 --- a/examples/1.9.x/server-go/examples/project/update-linux-platform.md +++ b/examples/1.9.x/server-go/examples/project/update-linux-platform.md @@ -3,8 +3,8 @@ package main import ( "fmt" - "github.com/appwrite/sdk-for-go/v5/client" - "github.com/appwrite/sdk-for-go/v5/project" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/project" ) client := client.New( diff --git a/examples/1.9.x/server-go/examples/project/update-membership-privacy-policy.md b/examples/1.9.x/server-go/examples/project/update-membership-privacy-policy.md index 17ee8c5da..66d95a488 100644 --- a/examples/1.9.x/server-go/examples/project/update-membership-privacy-policy.md +++ b/examples/1.9.x/server-go/examples/project/update-membership-privacy-policy.md @@ -3,8 +3,8 @@ package main import ( "fmt" - "github.com/appwrite/sdk-for-go/v5/client" - "github.com/appwrite/sdk-for-go/v5/project" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/project" ) client := client.New( diff --git a/examples/1.9.x/server-go/examples/project/update-mock-phone.md b/examples/1.9.x/server-go/examples/project/update-mock-phone.md index 9cc678bd6..7facc3518 100644 --- a/examples/1.9.x/server-go/examples/project/update-mock-phone.md +++ b/examples/1.9.x/server-go/examples/project/update-mock-phone.md @@ -3,8 +3,8 @@ package main import ( "fmt" - "github.com/appwrite/sdk-for-go/v5/client" - "github.com/appwrite/sdk-for-go/v5/project" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/project" ) client := client.New( diff --git a/examples/1.9.x/server-go/examples/project/update-o-auth-2-amazon.md b/examples/1.9.x/server-go/examples/project/update-o-auth-2-amazon.md index 70adefb31..a05ba09b4 100644 --- a/examples/1.9.x/server-go/examples/project/update-o-auth-2-amazon.md +++ b/examples/1.9.x/server-go/examples/project/update-o-auth-2-amazon.md @@ -3,8 +3,8 @@ package main import ( "fmt" - "github.com/appwrite/sdk-for-go/v5/client" - "github.com/appwrite/sdk-for-go/v5/project" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/project" ) client := client.New( diff --git a/examples/1.9.x/server-go/examples/project/update-o-auth-2-apple.md b/examples/1.9.x/server-go/examples/project/update-o-auth-2-apple.md index 0bc54a810..516deb02f 100644 --- a/examples/1.9.x/server-go/examples/project/update-o-auth-2-apple.md +++ b/examples/1.9.x/server-go/examples/project/update-o-auth-2-apple.md @@ -3,8 +3,8 @@ package main import ( "fmt" - "github.com/appwrite/sdk-for-go/v5/client" - "github.com/appwrite/sdk-for-go/v5/project" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/project" ) client := client.New( diff --git a/examples/1.9.x/server-go/examples/project/update-o-auth-2-appwrite.md b/examples/1.9.x/server-go/examples/project/update-o-auth-2-appwrite.md new file mode 100644 index 000000000..bb0af9881 --- /dev/null +++ b/examples/1.9.x/server-go/examples/project/update-o-auth-2-appwrite.md @@ -0,0 +1,23 @@ +```go +package main + +import ( + "fmt" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/project" +) + +client := client.New( + client.WithEndpoint("https://.cloud.appwrite.io/v1") + client.WithProject("") + client.WithKey("") +) + +service := project.New(client) + +response, error := service.UpdateOAuth2Appwrite( + project.WithUpdateOAuth2AppwriteClientId(""), + project.WithUpdateOAuth2AppwriteClientSecret(""), + project.WithUpdateOAuth2AppwriteEnabled(false), +) +``` diff --git a/examples/1.9.x/server-go/examples/project/update-o-auth-2-auth-0.md b/examples/1.9.x/server-go/examples/project/update-o-auth-2-auth-0.md index 031d3d538..ff45d1356 100644 --- a/examples/1.9.x/server-go/examples/project/update-o-auth-2-auth-0.md +++ b/examples/1.9.x/server-go/examples/project/update-o-auth-2-auth-0.md @@ -3,8 +3,8 @@ package main import ( "fmt" - "github.com/appwrite/sdk-for-go/v5/client" - "github.com/appwrite/sdk-for-go/v5/project" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/project" ) client := client.New( diff --git a/examples/1.9.x/server-go/examples/project/update-o-auth-2-authentik.md b/examples/1.9.x/server-go/examples/project/update-o-auth-2-authentik.md index ad97d4987..360bf93fe 100644 --- a/examples/1.9.x/server-go/examples/project/update-o-auth-2-authentik.md +++ b/examples/1.9.x/server-go/examples/project/update-o-auth-2-authentik.md @@ -3,8 +3,8 @@ package main import ( "fmt" - "github.com/appwrite/sdk-for-go/v5/client" - "github.com/appwrite/sdk-for-go/v5/project" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/project" ) client := client.New( diff --git a/examples/1.9.x/server-go/examples/project/update-o-auth-2-autodesk.md b/examples/1.9.x/server-go/examples/project/update-o-auth-2-autodesk.md index c4d8ece14..b49f3b391 100644 --- a/examples/1.9.x/server-go/examples/project/update-o-auth-2-autodesk.md +++ b/examples/1.9.x/server-go/examples/project/update-o-auth-2-autodesk.md @@ -3,8 +3,8 @@ package main import ( "fmt" - "github.com/appwrite/sdk-for-go/v5/client" - "github.com/appwrite/sdk-for-go/v5/project" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/project" ) client := client.New( diff --git a/examples/1.9.x/server-go/examples/project/update-o-auth-2-bitbucket.md b/examples/1.9.x/server-go/examples/project/update-o-auth-2-bitbucket.md index 466142538..f22aaf503 100644 --- a/examples/1.9.x/server-go/examples/project/update-o-auth-2-bitbucket.md +++ b/examples/1.9.x/server-go/examples/project/update-o-auth-2-bitbucket.md @@ -3,8 +3,8 @@ package main import ( "fmt" - "github.com/appwrite/sdk-for-go/v5/client" - "github.com/appwrite/sdk-for-go/v5/project" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/project" ) client := client.New( diff --git a/examples/1.9.x/server-go/examples/project/update-o-auth-2-bitly.md b/examples/1.9.x/server-go/examples/project/update-o-auth-2-bitly.md index cdf76e504..e850c364a 100644 --- a/examples/1.9.x/server-go/examples/project/update-o-auth-2-bitly.md +++ b/examples/1.9.x/server-go/examples/project/update-o-auth-2-bitly.md @@ -3,8 +3,8 @@ package main import ( "fmt" - "github.com/appwrite/sdk-for-go/v5/client" - "github.com/appwrite/sdk-for-go/v5/project" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/project" ) client := client.New( diff --git a/examples/1.9.x/server-go/examples/project/update-o-auth-2-box.md b/examples/1.9.x/server-go/examples/project/update-o-auth-2-box.md index f9708e728..d400c6497 100644 --- a/examples/1.9.x/server-go/examples/project/update-o-auth-2-box.md +++ b/examples/1.9.x/server-go/examples/project/update-o-auth-2-box.md @@ -3,8 +3,8 @@ package main import ( "fmt" - "github.com/appwrite/sdk-for-go/v5/client" - "github.com/appwrite/sdk-for-go/v5/project" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/project" ) client := client.New( diff --git a/examples/1.9.x/server-go/examples/project/update-o-auth-2-dailymotion.md b/examples/1.9.x/server-go/examples/project/update-o-auth-2-dailymotion.md index 33ff0f996..208064aa1 100644 --- a/examples/1.9.x/server-go/examples/project/update-o-auth-2-dailymotion.md +++ b/examples/1.9.x/server-go/examples/project/update-o-auth-2-dailymotion.md @@ -3,8 +3,8 @@ package main import ( "fmt" - "github.com/appwrite/sdk-for-go/v5/client" - "github.com/appwrite/sdk-for-go/v5/project" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/project" ) client := client.New( diff --git a/examples/1.9.x/server-go/examples/project/update-o-auth-2-discord.md b/examples/1.9.x/server-go/examples/project/update-o-auth-2-discord.md index 09f5e13fe..a20daffc7 100644 --- a/examples/1.9.x/server-go/examples/project/update-o-auth-2-discord.md +++ b/examples/1.9.x/server-go/examples/project/update-o-auth-2-discord.md @@ -3,8 +3,8 @@ package main import ( "fmt" - "github.com/appwrite/sdk-for-go/v5/client" - "github.com/appwrite/sdk-for-go/v5/project" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/project" ) client := client.New( diff --git a/examples/1.9.x/server-go/examples/project/update-o-auth-2-disqus.md b/examples/1.9.x/server-go/examples/project/update-o-auth-2-disqus.md index 99c6989a6..49fd0e0d3 100644 --- a/examples/1.9.x/server-go/examples/project/update-o-auth-2-disqus.md +++ b/examples/1.9.x/server-go/examples/project/update-o-auth-2-disqus.md @@ -3,8 +3,8 @@ package main import ( "fmt" - "github.com/appwrite/sdk-for-go/v5/client" - "github.com/appwrite/sdk-for-go/v5/project" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/project" ) client := client.New( diff --git a/examples/1.9.x/server-go/examples/project/update-o-auth-2-dropbox.md b/examples/1.9.x/server-go/examples/project/update-o-auth-2-dropbox.md index 5e8d3e3d6..a7f49c470 100644 --- a/examples/1.9.x/server-go/examples/project/update-o-auth-2-dropbox.md +++ b/examples/1.9.x/server-go/examples/project/update-o-auth-2-dropbox.md @@ -3,8 +3,8 @@ package main import ( "fmt" - "github.com/appwrite/sdk-for-go/v5/client" - "github.com/appwrite/sdk-for-go/v5/project" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/project" ) client := client.New( diff --git a/examples/1.9.x/server-go/examples/project/update-o-auth-2-etsy.md b/examples/1.9.x/server-go/examples/project/update-o-auth-2-etsy.md index fe909ef58..5028f52ab 100644 --- a/examples/1.9.x/server-go/examples/project/update-o-auth-2-etsy.md +++ b/examples/1.9.x/server-go/examples/project/update-o-auth-2-etsy.md @@ -3,8 +3,8 @@ package main import ( "fmt" - "github.com/appwrite/sdk-for-go/v5/client" - "github.com/appwrite/sdk-for-go/v5/project" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/project" ) client := client.New( diff --git a/examples/1.9.x/server-go/examples/project/update-o-auth-2-facebook.md b/examples/1.9.x/server-go/examples/project/update-o-auth-2-facebook.md index bb61b0f33..6b9729c5e 100644 --- a/examples/1.9.x/server-go/examples/project/update-o-auth-2-facebook.md +++ b/examples/1.9.x/server-go/examples/project/update-o-auth-2-facebook.md @@ -3,8 +3,8 @@ package main import ( "fmt" - "github.com/appwrite/sdk-for-go/v5/client" - "github.com/appwrite/sdk-for-go/v5/project" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/project" ) client := client.New( diff --git a/examples/1.9.x/server-go/examples/project/update-o-auth-2-figma.md b/examples/1.9.x/server-go/examples/project/update-o-auth-2-figma.md index b99b5fda8..65216b5ea 100644 --- a/examples/1.9.x/server-go/examples/project/update-o-auth-2-figma.md +++ b/examples/1.9.x/server-go/examples/project/update-o-auth-2-figma.md @@ -3,8 +3,8 @@ package main import ( "fmt" - "github.com/appwrite/sdk-for-go/v5/client" - "github.com/appwrite/sdk-for-go/v5/project" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/project" ) client := client.New( diff --git a/examples/1.9.x/server-go/examples/project/update-o-auth-2-fusion-auth.md b/examples/1.9.x/server-go/examples/project/update-o-auth-2-fusion-auth.md index 83f3a8752..756af3a43 100644 --- a/examples/1.9.x/server-go/examples/project/update-o-auth-2-fusion-auth.md +++ b/examples/1.9.x/server-go/examples/project/update-o-auth-2-fusion-auth.md @@ -3,8 +3,8 @@ package main import ( "fmt" - "github.com/appwrite/sdk-for-go/v5/client" - "github.com/appwrite/sdk-for-go/v5/project" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/project" ) client := client.New( diff --git a/examples/1.9.x/server-go/examples/project/update-o-auth-2-git-hub.md b/examples/1.9.x/server-go/examples/project/update-o-auth-2-git-hub.md index 0134dda80..cd82819c5 100644 --- a/examples/1.9.x/server-go/examples/project/update-o-auth-2-git-hub.md +++ b/examples/1.9.x/server-go/examples/project/update-o-auth-2-git-hub.md @@ -3,8 +3,8 @@ package main import ( "fmt" - "github.com/appwrite/sdk-for-go/v5/client" - "github.com/appwrite/sdk-for-go/v5/project" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/project" ) client := client.New( diff --git a/examples/1.9.x/server-go/examples/project/update-o-auth-2-gitlab.md b/examples/1.9.x/server-go/examples/project/update-o-auth-2-gitlab.md index 83673d6f3..eafe96f45 100644 --- a/examples/1.9.x/server-go/examples/project/update-o-auth-2-gitlab.md +++ b/examples/1.9.x/server-go/examples/project/update-o-auth-2-gitlab.md @@ -3,8 +3,8 @@ package main import ( "fmt" - "github.com/appwrite/sdk-for-go/v5/client" - "github.com/appwrite/sdk-for-go/v5/project" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/project" ) client := client.New( diff --git a/examples/1.9.x/server-go/examples/project/update-o-auth-2-google.md b/examples/1.9.x/server-go/examples/project/update-o-auth-2-google.md index f56254c8a..19c9e7546 100644 --- a/examples/1.9.x/server-go/examples/project/update-o-auth-2-google.md +++ b/examples/1.9.x/server-go/examples/project/update-o-auth-2-google.md @@ -3,8 +3,8 @@ package main import ( "fmt" - "github.com/appwrite/sdk-for-go/v5/client" - "github.com/appwrite/sdk-for-go/v5/project" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/project" ) client := client.New( diff --git a/examples/1.9.x/server-go/examples/project/update-o-auth-2-keycloak.md b/examples/1.9.x/server-go/examples/project/update-o-auth-2-keycloak.md index 504e0cc77..9264bb5e2 100644 --- a/examples/1.9.x/server-go/examples/project/update-o-auth-2-keycloak.md +++ b/examples/1.9.x/server-go/examples/project/update-o-auth-2-keycloak.md @@ -3,8 +3,8 @@ package main import ( "fmt" - "github.com/appwrite/sdk-for-go/v5/client" - "github.com/appwrite/sdk-for-go/v5/project" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/project" ) client := client.New( diff --git a/examples/1.9.x/server-go/examples/project/update-o-auth-2-kick.md b/examples/1.9.x/server-go/examples/project/update-o-auth-2-kick.md index 4c5337559..6cbd000f8 100644 --- a/examples/1.9.x/server-go/examples/project/update-o-auth-2-kick.md +++ b/examples/1.9.x/server-go/examples/project/update-o-auth-2-kick.md @@ -3,8 +3,8 @@ package main import ( "fmt" - "github.com/appwrite/sdk-for-go/v5/client" - "github.com/appwrite/sdk-for-go/v5/project" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/project" ) client := client.New( diff --git a/examples/1.9.x/server-go/examples/project/update-o-auth-2-linkedin.md b/examples/1.9.x/server-go/examples/project/update-o-auth-2-linkedin.md index d439d5a91..973d4f71c 100644 --- a/examples/1.9.x/server-go/examples/project/update-o-auth-2-linkedin.md +++ b/examples/1.9.x/server-go/examples/project/update-o-auth-2-linkedin.md @@ -3,8 +3,8 @@ package main import ( "fmt" - "github.com/appwrite/sdk-for-go/v5/client" - "github.com/appwrite/sdk-for-go/v5/project" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/project" ) client := client.New( diff --git a/examples/1.9.x/server-go/examples/project/update-o-auth-2-microsoft.md b/examples/1.9.x/server-go/examples/project/update-o-auth-2-microsoft.md index eb54b79b7..24802de16 100644 --- a/examples/1.9.x/server-go/examples/project/update-o-auth-2-microsoft.md +++ b/examples/1.9.x/server-go/examples/project/update-o-auth-2-microsoft.md @@ -3,8 +3,8 @@ package main import ( "fmt" - "github.com/appwrite/sdk-for-go/v5/client" - "github.com/appwrite/sdk-for-go/v5/project" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/project" ) client := client.New( diff --git a/examples/1.9.x/server-go/examples/project/update-o-auth-2-notion.md b/examples/1.9.x/server-go/examples/project/update-o-auth-2-notion.md index 1b3d7b89e..47d9d3f42 100644 --- a/examples/1.9.x/server-go/examples/project/update-o-auth-2-notion.md +++ b/examples/1.9.x/server-go/examples/project/update-o-auth-2-notion.md @@ -3,8 +3,8 @@ package main import ( "fmt" - "github.com/appwrite/sdk-for-go/v5/client" - "github.com/appwrite/sdk-for-go/v5/project" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/project" ) client := client.New( diff --git a/examples/1.9.x/server-go/examples/project/update-o-auth-2-oidc.md b/examples/1.9.x/server-go/examples/project/update-o-auth-2-oidc.md index f9e8fa2dd..88ee2370e 100644 --- a/examples/1.9.x/server-go/examples/project/update-o-auth-2-oidc.md +++ b/examples/1.9.x/server-go/examples/project/update-o-auth-2-oidc.md @@ -3,8 +3,8 @@ package main import ( "fmt" - "github.com/appwrite/sdk-for-go/v5/client" - "github.com/appwrite/sdk-for-go/v5/project" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/project" ) client := client.New( @@ -22,6 +22,8 @@ response, error := service.UpdateOAuth2Oidc( project.WithUpdateOAuth2OidcAuthorizationURL("https://example.com"), project.WithUpdateOAuth2OidcTokenURL("https://example.com"), project.WithUpdateOAuth2OidcUserInfoURL("https://example.com"), + project.WithUpdateOAuth2OidcPrompt([]string{}), + project.WithUpdateOAuth2OidcMaxAge(0), project.WithUpdateOAuth2OidcEnabled(false), ) ``` diff --git a/examples/1.9.x/server-go/examples/project/update-o-auth-2-okta.md b/examples/1.9.x/server-go/examples/project/update-o-auth-2-okta.md index 2f04beaf7..475f4e9c9 100644 --- a/examples/1.9.x/server-go/examples/project/update-o-auth-2-okta.md +++ b/examples/1.9.x/server-go/examples/project/update-o-auth-2-okta.md @@ -3,8 +3,8 @@ package main import ( "fmt" - "github.com/appwrite/sdk-for-go/v5/client" - "github.com/appwrite/sdk-for-go/v5/project" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/project" ) client := client.New( diff --git a/examples/1.9.x/server-go/examples/project/update-o-auth-2-paypal-sandbox.md b/examples/1.9.x/server-go/examples/project/update-o-auth-2-paypal-sandbox.md index 362baea8a..021f77357 100644 --- a/examples/1.9.x/server-go/examples/project/update-o-auth-2-paypal-sandbox.md +++ b/examples/1.9.x/server-go/examples/project/update-o-auth-2-paypal-sandbox.md @@ -3,8 +3,8 @@ package main import ( "fmt" - "github.com/appwrite/sdk-for-go/v5/client" - "github.com/appwrite/sdk-for-go/v5/project" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/project" ) client := client.New( diff --git a/examples/1.9.x/server-go/examples/project/update-o-auth-2-paypal.md b/examples/1.9.x/server-go/examples/project/update-o-auth-2-paypal.md index 35111390e..e0352b105 100644 --- a/examples/1.9.x/server-go/examples/project/update-o-auth-2-paypal.md +++ b/examples/1.9.x/server-go/examples/project/update-o-auth-2-paypal.md @@ -3,8 +3,8 @@ package main import ( "fmt" - "github.com/appwrite/sdk-for-go/v5/client" - "github.com/appwrite/sdk-for-go/v5/project" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/project" ) client := client.New( diff --git a/examples/1.9.x/server-go/examples/project/update-o-auth-2-podio.md b/examples/1.9.x/server-go/examples/project/update-o-auth-2-podio.md index ab360f9dd..f9e346cf7 100644 --- a/examples/1.9.x/server-go/examples/project/update-o-auth-2-podio.md +++ b/examples/1.9.x/server-go/examples/project/update-o-auth-2-podio.md @@ -3,8 +3,8 @@ package main import ( "fmt" - "github.com/appwrite/sdk-for-go/v5/client" - "github.com/appwrite/sdk-for-go/v5/project" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/project" ) client := client.New( diff --git a/examples/1.9.x/server-go/examples/project/update-o-auth-2-salesforce.md b/examples/1.9.x/server-go/examples/project/update-o-auth-2-salesforce.md index 4bc650239..00a542e0a 100644 --- a/examples/1.9.x/server-go/examples/project/update-o-auth-2-salesforce.md +++ b/examples/1.9.x/server-go/examples/project/update-o-auth-2-salesforce.md @@ -3,8 +3,8 @@ package main import ( "fmt" - "github.com/appwrite/sdk-for-go/v5/client" - "github.com/appwrite/sdk-for-go/v5/project" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/project" ) client := client.New( diff --git a/examples/1.9.x/server-go/examples/project/update-o-auth-2-server.md b/examples/1.9.x/server-go/examples/project/update-o-auth-2-server.md index dcce77db2..9239ea0f8 100644 --- a/examples/1.9.x/server-go/examples/project/update-o-auth-2-server.md +++ b/examples/1.9.x/server-go/examples/project/update-o-auth-2-server.md @@ -3,8 +3,8 @@ package main import ( "fmt" - "github.com/appwrite/sdk-for-go/v5/client" - "github.com/appwrite/sdk-for-go/v5/project" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/project" ) client := client.New( @@ -29,5 +29,6 @@ response, error := service.UpdateOAuth2Server( project.WithUpdateOAuth2ServerUserCodeLength(6), project.WithUpdateOAuth2ServerUserCodeFormat("numeric"), project.WithUpdateOAuth2ServerDeviceCodeDuration(60), + project.WithUpdateOAuth2ServerDefaultScopes([]string{}), ) ``` diff --git a/examples/1.9.x/server-go/examples/project/update-o-auth-2-slack.md b/examples/1.9.x/server-go/examples/project/update-o-auth-2-slack.md index 91ab0862a..9f484f049 100644 --- a/examples/1.9.x/server-go/examples/project/update-o-auth-2-slack.md +++ b/examples/1.9.x/server-go/examples/project/update-o-auth-2-slack.md @@ -3,8 +3,8 @@ package main import ( "fmt" - "github.com/appwrite/sdk-for-go/v5/client" - "github.com/appwrite/sdk-for-go/v5/project" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/project" ) client := client.New( diff --git a/examples/1.9.x/server-go/examples/project/update-o-auth-2-spotify.md b/examples/1.9.x/server-go/examples/project/update-o-auth-2-spotify.md index 6507cbb52..2099afb80 100644 --- a/examples/1.9.x/server-go/examples/project/update-o-auth-2-spotify.md +++ b/examples/1.9.x/server-go/examples/project/update-o-auth-2-spotify.md @@ -3,8 +3,8 @@ package main import ( "fmt" - "github.com/appwrite/sdk-for-go/v5/client" - "github.com/appwrite/sdk-for-go/v5/project" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/project" ) client := client.New( diff --git a/examples/1.9.x/server-go/examples/project/update-o-auth-2-stripe.md b/examples/1.9.x/server-go/examples/project/update-o-auth-2-stripe.md index a7c95f437..709de6b9e 100644 --- a/examples/1.9.x/server-go/examples/project/update-o-auth-2-stripe.md +++ b/examples/1.9.x/server-go/examples/project/update-o-auth-2-stripe.md @@ -3,8 +3,8 @@ package main import ( "fmt" - "github.com/appwrite/sdk-for-go/v5/client" - "github.com/appwrite/sdk-for-go/v5/project" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/project" ) client := client.New( diff --git a/examples/1.9.x/server-go/examples/project/update-o-auth-2-tradeshift-sandbox.md b/examples/1.9.x/server-go/examples/project/update-o-auth-2-tradeshift-sandbox.md index d26051d1e..068f0e1c7 100644 --- a/examples/1.9.x/server-go/examples/project/update-o-auth-2-tradeshift-sandbox.md +++ b/examples/1.9.x/server-go/examples/project/update-o-auth-2-tradeshift-sandbox.md @@ -3,8 +3,8 @@ package main import ( "fmt" - "github.com/appwrite/sdk-for-go/v5/client" - "github.com/appwrite/sdk-for-go/v5/project" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/project" ) client := client.New( diff --git a/examples/1.9.x/server-go/examples/project/update-o-auth-2-tradeshift.md b/examples/1.9.x/server-go/examples/project/update-o-auth-2-tradeshift.md index 500a5610f..91e50b58a 100644 --- a/examples/1.9.x/server-go/examples/project/update-o-auth-2-tradeshift.md +++ b/examples/1.9.x/server-go/examples/project/update-o-auth-2-tradeshift.md @@ -3,8 +3,8 @@ package main import ( "fmt" - "github.com/appwrite/sdk-for-go/v5/client" - "github.com/appwrite/sdk-for-go/v5/project" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/project" ) client := client.New( diff --git a/examples/1.9.x/server-go/examples/project/update-o-auth-2-twitch.md b/examples/1.9.x/server-go/examples/project/update-o-auth-2-twitch.md index 4c5d20dc5..a928ad3dc 100644 --- a/examples/1.9.x/server-go/examples/project/update-o-auth-2-twitch.md +++ b/examples/1.9.x/server-go/examples/project/update-o-auth-2-twitch.md @@ -3,8 +3,8 @@ package main import ( "fmt" - "github.com/appwrite/sdk-for-go/v5/client" - "github.com/appwrite/sdk-for-go/v5/project" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/project" ) client := client.New( diff --git a/examples/1.9.x/server-go/examples/project/update-o-auth-2-word-press.md b/examples/1.9.x/server-go/examples/project/update-o-auth-2-word-press.md index 0e7ec6356..203afcec6 100644 --- a/examples/1.9.x/server-go/examples/project/update-o-auth-2-word-press.md +++ b/examples/1.9.x/server-go/examples/project/update-o-auth-2-word-press.md @@ -3,8 +3,8 @@ package main import ( "fmt" - "github.com/appwrite/sdk-for-go/v5/client" - "github.com/appwrite/sdk-for-go/v5/project" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/project" ) client := client.New( diff --git a/examples/1.9.x/server-go/examples/project/update-o-auth-2-yahoo.md b/examples/1.9.x/server-go/examples/project/update-o-auth-2-yahoo.md index 9a74961e2..12c97d7e1 100644 --- a/examples/1.9.x/server-go/examples/project/update-o-auth-2-yahoo.md +++ b/examples/1.9.x/server-go/examples/project/update-o-auth-2-yahoo.md @@ -3,8 +3,8 @@ package main import ( "fmt" - "github.com/appwrite/sdk-for-go/v5/client" - "github.com/appwrite/sdk-for-go/v5/project" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/project" ) client := client.New( diff --git a/examples/1.9.x/server-go/examples/project/update-o-auth-2-yandex.md b/examples/1.9.x/server-go/examples/project/update-o-auth-2-yandex.md index 230e83881..89ed43d5b 100644 --- a/examples/1.9.x/server-go/examples/project/update-o-auth-2-yandex.md +++ b/examples/1.9.x/server-go/examples/project/update-o-auth-2-yandex.md @@ -3,8 +3,8 @@ package main import ( "fmt" - "github.com/appwrite/sdk-for-go/v5/client" - "github.com/appwrite/sdk-for-go/v5/project" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/project" ) client := client.New( diff --git a/examples/1.9.x/server-go/examples/project/update-o-auth-2-zoho.md b/examples/1.9.x/server-go/examples/project/update-o-auth-2-zoho.md index 30077b184..03d992530 100644 --- a/examples/1.9.x/server-go/examples/project/update-o-auth-2-zoho.md +++ b/examples/1.9.x/server-go/examples/project/update-o-auth-2-zoho.md @@ -3,8 +3,8 @@ package main import ( "fmt" - "github.com/appwrite/sdk-for-go/v5/client" - "github.com/appwrite/sdk-for-go/v5/project" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/project" ) client := client.New( diff --git a/examples/1.9.x/server-go/examples/project/update-o-auth-2-zoom.md b/examples/1.9.x/server-go/examples/project/update-o-auth-2-zoom.md index 3970c253f..5afdbc425 100644 --- a/examples/1.9.x/server-go/examples/project/update-o-auth-2-zoom.md +++ b/examples/1.9.x/server-go/examples/project/update-o-auth-2-zoom.md @@ -3,8 +3,8 @@ package main import ( "fmt" - "github.com/appwrite/sdk-for-go/v5/client" - "github.com/appwrite/sdk-for-go/v5/project" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/project" ) client := client.New( diff --git a/examples/1.9.x/server-go/examples/project/update-o-auth-2x.md b/examples/1.9.x/server-go/examples/project/update-o-auth-2x.md index ea9c0befe..46efebdf5 100644 --- a/examples/1.9.x/server-go/examples/project/update-o-auth-2x.md +++ b/examples/1.9.x/server-go/examples/project/update-o-auth-2x.md @@ -3,8 +3,8 @@ package main import ( "fmt" - "github.com/appwrite/sdk-for-go/v5/client" - "github.com/appwrite/sdk-for-go/v5/project" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/project" ) client := client.New( diff --git a/examples/1.9.x/server-go/examples/project/update-password-dictionary-policy.md b/examples/1.9.x/server-go/examples/project/update-password-dictionary-policy.md index 41903ee84..4a6f12f2d 100644 --- a/examples/1.9.x/server-go/examples/project/update-password-dictionary-policy.md +++ b/examples/1.9.x/server-go/examples/project/update-password-dictionary-policy.md @@ -3,8 +3,8 @@ package main import ( "fmt" - "github.com/appwrite/sdk-for-go/v5/client" - "github.com/appwrite/sdk-for-go/v5/project" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/project" ) client := client.New( diff --git a/examples/1.9.x/server-go/examples/project/update-password-history-policy.md b/examples/1.9.x/server-go/examples/project/update-password-history-policy.md index 73e1ae237..2aa14789e 100644 --- a/examples/1.9.x/server-go/examples/project/update-password-history-policy.md +++ b/examples/1.9.x/server-go/examples/project/update-password-history-policy.md @@ -3,8 +3,8 @@ package main import ( "fmt" - "github.com/appwrite/sdk-for-go/v5/client" - "github.com/appwrite/sdk-for-go/v5/project" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/project" ) client := client.New( diff --git a/examples/1.9.x/server-go/examples/project/update-password-personal-data-policy.md b/examples/1.9.x/server-go/examples/project/update-password-personal-data-policy.md index da77edf9d..f69838330 100644 --- a/examples/1.9.x/server-go/examples/project/update-password-personal-data-policy.md +++ b/examples/1.9.x/server-go/examples/project/update-password-personal-data-policy.md @@ -3,8 +3,8 @@ package main import ( "fmt" - "github.com/appwrite/sdk-for-go/v5/client" - "github.com/appwrite/sdk-for-go/v5/project" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/project" ) client := client.New( diff --git a/examples/1.9.x/server-go/examples/project/update-password-strength-policy.md b/examples/1.9.x/server-go/examples/project/update-password-strength-policy.md index 39b6de6c5..26ded3942 100644 --- a/examples/1.9.x/server-go/examples/project/update-password-strength-policy.md +++ b/examples/1.9.x/server-go/examples/project/update-password-strength-policy.md @@ -3,8 +3,8 @@ package main import ( "fmt" - "github.com/appwrite/sdk-for-go/v5/client" - "github.com/appwrite/sdk-for-go/v5/project" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/project" ) client := client.New( diff --git a/examples/1.9.x/server-go/examples/project/update-protocol.md b/examples/1.9.x/server-go/examples/project/update-protocol.md index ecc39dc44..464c07daa 100644 --- a/examples/1.9.x/server-go/examples/project/update-protocol.md +++ b/examples/1.9.x/server-go/examples/project/update-protocol.md @@ -3,8 +3,8 @@ package main import ( "fmt" - "github.com/appwrite/sdk-for-go/v5/client" - "github.com/appwrite/sdk-for-go/v5/project" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/project" ) client := client.New( diff --git a/examples/1.9.x/server-go/examples/project/update-service.md b/examples/1.9.x/server-go/examples/project/update-service.md index f67721c30..a2cda890f 100644 --- a/examples/1.9.x/server-go/examples/project/update-service.md +++ b/examples/1.9.x/server-go/examples/project/update-service.md @@ -3,8 +3,8 @@ package main import ( "fmt" - "github.com/appwrite/sdk-for-go/v5/client" - "github.com/appwrite/sdk-for-go/v5/project" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/project" ) client := client.New( diff --git a/examples/1.9.x/server-go/examples/project/update-session-alert-policy.md b/examples/1.9.x/server-go/examples/project/update-session-alert-policy.md index 3b8609542..22fa63e49 100644 --- a/examples/1.9.x/server-go/examples/project/update-session-alert-policy.md +++ b/examples/1.9.x/server-go/examples/project/update-session-alert-policy.md @@ -3,8 +3,8 @@ package main import ( "fmt" - "github.com/appwrite/sdk-for-go/v5/client" - "github.com/appwrite/sdk-for-go/v5/project" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/project" ) client := client.New( diff --git a/examples/1.9.x/server-go/examples/project/update-session-duration-policy.md b/examples/1.9.x/server-go/examples/project/update-session-duration-policy.md index b738799b3..775aedcda 100644 --- a/examples/1.9.x/server-go/examples/project/update-session-duration-policy.md +++ b/examples/1.9.x/server-go/examples/project/update-session-duration-policy.md @@ -3,8 +3,8 @@ package main import ( "fmt" - "github.com/appwrite/sdk-for-go/v5/client" - "github.com/appwrite/sdk-for-go/v5/project" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/project" ) client := client.New( diff --git a/examples/1.9.x/server-go/examples/project/update-session-invalidation-policy.md b/examples/1.9.x/server-go/examples/project/update-session-invalidation-policy.md index 0aaf5d041..d1c3ce2e5 100644 --- a/examples/1.9.x/server-go/examples/project/update-session-invalidation-policy.md +++ b/examples/1.9.x/server-go/examples/project/update-session-invalidation-policy.md @@ -3,8 +3,8 @@ package main import ( "fmt" - "github.com/appwrite/sdk-for-go/v5/client" - "github.com/appwrite/sdk-for-go/v5/project" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/project" ) client := client.New( diff --git a/examples/1.9.x/server-go/examples/project/update-session-limit-policy.md b/examples/1.9.x/server-go/examples/project/update-session-limit-policy.md index 87bc546a9..ce75b9f39 100644 --- a/examples/1.9.x/server-go/examples/project/update-session-limit-policy.md +++ b/examples/1.9.x/server-go/examples/project/update-session-limit-policy.md @@ -3,8 +3,8 @@ package main import ( "fmt" - "github.com/appwrite/sdk-for-go/v5/client" - "github.com/appwrite/sdk-for-go/v5/project" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/project" ) client := client.New( diff --git a/examples/1.9.x/server-go/examples/project/update-smtp.md b/examples/1.9.x/server-go/examples/project/update-smtp.md index 81f99800f..b100d472a 100644 --- a/examples/1.9.x/server-go/examples/project/update-smtp.md +++ b/examples/1.9.x/server-go/examples/project/update-smtp.md @@ -3,8 +3,8 @@ package main import ( "fmt" - "github.com/appwrite/sdk-for-go/v5/client" - "github.com/appwrite/sdk-for-go/v5/project" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/project" ) client := client.New( diff --git a/examples/1.9.x/server-go/examples/project/update-user-limit-policy.md b/examples/1.9.x/server-go/examples/project/update-user-limit-policy.md index 38ccd7e49..1dbc816b1 100644 --- a/examples/1.9.x/server-go/examples/project/update-user-limit-policy.md +++ b/examples/1.9.x/server-go/examples/project/update-user-limit-policy.md @@ -3,8 +3,8 @@ package main import ( "fmt" - "github.com/appwrite/sdk-for-go/v5/client" - "github.com/appwrite/sdk-for-go/v5/project" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/project" ) client := client.New( diff --git a/examples/1.9.x/server-go/examples/project/update-variable.md b/examples/1.9.x/server-go/examples/project/update-variable.md index 361302a17..294642bcf 100644 --- a/examples/1.9.x/server-go/examples/project/update-variable.md +++ b/examples/1.9.x/server-go/examples/project/update-variable.md @@ -3,8 +3,8 @@ package main import ( "fmt" - "github.com/appwrite/sdk-for-go/v5/client" - "github.com/appwrite/sdk-for-go/v5/project" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/project" ) client := client.New( diff --git a/examples/1.9.x/server-go/examples/project/update-waf.md b/examples/1.9.x/server-go/examples/project/update-waf.md new file mode 100644 index 000000000..b4262bee6 --- /dev/null +++ b/examples/1.9.x/server-go/examples/project/update-waf.md @@ -0,0 +1,21 @@ +```go +package main + +import ( + "fmt" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/project" +) + +client := client.New( + client.WithEndpoint("https://.cloud.appwrite.io/v1") + client.WithProject("") + client.WithKey("") +) + +service := project.New(client) + +response, error := service.UpdateWaf( + false, +) +``` diff --git a/examples/1.9.x/server-go/examples/project/update-web-platform.md b/examples/1.9.x/server-go/examples/project/update-web-platform.md index 6a1f34645..f5214d4e6 100644 --- a/examples/1.9.x/server-go/examples/project/update-web-platform.md +++ b/examples/1.9.x/server-go/examples/project/update-web-platform.md @@ -3,8 +3,8 @@ package main import ( "fmt" - "github.com/appwrite/sdk-for-go/v5/client" - "github.com/appwrite/sdk-for-go/v5/project" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/project" ) client := client.New( diff --git a/examples/1.9.x/server-go/examples/project/update-windows-platform.md b/examples/1.9.x/server-go/examples/project/update-windows-platform.md index 5cedddff0..890d0cd57 100644 --- a/examples/1.9.x/server-go/examples/project/update-windows-platform.md +++ b/examples/1.9.x/server-go/examples/project/update-windows-platform.md @@ -3,8 +3,8 @@ package main import ( "fmt" - "github.com/appwrite/sdk-for-go/v5/client" - "github.com/appwrite/sdk-for-go/v5/project" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/project" ) client := client.New( diff --git a/examples/1.9.x/server-go/examples/proxy/create-api-rule.md b/examples/1.9.x/server-go/examples/proxy/create-api-rule.md index 6b917b32b..7580902cd 100644 --- a/examples/1.9.x/server-go/examples/proxy/create-api-rule.md +++ b/examples/1.9.x/server-go/examples/proxy/create-api-rule.md @@ -3,8 +3,8 @@ package main import ( "fmt" - "github.com/appwrite/sdk-for-go/v5/client" - "github.com/appwrite/sdk-for-go/v5/proxy" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/proxy" ) client := client.New( diff --git a/examples/1.9.x/server-go/examples/proxy/create-function-rule.md b/examples/1.9.x/server-go/examples/proxy/create-function-rule.md index d5cce6712..f11f0df64 100644 --- a/examples/1.9.x/server-go/examples/proxy/create-function-rule.md +++ b/examples/1.9.x/server-go/examples/proxy/create-function-rule.md @@ -3,8 +3,8 @@ package main import ( "fmt" - "github.com/appwrite/sdk-for-go/v5/client" - "github.com/appwrite/sdk-for-go/v5/proxy" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/proxy" ) client := client.New( diff --git a/examples/1.9.x/server-go/examples/proxy/create-redirect-rule.md b/examples/1.9.x/server-go/examples/proxy/create-redirect-rule.md index 3b682ecc1..8c280944d 100644 --- a/examples/1.9.x/server-go/examples/proxy/create-redirect-rule.md +++ b/examples/1.9.x/server-go/examples/proxy/create-redirect-rule.md @@ -3,8 +3,8 @@ package main import ( "fmt" - "github.com/appwrite/sdk-for-go/v5/client" - "github.com/appwrite/sdk-for-go/v5/proxy" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/proxy" ) client := client.New( diff --git a/examples/1.9.x/server-go/examples/proxy/create-site-rule.md b/examples/1.9.x/server-go/examples/proxy/create-site-rule.md index dd7f0d489..eeba83871 100644 --- a/examples/1.9.x/server-go/examples/proxy/create-site-rule.md +++ b/examples/1.9.x/server-go/examples/proxy/create-site-rule.md @@ -3,8 +3,8 @@ package main import ( "fmt" - "github.com/appwrite/sdk-for-go/v5/client" - "github.com/appwrite/sdk-for-go/v5/proxy" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/proxy" ) client := client.New( diff --git a/examples/1.9.x/server-go/examples/proxy/delete-rule.md b/examples/1.9.x/server-go/examples/proxy/delete-rule.md index 6b22c350f..905bac643 100644 --- a/examples/1.9.x/server-go/examples/proxy/delete-rule.md +++ b/examples/1.9.x/server-go/examples/proxy/delete-rule.md @@ -3,8 +3,8 @@ package main import ( "fmt" - "github.com/appwrite/sdk-for-go/v5/client" - "github.com/appwrite/sdk-for-go/v5/proxy" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/proxy" ) client := client.New( diff --git a/examples/1.9.x/server-go/examples/proxy/get-rule.md b/examples/1.9.x/server-go/examples/proxy/get-rule.md index dc0049aff..77158d9ce 100644 --- a/examples/1.9.x/server-go/examples/proxy/get-rule.md +++ b/examples/1.9.x/server-go/examples/proxy/get-rule.md @@ -3,8 +3,8 @@ package main import ( "fmt" - "github.com/appwrite/sdk-for-go/v5/client" - "github.com/appwrite/sdk-for-go/v5/proxy" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/proxy" ) client := client.New( diff --git a/examples/1.9.x/server-go/examples/proxy/list-rules.md b/examples/1.9.x/server-go/examples/proxy/list-rules.md index b1790d331..52c3244ca 100644 --- a/examples/1.9.x/server-go/examples/proxy/list-rules.md +++ b/examples/1.9.x/server-go/examples/proxy/list-rules.md @@ -3,8 +3,8 @@ package main import ( "fmt" - "github.com/appwrite/sdk-for-go/v5/client" - "github.com/appwrite/sdk-for-go/v5/proxy" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/proxy" ) client := client.New( diff --git a/examples/1.9.x/server-go/examples/proxy/update-rule-status.md b/examples/1.9.x/server-go/examples/proxy/update-rule-status.md index a93bd9ab0..6b8e4cc80 100644 --- a/examples/1.9.x/server-go/examples/proxy/update-rule-status.md +++ b/examples/1.9.x/server-go/examples/proxy/update-rule-status.md @@ -3,8 +3,8 @@ package main import ( "fmt" - "github.com/appwrite/sdk-for-go/v5/client" - "github.com/appwrite/sdk-for-go/v5/proxy" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/proxy" ) client := client.New( diff --git a/examples/1.9.x/server-go/examples/sites/create-deployment.md b/examples/1.9.x/server-go/examples/sites/create-deployment.md index 71d451256..6e0b71207 100644 --- a/examples/1.9.x/server-go/examples/sites/create-deployment.md +++ b/examples/1.9.x/server-go/examples/sites/create-deployment.md @@ -3,8 +3,8 @@ package main import ( "fmt" - "github.com/appwrite/sdk-for-go/v5/client" - "github.com/appwrite/sdk-for-go/v5/sites" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/sites" ) client := client.New( diff --git a/examples/1.9.x/server-go/examples/sites/create-duplicate-deployment.md b/examples/1.9.x/server-go/examples/sites/create-duplicate-deployment.md index c7da97680..7095f9973 100644 --- a/examples/1.9.x/server-go/examples/sites/create-duplicate-deployment.md +++ b/examples/1.9.x/server-go/examples/sites/create-duplicate-deployment.md @@ -3,8 +3,8 @@ package main import ( "fmt" - "github.com/appwrite/sdk-for-go/v5/client" - "github.com/appwrite/sdk-for-go/v5/sites" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/sites" ) client := client.New( diff --git a/examples/1.9.x/server-go/examples/sites/create-template-deployment.md b/examples/1.9.x/server-go/examples/sites/create-template-deployment.md index fdc6094f7..b219decec 100644 --- a/examples/1.9.x/server-go/examples/sites/create-template-deployment.md +++ b/examples/1.9.x/server-go/examples/sites/create-template-deployment.md @@ -3,8 +3,8 @@ package main import ( "fmt" - "github.com/appwrite/sdk-for-go/v5/client" - "github.com/appwrite/sdk-for-go/v5/sites" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/sites" ) client := client.New( diff --git a/examples/1.9.x/server-go/examples/sites/create-variable.md b/examples/1.9.x/server-go/examples/sites/create-variable.md index 81ded728b..2cada9b5b 100644 --- a/examples/1.9.x/server-go/examples/sites/create-variable.md +++ b/examples/1.9.x/server-go/examples/sites/create-variable.md @@ -3,8 +3,8 @@ package main import ( "fmt" - "github.com/appwrite/sdk-for-go/v5/client" - "github.com/appwrite/sdk-for-go/v5/sites" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/sites" ) client := client.New( diff --git a/examples/1.9.x/server-go/examples/sites/create-vcs-deployment.md b/examples/1.9.x/server-go/examples/sites/create-vcs-deployment.md index 6d898ee8a..6d23bb79d 100644 --- a/examples/1.9.x/server-go/examples/sites/create-vcs-deployment.md +++ b/examples/1.9.x/server-go/examples/sites/create-vcs-deployment.md @@ -3,8 +3,8 @@ package main import ( "fmt" - "github.com/appwrite/sdk-for-go/v5/client" - "github.com/appwrite/sdk-for-go/v5/sites" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/sites" ) client := client.New( diff --git a/examples/1.9.x/server-go/examples/sites/create.md b/examples/1.9.x/server-go/examples/sites/create.md index a3d1891e6..099788ab8 100644 --- a/examples/1.9.x/server-go/examples/sites/create.md +++ b/examples/1.9.x/server-go/examples/sites/create.md @@ -3,8 +3,8 @@ package main import ( "fmt" - "github.com/appwrite/sdk-for-go/v5/client" - "github.com/appwrite/sdk-for-go/v5/sites" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/sites" ) client := client.New( diff --git a/examples/1.9.x/server-go/examples/sites/delete-deployment.md b/examples/1.9.x/server-go/examples/sites/delete-deployment.md index 39b1adefe..e13113bcd 100644 --- a/examples/1.9.x/server-go/examples/sites/delete-deployment.md +++ b/examples/1.9.x/server-go/examples/sites/delete-deployment.md @@ -3,8 +3,8 @@ package main import ( "fmt" - "github.com/appwrite/sdk-for-go/v5/client" - "github.com/appwrite/sdk-for-go/v5/sites" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/sites" ) client := client.New( diff --git a/examples/1.9.x/server-go/examples/sites/delete-log.md b/examples/1.9.x/server-go/examples/sites/delete-log.md index 5349e3f0b..8d4b05560 100644 --- a/examples/1.9.x/server-go/examples/sites/delete-log.md +++ b/examples/1.9.x/server-go/examples/sites/delete-log.md @@ -3,8 +3,8 @@ package main import ( "fmt" - "github.com/appwrite/sdk-for-go/v5/client" - "github.com/appwrite/sdk-for-go/v5/sites" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/sites" ) client := client.New( diff --git a/examples/1.9.x/server-go/examples/sites/delete-variable.md b/examples/1.9.x/server-go/examples/sites/delete-variable.md index c52661787..a9590b08e 100644 --- a/examples/1.9.x/server-go/examples/sites/delete-variable.md +++ b/examples/1.9.x/server-go/examples/sites/delete-variable.md @@ -3,8 +3,8 @@ package main import ( "fmt" - "github.com/appwrite/sdk-for-go/v5/client" - "github.com/appwrite/sdk-for-go/v5/sites" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/sites" ) client := client.New( diff --git a/examples/1.9.x/server-go/examples/sites/delete.md b/examples/1.9.x/server-go/examples/sites/delete.md index 3ea10378b..a16693dc5 100644 --- a/examples/1.9.x/server-go/examples/sites/delete.md +++ b/examples/1.9.x/server-go/examples/sites/delete.md @@ -3,8 +3,8 @@ package main import ( "fmt" - "github.com/appwrite/sdk-for-go/v5/client" - "github.com/appwrite/sdk-for-go/v5/sites" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/sites" ) client := client.New( diff --git a/examples/1.9.x/server-go/examples/sites/get-deployment-download.md b/examples/1.9.x/server-go/examples/sites/get-deployment-download.md index bd6d27c75..6d9e5f542 100644 --- a/examples/1.9.x/server-go/examples/sites/get-deployment-download.md +++ b/examples/1.9.x/server-go/examples/sites/get-deployment-download.md @@ -3,8 +3,8 @@ package main import ( "fmt" - "github.com/appwrite/sdk-for-go/v5/client" - "github.com/appwrite/sdk-for-go/v5/sites" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/sites" ) client := client.New( @@ -19,5 +19,6 @@ response, error := service.GetDeploymentDownload( "", "", sites.WithGetDeploymentDownloadType("source"), + sites.WithGetDeploymentDownloadToken(""), ) ``` diff --git a/examples/1.9.x/server-go/examples/sites/get-deployment.md b/examples/1.9.x/server-go/examples/sites/get-deployment.md index bebeb36cd..c3037d466 100644 --- a/examples/1.9.x/server-go/examples/sites/get-deployment.md +++ b/examples/1.9.x/server-go/examples/sites/get-deployment.md @@ -3,8 +3,8 @@ package main import ( "fmt" - "github.com/appwrite/sdk-for-go/v5/client" - "github.com/appwrite/sdk-for-go/v5/sites" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/sites" ) client := client.New( diff --git a/examples/1.9.x/server-go/examples/sites/get-log.md b/examples/1.9.x/server-go/examples/sites/get-log.md index 4d9ab19ab..f0c19b867 100644 --- a/examples/1.9.x/server-go/examples/sites/get-log.md +++ b/examples/1.9.x/server-go/examples/sites/get-log.md @@ -3,8 +3,8 @@ package main import ( "fmt" - "github.com/appwrite/sdk-for-go/v5/client" - "github.com/appwrite/sdk-for-go/v5/sites" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/sites" ) client := client.New( diff --git a/examples/1.9.x/server-go/examples/sites/get-variable.md b/examples/1.9.x/server-go/examples/sites/get-variable.md index 966d9a93a..ac71ba088 100644 --- a/examples/1.9.x/server-go/examples/sites/get-variable.md +++ b/examples/1.9.x/server-go/examples/sites/get-variable.md @@ -3,8 +3,8 @@ package main import ( "fmt" - "github.com/appwrite/sdk-for-go/v5/client" - "github.com/appwrite/sdk-for-go/v5/sites" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/sites" ) client := client.New( diff --git a/examples/1.9.x/server-go/examples/sites/get.md b/examples/1.9.x/server-go/examples/sites/get.md index 838654abc..1206eeec4 100644 --- a/examples/1.9.x/server-go/examples/sites/get.md +++ b/examples/1.9.x/server-go/examples/sites/get.md @@ -3,8 +3,8 @@ package main import ( "fmt" - "github.com/appwrite/sdk-for-go/v5/client" - "github.com/appwrite/sdk-for-go/v5/sites" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/sites" ) client := client.New( diff --git a/examples/1.9.x/server-go/examples/sites/list-deployments.md b/examples/1.9.x/server-go/examples/sites/list-deployments.md index 123f82011..8ae5570b3 100644 --- a/examples/1.9.x/server-go/examples/sites/list-deployments.md +++ b/examples/1.9.x/server-go/examples/sites/list-deployments.md @@ -3,8 +3,8 @@ package main import ( "fmt" - "github.com/appwrite/sdk-for-go/v5/client" - "github.com/appwrite/sdk-for-go/v5/sites" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/sites" ) client := client.New( diff --git a/examples/1.9.x/server-go/examples/sites/list-frameworks.md b/examples/1.9.x/server-go/examples/sites/list-frameworks.md index dbd77a245..d21eab37c 100644 --- a/examples/1.9.x/server-go/examples/sites/list-frameworks.md +++ b/examples/1.9.x/server-go/examples/sites/list-frameworks.md @@ -3,8 +3,8 @@ package main import ( "fmt" - "github.com/appwrite/sdk-for-go/v5/client" - "github.com/appwrite/sdk-for-go/v5/sites" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/sites" ) client := client.New( diff --git a/examples/1.9.x/server-go/examples/sites/list-logs.md b/examples/1.9.x/server-go/examples/sites/list-logs.md index 1c67a0c1a..e67bf4b26 100644 --- a/examples/1.9.x/server-go/examples/sites/list-logs.md +++ b/examples/1.9.x/server-go/examples/sites/list-logs.md @@ -3,8 +3,8 @@ package main import ( "fmt" - "github.com/appwrite/sdk-for-go/v5/client" - "github.com/appwrite/sdk-for-go/v5/sites" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/sites" ) client := client.New( diff --git a/examples/1.9.x/server-go/examples/sites/list-specifications.md b/examples/1.9.x/server-go/examples/sites/list-specifications.md index 3da71fbfc..045fce9ff 100644 --- a/examples/1.9.x/server-go/examples/sites/list-specifications.md +++ b/examples/1.9.x/server-go/examples/sites/list-specifications.md @@ -3,8 +3,8 @@ package main import ( "fmt" - "github.com/appwrite/sdk-for-go/v5/client" - "github.com/appwrite/sdk-for-go/v5/sites" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/sites" ) client := client.New( diff --git a/examples/1.9.x/server-go/examples/sites/list-variables.md b/examples/1.9.x/server-go/examples/sites/list-variables.md index a5a0fa066..0c62fee38 100644 --- a/examples/1.9.x/server-go/examples/sites/list-variables.md +++ b/examples/1.9.x/server-go/examples/sites/list-variables.md @@ -3,8 +3,8 @@ package main import ( "fmt" - "github.com/appwrite/sdk-for-go/v5/client" - "github.com/appwrite/sdk-for-go/v5/sites" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/sites" ) client := client.New( diff --git a/examples/1.9.x/server-go/examples/sites/list.md b/examples/1.9.x/server-go/examples/sites/list.md index 26bb4494c..c7bd47088 100644 --- a/examples/1.9.x/server-go/examples/sites/list.md +++ b/examples/1.9.x/server-go/examples/sites/list.md @@ -3,8 +3,8 @@ package main import ( "fmt" - "github.com/appwrite/sdk-for-go/v5/client" - "github.com/appwrite/sdk-for-go/v5/sites" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/sites" ) client := client.New( diff --git a/examples/1.9.x/server-go/examples/sites/update-deployment-status.md b/examples/1.9.x/server-go/examples/sites/update-deployment-status.md index cf5f311fb..9302a5fa6 100644 --- a/examples/1.9.x/server-go/examples/sites/update-deployment-status.md +++ b/examples/1.9.x/server-go/examples/sites/update-deployment-status.md @@ -3,8 +3,8 @@ package main import ( "fmt" - "github.com/appwrite/sdk-for-go/v5/client" - "github.com/appwrite/sdk-for-go/v5/sites" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/sites" ) client := client.New( diff --git a/examples/1.9.x/server-go/examples/sites/update-site-deployment.md b/examples/1.9.x/server-go/examples/sites/update-site-deployment.md index 3cc2929f3..ec702d533 100644 --- a/examples/1.9.x/server-go/examples/sites/update-site-deployment.md +++ b/examples/1.9.x/server-go/examples/sites/update-site-deployment.md @@ -3,8 +3,8 @@ package main import ( "fmt" - "github.com/appwrite/sdk-for-go/v5/client" - "github.com/appwrite/sdk-for-go/v5/sites" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/sites" ) client := client.New( diff --git a/examples/1.9.x/server-go/examples/sites/update-variable.md b/examples/1.9.x/server-go/examples/sites/update-variable.md index b7d388b2a..b3a91d3f1 100644 --- a/examples/1.9.x/server-go/examples/sites/update-variable.md +++ b/examples/1.9.x/server-go/examples/sites/update-variable.md @@ -3,8 +3,8 @@ package main import ( "fmt" - "github.com/appwrite/sdk-for-go/v5/client" - "github.com/appwrite/sdk-for-go/v5/sites" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/sites" ) client := client.New( diff --git a/examples/1.9.x/server-go/examples/sites/update.md b/examples/1.9.x/server-go/examples/sites/update.md index 54f1d344f..732816d36 100644 --- a/examples/1.9.x/server-go/examples/sites/update.md +++ b/examples/1.9.x/server-go/examples/sites/update.md @@ -3,8 +3,8 @@ package main import ( "fmt" - "github.com/appwrite/sdk-for-go/v5/client" - "github.com/appwrite/sdk-for-go/v5/sites" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/sites" ) client := client.New( diff --git a/examples/1.9.x/server-go/examples/storage/create-bucket.md b/examples/1.9.x/server-go/examples/storage/create-bucket.md index 14118bcb3..2283f91c8 100644 --- a/examples/1.9.x/server-go/examples/storage/create-bucket.md +++ b/examples/1.9.x/server-go/examples/storage/create-bucket.md @@ -3,8 +3,8 @@ package main import ( "fmt" - "github.com/appwrite/sdk-for-go/v5/client" - "github.com/appwrite/sdk-for-go/v5/storage" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/storage" ) client := client.New( diff --git a/examples/1.9.x/server-go/examples/storage/create-file.md b/examples/1.9.x/server-go/examples/storage/create-file.md index 8dc065283..c85a55710 100644 --- a/examples/1.9.x/server-go/examples/storage/create-file.md +++ b/examples/1.9.x/server-go/examples/storage/create-file.md @@ -3,8 +3,8 @@ package main import ( "fmt" - "github.com/appwrite/sdk-for-go/v5/client" - "github.com/appwrite/sdk-for-go/v5/storage" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/storage" ) client := client.New( diff --git a/examples/1.9.x/server-go/examples/storage/delete-bucket.md b/examples/1.9.x/server-go/examples/storage/delete-bucket.md index 72b032164..2a1f991e8 100644 --- a/examples/1.9.x/server-go/examples/storage/delete-bucket.md +++ b/examples/1.9.x/server-go/examples/storage/delete-bucket.md @@ -3,8 +3,8 @@ package main import ( "fmt" - "github.com/appwrite/sdk-for-go/v5/client" - "github.com/appwrite/sdk-for-go/v5/storage" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/storage" ) client := client.New( diff --git a/examples/1.9.x/server-go/examples/storage/delete-file.md b/examples/1.9.x/server-go/examples/storage/delete-file.md index 6c7f79b46..384eced87 100644 --- a/examples/1.9.x/server-go/examples/storage/delete-file.md +++ b/examples/1.9.x/server-go/examples/storage/delete-file.md @@ -3,8 +3,8 @@ package main import ( "fmt" - "github.com/appwrite/sdk-for-go/v5/client" - "github.com/appwrite/sdk-for-go/v5/storage" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/storage" ) client := client.New( diff --git a/examples/1.9.x/server-go/examples/storage/get-bucket.md b/examples/1.9.x/server-go/examples/storage/get-bucket.md index 642bb3a58..edc2cc1d1 100644 --- a/examples/1.9.x/server-go/examples/storage/get-bucket.md +++ b/examples/1.9.x/server-go/examples/storage/get-bucket.md @@ -3,8 +3,8 @@ package main import ( "fmt" - "github.com/appwrite/sdk-for-go/v5/client" - "github.com/appwrite/sdk-for-go/v5/storage" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/storage" ) client := client.New( diff --git a/examples/1.9.x/server-go/examples/storage/get-file-download.md b/examples/1.9.x/server-go/examples/storage/get-file-download.md index 164b6fa25..1d26a4ff6 100644 --- a/examples/1.9.x/server-go/examples/storage/get-file-download.md +++ b/examples/1.9.x/server-go/examples/storage/get-file-download.md @@ -3,8 +3,8 @@ package main import ( "fmt" - "github.com/appwrite/sdk-for-go/v5/client" - "github.com/appwrite/sdk-for-go/v5/storage" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/storage" ) client := client.New( diff --git a/examples/1.9.x/server-go/examples/storage/get-file-preview.md b/examples/1.9.x/server-go/examples/storage/get-file-preview.md index d72048736..3c2ac9b1a 100644 --- a/examples/1.9.x/server-go/examples/storage/get-file-preview.md +++ b/examples/1.9.x/server-go/examples/storage/get-file-preview.md @@ -3,8 +3,8 @@ package main import ( "fmt" - "github.com/appwrite/sdk-for-go/v5/client" - "github.com/appwrite/sdk-for-go/v5/storage" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/storage" ) client := client.New( diff --git a/examples/1.9.x/server-go/examples/storage/get-file-view.md b/examples/1.9.x/server-go/examples/storage/get-file-view.md index e35635b45..2d67c9f92 100644 --- a/examples/1.9.x/server-go/examples/storage/get-file-view.md +++ b/examples/1.9.x/server-go/examples/storage/get-file-view.md @@ -3,8 +3,8 @@ package main import ( "fmt" - "github.com/appwrite/sdk-for-go/v5/client" - "github.com/appwrite/sdk-for-go/v5/storage" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/storage" ) client := client.New( diff --git a/examples/1.9.x/server-go/examples/storage/get-file.md b/examples/1.9.x/server-go/examples/storage/get-file.md index 5692d44f4..25de316f5 100644 --- a/examples/1.9.x/server-go/examples/storage/get-file.md +++ b/examples/1.9.x/server-go/examples/storage/get-file.md @@ -3,8 +3,8 @@ package main import ( "fmt" - "github.com/appwrite/sdk-for-go/v5/client" - "github.com/appwrite/sdk-for-go/v5/storage" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/storage" ) client := client.New( diff --git a/examples/1.9.x/server-go/examples/storage/list-buckets.md b/examples/1.9.x/server-go/examples/storage/list-buckets.md index ef80c0964..3a29ac2f9 100644 --- a/examples/1.9.x/server-go/examples/storage/list-buckets.md +++ b/examples/1.9.x/server-go/examples/storage/list-buckets.md @@ -3,8 +3,8 @@ package main import ( "fmt" - "github.com/appwrite/sdk-for-go/v5/client" - "github.com/appwrite/sdk-for-go/v5/storage" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/storage" ) client := client.New( diff --git a/examples/1.9.x/server-go/examples/storage/list-files.md b/examples/1.9.x/server-go/examples/storage/list-files.md index 563d5ff3c..b50742cd2 100644 --- a/examples/1.9.x/server-go/examples/storage/list-files.md +++ b/examples/1.9.x/server-go/examples/storage/list-files.md @@ -3,8 +3,8 @@ package main import ( "fmt" - "github.com/appwrite/sdk-for-go/v5/client" - "github.com/appwrite/sdk-for-go/v5/storage" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/storage" ) client := client.New( diff --git a/examples/1.9.x/server-go/examples/storage/update-bucket.md b/examples/1.9.x/server-go/examples/storage/update-bucket.md index 1134db6f8..578e9b444 100644 --- a/examples/1.9.x/server-go/examples/storage/update-bucket.md +++ b/examples/1.9.x/server-go/examples/storage/update-bucket.md @@ -3,8 +3,8 @@ package main import ( "fmt" - "github.com/appwrite/sdk-for-go/v5/client" - "github.com/appwrite/sdk-for-go/v5/storage" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/storage" ) client := client.New( diff --git a/examples/1.9.x/server-go/examples/storage/update-file.md b/examples/1.9.x/server-go/examples/storage/update-file.md index 43901c52d..6b22c112c 100644 --- a/examples/1.9.x/server-go/examples/storage/update-file.md +++ b/examples/1.9.x/server-go/examples/storage/update-file.md @@ -3,8 +3,8 @@ package main import ( "fmt" - "github.com/appwrite/sdk-for-go/v5/client" - "github.com/appwrite/sdk-for-go/v5/storage" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/storage" ) client := client.New( diff --git a/examples/1.9.x/server-go/examples/tablesdb/create-big-int-column.md b/examples/1.9.x/server-go/examples/tablesdb/create-big-int-column.md index d764ee7a1..fc16f1828 100644 --- a/examples/1.9.x/server-go/examples/tablesdb/create-big-int-column.md +++ b/examples/1.9.x/server-go/examples/tablesdb/create-big-int-column.md @@ -3,8 +3,8 @@ package main import ( "fmt" - "github.com/appwrite/sdk-for-go/v5/client" - "github.com/appwrite/sdk-for-go/v5/tablesdb" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/tablesdb" ) client := client.New( diff --git a/examples/1.9.x/server-go/examples/tablesdb/create-boolean-column.md b/examples/1.9.x/server-go/examples/tablesdb/create-boolean-column.md index 7b349c643..c9bb9b81c 100644 --- a/examples/1.9.x/server-go/examples/tablesdb/create-boolean-column.md +++ b/examples/1.9.x/server-go/examples/tablesdb/create-boolean-column.md @@ -3,8 +3,8 @@ package main import ( "fmt" - "github.com/appwrite/sdk-for-go/v5/client" - "github.com/appwrite/sdk-for-go/v5/tablesdb" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/tablesdb" ) client := client.New( diff --git a/examples/1.9.x/server-go/examples/tablesdb/create-datetime-column.md b/examples/1.9.x/server-go/examples/tablesdb/create-datetime-column.md index 0883250b8..5065be223 100644 --- a/examples/1.9.x/server-go/examples/tablesdb/create-datetime-column.md +++ b/examples/1.9.x/server-go/examples/tablesdb/create-datetime-column.md @@ -3,8 +3,8 @@ package main import ( "fmt" - "github.com/appwrite/sdk-for-go/v5/client" - "github.com/appwrite/sdk-for-go/v5/tablesdb" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/tablesdb" ) client := client.New( diff --git a/examples/1.9.x/server-go/examples/tablesdb/create-email-column.md b/examples/1.9.x/server-go/examples/tablesdb/create-email-column.md index 0f138a65d..5adce885c 100644 --- a/examples/1.9.x/server-go/examples/tablesdb/create-email-column.md +++ b/examples/1.9.x/server-go/examples/tablesdb/create-email-column.md @@ -3,8 +3,8 @@ package main import ( "fmt" - "github.com/appwrite/sdk-for-go/v5/client" - "github.com/appwrite/sdk-for-go/v5/tablesdb" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/tablesdb" ) client := client.New( diff --git a/examples/1.9.x/server-go/examples/tablesdb/create-enum-column.md b/examples/1.9.x/server-go/examples/tablesdb/create-enum-column.md index d665f4614..c5a363e25 100644 --- a/examples/1.9.x/server-go/examples/tablesdb/create-enum-column.md +++ b/examples/1.9.x/server-go/examples/tablesdb/create-enum-column.md @@ -3,8 +3,8 @@ package main import ( "fmt" - "github.com/appwrite/sdk-for-go/v5/client" - "github.com/appwrite/sdk-for-go/v5/tablesdb" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/tablesdb" ) client := client.New( diff --git a/examples/1.9.x/server-go/examples/tablesdb/create-failover.md b/examples/1.9.x/server-go/examples/tablesdb/create-failover.md new file mode 100644 index 000000000..a6cca9fff --- /dev/null +++ b/examples/1.9.x/server-go/examples/tablesdb/create-failover.md @@ -0,0 +1,22 @@ +```go +package main + +import ( + "fmt" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/tablesdb" +) + +client := client.New( + client.WithEndpoint("https://.cloud.appwrite.io/v1") + client.WithProject("") + client.WithKey("") +) + +service := tablesdb.New(client) + +response, error := service.CreateFailover( + "", + tablesdb.WithCreateFailoverTargetReplicaId(""), +) +``` diff --git a/examples/1.9.x/server-go/examples/tablesdb/create-float-column.md b/examples/1.9.x/server-go/examples/tablesdb/create-float-column.md index 89b64c074..1dda3937f 100644 --- a/examples/1.9.x/server-go/examples/tablesdb/create-float-column.md +++ b/examples/1.9.x/server-go/examples/tablesdb/create-float-column.md @@ -3,8 +3,8 @@ package main import ( "fmt" - "github.com/appwrite/sdk-for-go/v5/client" - "github.com/appwrite/sdk-for-go/v5/tablesdb" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/tablesdb" ) client := client.New( diff --git a/examples/1.9.x/server-go/examples/tablesdb/create-index.md b/examples/1.9.x/server-go/examples/tablesdb/create-index.md index 387f66215..f985d22df 100644 --- a/examples/1.9.x/server-go/examples/tablesdb/create-index.md +++ b/examples/1.9.x/server-go/examples/tablesdb/create-index.md @@ -3,8 +3,8 @@ package main import ( "fmt" - "github.com/appwrite/sdk-for-go/v5/client" - "github.com/appwrite/sdk-for-go/v5/tablesdb" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/tablesdb" ) client := client.New( diff --git a/examples/1.9.x/server-go/examples/tablesdb/create-integer-column.md b/examples/1.9.x/server-go/examples/tablesdb/create-integer-column.md index 9a17c7dfa..2fc7c75a2 100644 --- a/examples/1.9.x/server-go/examples/tablesdb/create-integer-column.md +++ b/examples/1.9.x/server-go/examples/tablesdb/create-integer-column.md @@ -3,8 +3,8 @@ package main import ( "fmt" - "github.com/appwrite/sdk-for-go/v5/client" - "github.com/appwrite/sdk-for-go/v5/tablesdb" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/tablesdb" ) client := client.New( diff --git a/examples/1.9.x/server-go/examples/tablesdb/create-ip-column.md b/examples/1.9.x/server-go/examples/tablesdb/create-ip-column.md index e1c8e4485..06c94d9e7 100644 --- a/examples/1.9.x/server-go/examples/tablesdb/create-ip-column.md +++ b/examples/1.9.x/server-go/examples/tablesdb/create-ip-column.md @@ -3,8 +3,8 @@ package main import ( "fmt" - "github.com/appwrite/sdk-for-go/v5/client" - "github.com/appwrite/sdk-for-go/v5/tablesdb" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/tablesdb" ) client := client.New( diff --git a/examples/1.9.x/server-go/examples/tablesdb/create-line-column.md b/examples/1.9.x/server-go/examples/tablesdb/create-line-column.md index 6d2be9caf..cc5fd32b1 100644 --- a/examples/1.9.x/server-go/examples/tablesdb/create-line-column.md +++ b/examples/1.9.x/server-go/examples/tablesdb/create-line-column.md @@ -3,8 +3,8 @@ package main import ( "fmt" - "github.com/appwrite/sdk-for-go/v5/client" - "github.com/appwrite/sdk-for-go/v5/tablesdb" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/tablesdb" ) client := client.New( diff --git a/examples/1.9.x/server-go/examples/tablesdb/create-longtext-column.md b/examples/1.9.x/server-go/examples/tablesdb/create-longtext-column.md index a4cf1c42c..2751688b2 100644 --- a/examples/1.9.x/server-go/examples/tablesdb/create-longtext-column.md +++ b/examples/1.9.x/server-go/examples/tablesdb/create-longtext-column.md @@ -3,8 +3,8 @@ package main import ( "fmt" - "github.com/appwrite/sdk-for-go/v5/client" - "github.com/appwrite/sdk-for-go/v5/tablesdb" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/tablesdb" ) client := client.New( diff --git a/examples/1.9.x/server-go/examples/tablesdb/create-mediumtext-column.md b/examples/1.9.x/server-go/examples/tablesdb/create-mediumtext-column.md index c528fc2cf..49c5c5d87 100644 --- a/examples/1.9.x/server-go/examples/tablesdb/create-mediumtext-column.md +++ b/examples/1.9.x/server-go/examples/tablesdb/create-mediumtext-column.md @@ -3,8 +3,8 @@ package main import ( "fmt" - "github.com/appwrite/sdk-for-go/v5/client" - "github.com/appwrite/sdk-for-go/v5/tablesdb" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/tablesdb" ) client := client.New( diff --git a/examples/1.9.x/server-go/examples/tablesdb/create-operations.md b/examples/1.9.x/server-go/examples/tablesdb/create-operations.md index d3811259b..cd23b4301 100644 --- a/examples/1.9.x/server-go/examples/tablesdb/create-operations.md +++ b/examples/1.9.x/server-go/examples/tablesdb/create-operations.md @@ -3,8 +3,8 @@ package main import ( "fmt" - "github.com/appwrite/sdk-for-go/v5/client" - "github.com/appwrite/sdk-for-go/v5/tablesdb" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/tablesdb" ) client := client.New( diff --git a/examples/1.9.x/server-go/examples/tablesdb/create-point-column.md b/examples/1.9.x/server-go/examples/tablesdb/create-point-column.md index 48fa92866..bc68cbb6c 100644 --- a/examples/1.9.x/server-go/examples/tablesdb/create-point-column.md +++ b/examples/1.9.x/server-go/examples/tablesdb/create-point-column.md @@ -3,8 +3,8 @@ package main import ( "fmt" - "github.com/appwrite/sdk-for-go/v5/client" - "github.com/appwrite/sdk-for-go/v5/tablesdb" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/tablesdb" ) client := client.New( diff --git a/examples/1.9.x/server-go/examples/tablesdb/create-polygon-column.md b/examples/1.9.x/server-go/examples/tablesdb/create-polygon-column.md index 498d2339e..2df731d3a 100644 --- a/examples/1.9.x/server-go/examples/tablesdb/create-polygon-column.md +++ b/examples/1.9.x/server-go/examples/tablesdb/create-polygon-column.md @@ -3,8 +3,8 @@ package main import ( "fmt" - "github.com/appwrite/sdk-for-go/v5/client" - "github.com/appwrite/sdk-for-go/v5/tablesdb" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/tablesdb" ) client := client.New( diff --git a/examples/1.9.x/server-go/examples/tablesdb/create-relationship-column.md b/examples/1.9.x/server-go/examples/tablesdb/create-relationship-column.md index fa33f0a8e..b188e1433 100644 --- a/examples/1.9.x/server-go/examples/tablesdb/create-relationship-column.md +++ b/examples/1.9.x/server-go/examples/tablesdb/create-relationship-column.md @@ -3,8 +3,8 @@ package main import ( "fmt" - "github.com/appwrite/sdk-for-go/v5/client" - "github.com/appwrite/sdk-for-go/v5/tablesdb" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/tablesdb" ) client := client.New( diff --git a/examples/1.9.x/server-go/examples/tablesdb/create-row.md b/examples/1.9.x/server-go/examples/tablesdb/create-row.md index 13280ce5d..851d1f299 100644 --- a/examples/1.9.x/server-go/examples/tablesdb/create-row.md +++ b/examples/1.9.x/server-go/examples/tablesdb/create-row.md @@ -3,8 +3,8 @@ package main import ( "fmt" - "github.com/appwrite/sdk-for-go/v5/client" - "github.com/appwrite/sdk-for-go/v5/tablesdb" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/tablesdb" ) client := client.New( diff --git a/examples/1.9.x/server-go/examples/tablesdb/create-rows.md b/examples/1.9.x/server-go/examples/tablesdb/create-rows.md index d771a9237..5d42a3b70 100644 --- a/examples/1.9.x/server-go/examples/tablesdb/create-rows.md +++ b/examples/1.9.x/server-go/examples/tablesdb/create-rows.md @@ -3,8 +3,8 @@ package main import ( "fmt" - "github.com/appwrite/sdk-for-go/v5/client" - "github.com/appwrite/sdk-for-go/v5/tablesdb" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/tablesdb" ) client := client.New( diff --git a/examples/1.9.x/server-go/examples/tablesdb/create-string-column.md b/examples/1.9.x/server-go/examples/tablesdb/create-string-column.md index efa4e2cfa..b61f918d9 100644 --- a/examples/1.9.x/server-go/examples/tablesdb/create-string-column.md +++ b/examples/1.9.x/server-go/examples/tablesdb/create-string-column.md @@ -3,8 +3,8 @@ package main import ( "fmt" - "github.com/appwrite/sdk-for-go/v5/client" - "github.com/appwrite/sdk-for-go/v5/tablesdb" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/tablesdb" ) client := client.New( diff --git a/examples/1.9.x/server-go/examples/tablesdb/create-table.md b/examples/1.9.x/server-go/examples/tablesdb/create-table.md index 576d280ec..8bc6f424f 100644 --- a/examples/1.9.x/server-go/examples/tablesdb/create-table.md +++ b/examples/1.9.x/server-go/examples/tablesdb/create-table.md @@ -3,8 +3,8 @@ package main import ( "fmt" - "github.com/appwrite/sdk-for-go/v5/client" - "github.com/appwrite/sdk-for-go/v5/tablesdb" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/tablesdb" ) client := client.New( diff --git a/examples/1.9.x/server-go/examples/tablesdb/create-text-column.md b/examples/1.9.x/server-go/examples/tablesdb/create-text-column.md index 8f6a238f7..3e5d8770d 100644 --- a/examples/1.9.x/server-go/examples/tablesdb/create-text-column.md +++ b/examples/1.9.x/server-go/examples/tablesdb/create-text-column.md @@ -3,8 +3,8 @@ package main import ( "fmt" - "github.com/appwrite/sdk-for-go/v5/client" - "github.com/appwrite/sdk-for-go/v5/tablesdb" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/tablesdb" ) client := client.New( diff --git a/examples/1.9.x/server-go/examples/tablesdb/create-transaction.md b/examples/1.9.x/server-go/examples/tablesdb/create-transaction.md index e320713cf..637800577 100644 --- a/examples/1.9.x/server-go/examples/tablesdb/create-transaction.md +++ b/examples/1.9.x/server-go/examples/tablesdb/create-transaction.md @@ -3,8 +3,8 @@ package main import ( "fmt" - "github.com/appwrite/sdk-for-go/v5/client" - "github.com/appwrite/sdk-for-go/v5/tablesdb" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/tablesdb" ) client := client.New( diff --git a/examples/1.9.x/server-go/examples/tablesdb/create-url-column.md b/examples/1.9.x/server-go/examples/tablesdb/create-url-column.md index 039ec3442..5dc816dae 100644 --- a/examples/1.9.x/server-go/examples/tablesdb/create-url-column.md +++ b/examples/1.9.x/server-go/examples/tablesdb/create-url-column.md @@ -3,8 +3,8 @@ package main import ( "fmt" - "github.com/appwrite/sdk-for-go/v5/client" - "github.com/appwrite/sdk-for-go/v5/tablesdb" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/tablesdb" ) client := client.New( diff --git a/examples/1.9.x/server-go/examples/tablesdb/create-varchar-column.md b/examples/1.9.x/server-go/examples/tablesdb/create-varchar-column.md index 06b547065..a0c7430ef 100644 --- a/examples/1.9.x/server-go/examples/tablesdb/create-varchar-column.md +++ b/examples/1.9.x/server-go/examples/tablesdb/create-varchar-column.md @@ -3,8 +3,8 @@ package main import ( "fmt" - "github.com/appwrite/sdk-for-go/v5/client" - "github.com/appwrite/sdk-for-go/v5/tablesdb" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/tablesdb" ) client := client.New( diff --git a/examples/1.9.x/server-go/examples/tablesdb/create.md b/examples/1.9.x/server-go/examples/tablesdb/create.md index 95503cc5b..b7ca541e1 100644 --- a/examples/1.9.x/server-go/examples/tablesdb/create.md +++ b/examples/1.9.x/server-go/examples/tablesdb/create.md @@ -3,8 +3,8 @@ package main import ( "fmt" - "github.com/appwrite/sdk-for-go/v5/client" - "github.com/appwrite/sdk-for-go/v5/tablesdb" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/tablesdb" ) client := client.New( @@ -19,6 +19,7 @@ response, error := service.Create( "", "", tablesdb.WithCreateEnabled(false), - tablesdb.WithCreateDedicatedDatabaseId(""), + tablesdb.WithCreateSpecification("serverless"), + tablesdb.WithCreateReplicas(0), ) ``` diff --git a/examples/1.9.x/server-go/examples/tablesdb/decrement-row-column.md b/examples/1.9.x/server-go/examples/tablesdb/decrement-row-column.md index da7dab464..b903e41aa 100644 --- a/examples/1.9.x/server-go/examples/tablesdb/decrement-row-column.md +++ b/examples/1.9.x/server-go/examples/tablesdb/decrement-row-column.md @@ -3,8 +3,8 @@ package main import ( "fmt" - "github.com/appwrite/sdk-for-go/v5/client" - "github.com/appwrite/sdk-for-go/v5/tablesdb" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/tablesdb" ) client := client.New( diff --git a/examples/1.9.x/server-go/examples/tablesdb/delete-column.md b/examples/1.9.x/server-go/examples/tablesdb/delete-column.md index 51c936225..4aea311cd 100644 --- a/examples/1.9.x/server-go/examples/tablesdb/delete-column.md +++ b/examples/1.9.x/server-go/examples/tablesdb/delete-column.md @@ -3,8 +3,8 @@ package main import ( "fmt" - "github.com/appwrite/sdk-for-go/v5/client" - "github.com/appwrite/sdk-for-go/v5/tablesdb" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/tablesdb" ) client := client.New( diff --git a/examples/1.9.x/server-go/examples/tablesdb/delete-index.md b/examples/1.9.x/server-go/examples/tablesdb/delete-index.md index 050950b3c..cac3ebbe4 100644 --- a/examples/1.9.x/server-go/examples/tablesdb/delete-index.md +++ b/examples/1.9.x/server-go/examples/tablesdb/delete-index.md @@ -3,8 +3,8 @@ package main import ( "fmt" - "github.com/appwrite/sdk-for-go/v5/client" - "github.com/appwrite/sdk-for-go/v5/tablesdb" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/tablesdb" ) client := client.New( diff --git a/examples/1.9.x/server-go/examples/tablesdb/delete-row.md b/examples/1.9.x/server-go/examples/tablesdb/delete-row.md index 39c15f5be..611b13e3b 100644 --- a/examples/1.9.x/server-go/examples/tablesdb/delete-row.md +++ b/examples/1.9.x/server-go/examples/tablesdb/delete-row.md @@ -3,8 +3,8 @@ package main import ( "fmt" - "github.com/appwrite/sdk-for-go/v5/client" - "github.com/appwrite/sdk-for-go/v5/tablesdb" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/tablesdb" ) client := client.New( diff --git a/examples/1.9.x/server-go/examples/tablesdb/delete-rows.md b/examples/1.9.x/server-go/examples/tablesdb/delete-rows.md index 9f094e510..7f60398dd 100644 --- a/examples/1.9.x/server-go/examples/tablesdb/delete-rows.md +++ b/examples/1.9.x/server-go/examples/tablesdb/delete-rows.md @@ -3,8 +3,8 @@ package main import ( "fmt" - "github.com/appwrite/sdk-for-go/v5/client" - "github.com/appwrite/sdk-for-go/v5/tablesdb" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/tablesdb" ) client := client.New( diff --git a/examples/1.9.x/server-go/examples/tablesdb/delete-table.md b/examples/1.9.x/server-go/examples/tablesdb/delete-table.md index 74f5f7168..0021585a8 100644 --- a/examples/1.9.x/server-go/examples/tablesdb/delete-table.md +++ b/examples/1.9.x/server-go/examples/tablesdb/delete-table.md @@ -3,8 +3,8 @@ package main import ( "fmt" - "github.com/appwrite/sdk-for-go/v5/client" - "github.com/appwrite/sdk-for-go/v5/tablesdb" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/tablesdb" ) client := client.New( diff --git a/examples/1.9.x/server-go/examples/tablesdb/delete-transaction.md b/examples/1.9.x/server-go/examples/tablesdb/delete-transaction.md index 14c514028..ab65e45ef 100644 --- a/examples/1.9.x/server-go/examples/tablesdb/delete-transaction.md +++ b/examples/1.9.x/server-go/examples/tablesdb/delete-transaction.md @@ -3,8 +3,8 @@ package main import ( "fmt" - "github.com/appwrite/sdk-for-go/v5/client" - "github.com/appwrite/sdk-for-go/v5/tablesdb" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/tablesdb" ) client := client.New( diff --git a/examples/1.9.x/server-go/examples/tablesdb/delete.md b/examples/1.9.x/server-go/examples/tablesdb/delete.md index 638759c52..3505d68a2 100644 --- a/examples/1.9.x/server-go/examples/tablesdb/delete.md +++ b/examples/1.9.x/server-go/examples/tablesdb/delete.md @@ -3,8 +3,8 @@ package main import ( "fmt" - "github.com/appwrite/sdk-for-go/v5/client" - "github.com/appwrite/sdk-for-go/v5/tablesdb" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/tablesdb" ) client := client.New( diff --git a/examples/1.9.x/server-go/examples/tablesdb/get-column.md b/examples/1.9.x/server-go/examples/tablesdb/get-column.md index 219b97174..3304779f2 100644 --- a/examples/1.9.x/server-go/examples/tablesdb/get-column.md +++ b/examples/1.9.x/server-go/examples/tablesdb/get-column.md @@ -3,8 +3,8 @@ package main import ( "fmt" - "github.com/appwrite/sdk-for-go/v5/client" - "github.com/appwrite/sdk-for-go/v5/tablesdb" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/tablesdb" ) client := client.New( diff --git a/examples/1.9.x/server-go/examples/tablesdb/get-index.md b/examples/1.9.x/server-go/examples/tablesdb/get-index.md index f65947ff0..3cadf3b90 100644 --- a/examples/1.9.x/server-go/examples/tablesdb/get-index.md +++ b/examples/1.9.x/server-go/examples/tablesdb/get-index.md @@ -3,8 +3,8 @@ package main import ( "fmt" - "github.com/appwrite/sdk-for-go/v5/client" - "github.com/appwrite/sdk-for-go/v5/tablesdb" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/tablesdb" ) client := client.New( diff --git a/examples/1.9.x/server-go/examples/tablesdb/get-replicas.md b/examples/1.9.x/server-go/examples/tablesdb/get-replicas.md new file mode 100644 index 000000000..0c4bdc4a9 --- /dev/null +++ b/examples/1.9.x/server-go/examples/tablesdb/get-replicas.md @@ -0,0 +1,21 @@ +```go +package main + +import ( + "fmt" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/tablesdb" +) + +client := client.New( + client.WithEndpoint("https://.cloud.appwrite.io/v1") + client.WithProject("") + client.WithKey("") +) + +service := tablesdb.New(client) + +response, error := service.GetReplicas( + "", +) +``` diff --git a/examples/1.9.x/server-go/examples/tablesdb/get-row.md b/examples/1.9.x/server-go/examples/tablesdb/get-row.md index cc3c3b8a6..5552c474c 100644 --- a/examples/1.9.x/server-go/examples/tablesdb/get-row.md +++ b/examples/1.9.x/server-go/examples/tablesdb/get-row.md @@ -3,8 +3,8 @@ package main import ( "fmt" - "github.com/appwrite/sdk-for-go/v5/client" - "github.com/appwrite/sdk-for-go/v5/tablesdb" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/tablesdb" ) client := client.New( diff --git a/examples/1.9.x/server-go/examples/tablesdb/get-status.md b/examples/1.9.x/server-go/examples/tablesdb/get-status.md new file mode 100644 index 000000000..d1970cbae --- /dev/null +++ b/examples/1.9.x/server-go/examples/tablesdb/get-status.md @@ -0,0 +1,21 @@ +```go +package main + +import ( + "fmt" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/tablesdb" +) + +client := client.New( + client.WithEndpoint("https://.cloud.appwrite.io/v1") + client.WithProject("") + client.WithKey("") +) + +service := tablesdb.New(client) + +response, error := service.GetStatus( + "", +) +``` diff --git a/examples/1.9.x/server-go/examples/tablesdb/get-table.md b/examples/1.9.x/server-go/examples/tablesdb/get-table.md index 7d34e8bb3..391e32bd8 100644 --- a/examples/1.9.x/server-go/examples/tablesdb/get-table.md +++ b/examples/1.9.x/server-go/examples/tablesdb/get-table.md @@ -3,8 +3,8 @@ package main import ( "fmt" - "github.com/appwrite/sdk-for-go/v5/client" - "github.com/appwrite/sdk-for-go/v5/tablesdb" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/tablesdb" ) client := client.New( diff --git a/examples/1.9.x/server-go/examples/tablesdb/get-transaction.md b/examples/1.9.x/server-go/examples/tablesdb/get-transaction.md index 620b21d9d..f709599c8 100644 --- a/examples/1.9.x/server-go/examples/tablesdb/get-transaction.md +++ b/examples/1.9.x/server-go/examples/tablesdb/get-transaction.md @@ -3,8 +3,8 @@ package main import ( "fmt" - "github.com/appwrite/sdk-for-go/v5/client" - "github.com/appwrite/sdk-for-go/v5/tablesdb" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/tablesdb" ) client := client.New( diff --git a/examples/1.9.x/server-go/examples/tablesdb/get.md b/examples/1.9.x/server-go/examples/tablesdb/get.md index 4df23f724..5a53cb163 100644 --- a/examples/1.9.x/server-go/examples/tablesdb/get.md +++ b/examples/1.9.x/server-go/examples/tablesdb/get.md @@ -3,8 +3,8 @@ package main import ( "fmt" - "github.com/appwrite/sdk-for-go/v5/client" - "github.com/appwrite/sdk-for-go/v5/tablesdb" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/tablesdb" ) client := client.New( diff --git a/examples/1.9.x/server-go/examples/tablesdb/increment-row-column.md b/examples/1.9.x/server-go/examples/tablesdb/increment-row-column.md index 39a443b2f..4377789b8 100644 --- a/examples/1.9.x/server-go/examples/tablesdb/increment-row-column.md +++ b/examples/1.9.x/server-go/examples/tablesdb/increment-row-column.md @@ -3,8 +3,8 @@ package main import ( "fmt" - "github.com/appwrite/sdk-for-go/v5/client" - "github.com/appwrite/sdk-for-go/v5/tablesdb" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/tablesdb" ) client := client.New( diff --git a/examples/1.9.x/server-go/examples/tablesdb/list-columns.md b/examples/1.9.x/server-go/examples/tablesdb/list-columns.md index 4377fe626..f241655fb 100644 --- a/examples/1.9.x/server-go/examples/tablesdb/list-columns.md +++ b/examples/1.9.x/server-go/examples/tablesdb/list-columns.md @@ -3,8 +3,8 @@ package main import ( "fmt" - "github.com/appwrite/sdk-for-go/v5/client" - "github.com/appwrite/sdk-for-go/v5/tablesdb" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/tablesdb" ) client := client.New( diff --git a/examples/1.9.x/server-go/examples/tablesdb/list-indexes.md b/examples/1.9.x/server-go/examples/tablesdb/list-indexes.md index c97a33a57..4ecec4d8a 100644 --- a/examples/1.9.x/server-go/examples/tablesdb/list-indexes.md +++ b/examples/1.9.x/server-go/examples/tablesdb/list-indexes.md @@ -3,8 +3,8 @@ package main import ( "fmt" - "github.com/appwrite/sdk-for-go/v5/client" - "github.com/appwrite/sdk-for-go/v5/tablesdb" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/tablesdb" ) client := client.New( diff --git a/examples/1.9.x/server-go/examples/tablesdb/list-rows.md b/examples/1.9.x/server-go/examples/tablesdb/list-rows.md index f15b10bee..ecad139c2 100644 --- a/examples/1.9.x/server-go/examples/tablesdb/list-rows.md +++ b/examples/1.9.x/server-go/examples/tablesdb/list-rows.md @@ -3,8 +3,8 @@ package main import ( "fmt" - "github.com/appwrite/sdk-for-go/v5/client" - "github.com/appwrite/sdk-for-go/v5/tablesdb" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/tablesdb" ) client := client.New( diff --git a/examples/1.9.x/server-go/examples/tablesdb/list-specifications.md b/examples/1.9.x/server-go/examples/tablesdb/list-specifications.md new file mode 100644 index 000000000..9fe98c40f --- /dev/null +++ b/examples/1.9.x/server-go/examples/tablesdb/list-specifications.md @@ -0,0 +1,19 @@ +```go +package main + +import ( + "fmt" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/tablesdb" +) + +client := client.New( + client.WithEndpoint("https://.cloud.appwrite.io/v1") + client.WithProject("") + client.WithKey("") +) + +service := tablesdb.New(client) + +response, error := service.ListSpecifications()) +``` diff --git a/examples/1.9.x/server-go/examples/tablesdb/list-tables.md b/examples/1.9.x/server-go/examples/tablesdb/list-tables.md index d36e3c2e1..1a863b6e8 100644 --- a/examples/1.9.x/server-go/examples/tablesdb/list-tables.md +++ b/examples/1.9.x/server-go/examples/tablesdb/list-tables.md @@ -3,8 +3,8 @@ package main import ( "fmt" - "github.com/appwrite/sdk-for-go/v5/client" - "github.com/appwrite/sdk-for-go/v5/tablesdb" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/tablesdb" ) client := client.New( diff --git a/examples/1.9.x/server-go/examples/tablesdb/list-transactions.md b/examples/1.9.x/server-go/examples/tablesdb/list-transactions.md index d1be6ee5f..9ab2b9953 100644 --- a/examples/1.9.x/server-go/examples/tablesdb/list-transactions.md +++ b/examples/1.9.x/server-go/examples/tablesdb/list-transactions.md @@ -3,8 +3,8 @@ package main import ( "fmt" - "github.com/appwrite/sdk-for-go/v5/client" - "github.com/appwrite/sdk-for-go/v5/tablesdb" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/tablesdb" ) client := client.New( diff --git a/examples/1.9.x/server-go/examples/tablesdb/list.md b/examples/1.9.x/server-go/examples/tablesdb/list.md index 886b6069f..3a2b4cc0b 100644 --- a/examples/1.9.x/server-go/examples/tablesdb/list.md +++ b/examples/1.9.x/server-go/examples/tablesdb/list.md @@ -3,8 +3,8 @@ package main import ( "fmt" - "github.com/appwrite/sdk-for-go/v5/client" - "github.com/appwrite/sdk-for-go/v5/tablesdb" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/tablesdb" ) client := client.New( diff --git a/examples/1.9.x/server-go/examples/tablesdb/update-big-int-column.md b/examples/1.9.x/server-go/examples/tablesdb/update-big-int-column.md index f96c3ceb4..9fe6a8c92 100644 --- a/examples/1.9.x/server-go/examples/tablesdb/update-big-int-column.md +++ b/examples/1.9.x/server-go/examples/tablesdb/update-big-int-column.md @@ -3,8 +3,8 @@ package main import ( "fmt" - "github.com/appwrite/sdk-for-go/v5/client" - "github.com/appwrite/sdk-for-go/v5/tablesdb" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/tablesdb" ) client := client.New( diff --git a/examples/1.9.x/server-go/examples/tablesdb/update-boolean-column.md b/examples/1.9.x/server-go/examples/tablesdb/update-boolean-column.md index 2d9f712e9..07f93fd58 100644 --- a/examples/1.9.x/server-go/examples/tablesdb/update-boolean-column.md +++ b/examples/1.9.x/server-go/examples/tablesdb/update-boolean-column.md @@ -3,8 +3,8 @@ package main import ( "fmt" - "github.com/appwrite/sdk-for-go/v5/client" - "github.com/appwrite/sdk-for-go/v5/tablesdb" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/tablesdb" ) client := client.New( diff --git a/examples/1.9.x/server-go/examples/tablesdb/update-datetime-column.md b/examples/1.9.x/server-go/examples/tablesdb/update-datetime-column.md index 49547775b..89f530375 100644 --- a/examples/1.9.x/server-go/examples/tablesdb/update-datetime-column.md +++ b/examples/1.9.x/server-go/examples/tablesdb/update-datetime-column.md @@ -3,8 +3,8 @@ package main import ( "fmt" - "github.com/appwrite/sdk-for-go/v5/client" - "github.com/appwrite/sdk-for-go/v5/tablesdb" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/tablesdb" ) client := client.New( diff --git a/examples/1.9.x/server-go/examples/tablesdb/update-email-column.md b/examples/1.9.x/server-go/examples/tablesdb/update-email-column.md index caadab457..74f41f5e6 100644 --- a/examples/1.9.x/server-go/examples/tablesdb/update-email-column.md +++ b/examples/1.9.x/server-go/examples/tablesdb/update-email-column.md @@ -3,8 +3,8 @@ package main import ( "fmt" - "github.com/appwrite/sdk-for-go/v5/client" - "github.com/appwrite/sdk-for-go/v5/tablesdb" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/tablesdb" ) client := client.New( diff --git a/examples/1.9.x/server-go/examples/tablesdb/update-enum-column.md b/examples/1.9.x/server-go/examples/tablesdb/update-enum-column.md index cf3c2f3e7..8a6215741 100644 --- a/examples/1.9.x/server-go/examples/tablesdb/update-enum-column.md +++ b/examples/1.9.x/server-go/examples/tablesdb/update-enum-column.md @@ -3,8 +3,8 @@ package main import ( "fmt" - "github.com/appwrite/sdk-for-go/v5/client" - "github.com/appwrite/sdk-for-go/v5/tablesdb" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/tablesdb" ) client := client.New( diff --git a/examples/1.9.x/server-go/examples/tablesdb/update-float-column.md b/examples/1.9.x/server-go/examples/tablesdb/update-float-column.md index 10bd20b46..fc956581d 100644 --- a/examples/1.9.x/server-go/examples/tablesdb/update-float-column.md +++ b/examples/1.9.x/server-go/examples/tablesdb/update-float-column.md @@ -3,8 +3,8 @@ package main import ( "fmt" - "github.com/appwrite/sdk-for-go/v5/client" - "github.com/appwrite/sdk-for-go/v5/tablesdb" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/tablesdb" ) client := client.New( diff --git a/examples/1.9.x/server-go/examples/tablesdb/update-integer-column.md b/examples/1.9.x/server-go/examples/tablesdb/update-integer-column.md index ab19734c5..d5b5ac10f 100644 --- a/examples/1.9.x/server-go/examples/tablesdb/update-integer-column.md +++ b/examples/1.9.x/server-go/examples/tablesdb/update-integer-column.md @@ -3,8 +3,8 @@ package main import ( "fmt" - "github.com/appwrite/sdk-for-go/v5/client" - "github.com/appwrite/sdk-for-go/v5/tablesdb" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/tablesdb" ) client := client.New( diff --git a/examples/1.9.x/server-go/examples/tablesdb/update-ip-column.md b/examples/1.9.x/server-go/examples/tablesdb/update-ip-column.md index b4ecdd873..0f3252764 100644 --- a/examples/1.9.x/server-go/examples/tablesdb/update-ip-column.md +++ b/examples/1.9.x/server-go/examples/tablesdb/update-ip-column.md @@ -3,8 +3,8 @@ package main import ( "fmt" - "github.com/appwrite/sdk-for-go/v5/client" - "github.com/appwrite/sdk-for-go/v5/tablesdb" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/tablesdb" ) client := client.New( diff --git a/examples/1.9.x/server-go/examples/tablesdb/update-line-column.md b/examples/1.9.x/server-go/examples/tablesdb/update-line-column.md index c46e48b8c..607587d35 100644 --- a/examples/1.9.x/server-go/examples/tablesdb/update-line-column.md +++ b/examples/1.9.x/server-go/examples/tablesdb/update-line-column.md @@ -3,8 +3,8 @@ package main import ( "fmt" - "github.com/appwrite/sdk-for-go/v5/client" - "github.com/appwrite/sdk-for-go/v5/tablesdb" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/tablesdb" ) client := client.New( diff --git a/examples/1.9.x/server-go/examples/tablesdb/update-longtext-column.md b/examples/1.9.x/server-go/examples/tablesdb/update-longtext-column.md index 01b1bf93a..29f71ca11 100644 --- a/examples/1.9.x/server-go/examples/tablesdb/update-longtext-column.md +++ b/examples/1.9.x/server-go/examples/tablesdb/update-longtext-column.md @@ -3,8 +3,8 @@ package main import ( "fmt" - "github.com/appwrite/sdk-for-go/v5/client" - "github.com/appwrite/sdk-for-go/v5/tablesdb" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/tablesdb" ) client := client.New( diff --git a/examples/1.9.x/server-go/examples/tablesdb/update-mediumtext-column.md b/examples/1.9.x/server-go/examples/tablesdb/update-mediumtext-column.md index 6e8f45740..288f512e9 100644 --- a/examples/1.9.x/server-go/examples/tablesdb/update-mediumtext-column.md +++ b/examples/1.9.x/server-go/examples/tablesdb/update-mediumtext-column.md @@ -3,8 +3,8 @@ package main import ( "fmt" - "github.com/appwrite/sdk-for-go/v5/client" - "github.com/appwrite/sdk-for-go/v5/tablesdb" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/tablesdb" ) client := client.New( diff --git a/examples/1.9.x/server-go/examples/tablesdb/update-point-column.md b/examples/1.9.x/server-go/examples/tablesdb/update-point-column.md index 29abcebf0..e7d8038cb 100644 --- a/examples/1.9.x/server-go/examples/tablesdb/update-point-column.md +++ b/examples/1.9.x/server-go/examples/tablesdb/update-point-column.md @@ -3,8 +3,8 @@ package main import ( "fmt" - "github.com/appwrite/sdk-for-go/v5/client" - "github.com/appwrite/sdk-for-go/v5/tablesdb" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/tablesdb" ) client := client.New( diff --git a/examples/1.9.x/server-go/examples/tablesdb/update-polygon-column.md b/examples/1.9.x/server-go/examples/tablesdb/update-polygon-column.md index da3f1aed5..9dbe3e784 100644 --- a/examples/1.9.x/server-go/examples/tablesdb/update-polygon-column.md +++ b/examples/1.9.x/server-go/examples/tablesdb/update-polygon-column.md @@ -3,8 +3,8 @@ package main import ( "fmt" - "github.com/appwrite/sdk-for-go/v5/client" - "github.com/appwrite/sdk-for-go/v5/tablesdb" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/tablesdb" ) client := client.New( diff --git a/examples/1.9.x/server-go/examples/tablesdb/update-relationship-column.md b/examples/1.9.x/server-go/examples/tablesdb/update-relationship-column.md index 226e6c834..5fe3bd655 100644 --- a/examples/1.9.x/server-go/examples/tablesdb/update-relationship-column.md +++ b/examples/1.9.x/server-go/examples/tablesdb/update-relationship-column.md @@ -3,8 +3,8 @@ package main import ( "fmt" - "github.com/appwrite/sdk-for-go/v5/client" - "github.com/appwrite/sdk-for-go/v5/tablesdb" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/tablesdb" ) client := client.New( diff --git a/examples/1.9.x/server-go/examples/tablesdb/update-row.md b/examples/1.9.x/server-go/examples/tablesdb/update-row.md index 9bad72b63..819f1618e 100644 --- a/examples/1.9.x/server-go/examples/tablesdb/update-row.md +++ b/examples/1.9.x/server-go/examples/tablesdb/update-row.md @@ -3,8 +3,8 @@ package main import ( "fmt" - "github.com/appwrite/sdk-for-go/v5/client" - "github.com/appwrite/sdk-for-go/v5/tablesdb" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/tablesdb" ) client := client.New( diff --git a/examples/1.9.x/server-go/examples/tablesdb/update-rows.md b/examples/1.9.x/server-go/examples/tablesdb/update-rows.md index 2ac9bddb0..9bdedb546 100644 --- a/examples/1.9.x/server-go/examples/tablesdb/update-rows.md +++ b/examples/1.9.x/server-go/examples/tablesdb/update-rows.md @@ -3,8 +3,8 @@ package main import ( "fmt" - "github.com/appwrite/sdk-for-go/v5/client" - "github.com/appwrite/sdk-for-go/v5/tablesdb" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/tablesdb" ) client := client.New( diff --git a/examples/1.9.x/server-go/examples/tablesdb/update-string-column.md b/examples/1.9.x/server-go/examples/tablesdb/update-string-column.md index 1293b40ae..0769e1ed7 100644 --- a/examples/1.9.x/server-go/examples/tablesdb/update-string-column.md +++ b/examples/1.9.x/server-go/examples/tablesdb/update-string-column.md @@ -3,8 +3,8 @@ package main import ( "fmt" - "github.com/appwrite/sdk-for-go/v5/client" - "github.com/appwrite/sdk-for-go/v5/tablesdb" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/tablesdb" ) client := client.New( diff --git a/examples/1.9.x/server-go/examples/tablesdb/update-table.md b/examples/1.9.x/server-go/examples/tablesdb/update-table.md index 081291815..82d72569a 100644 --- a/examples/1.9.x/server-go/examples/tablesdb/update-table.md +++ b/examples/1.9.x/server-go/examples/tablesdb/update-table.md @@ -3,8 +3,8 @@ package main import ( "fmt" - "github.com/appwrite/sdk-for-go/v5/client" - "github.com/appwrite/sdk-for-go/v5/tablesdb" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/tablesdb" ) client := client.New( diff --git a/examples/1.9.x/server-go/examples/tablesdb/update-text-column.md b/examples/1.9.x/server-go/examples/tablesdb/update-text-column.md index fca652ecf..7cb32546e 100644 --- a/examples/1.9.x/server-go/examples/tablesdb/update-text-column.md +++ b/examples/1.9.x/server-go/examples/tablesdb/update-text-column.md @@ -3,8 +3,8 @@ package main import ( "fmt" - "github.com/appwrite/sdk-for-go/v5/client" - "github.com/appwrite/sdk-for-go/v5/tablesdb" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/tablesdb" ) client := client.New( diff --git a/examples/1.9.x/server-go/examples/tablesdb/update-transaction.md b/examples/1.9.x/server-go/examples/tablesdb/update-transaction.md index 3d815df37..88f61cc18 100644 --- a/examples/1.9.x/server-go/examples/tablesdb/update-transaction.md +++ b/examples/1.9.x/server-go/examples/tablesdb/update-transaction.md @@ -3,8 +3,8 @@ package main import ( "fmt" - "github.com/appwrite/sdk-for-go/v5/client" - "github.com/appwrite/sdk-for-go/v5/tablesdb" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/tablesdb" ) client := client.New( diff --git a/examples/1.9.x/server-go/examples/tablesdb/update-url-column.md b/examples/1.9.x/server-go/examples/tablesdb/update-url-column.md index 587c72a86..ffd8e1ff4 100644 --- a/examples/1.9.x/server-go/examples/tablesdb/update-url-column.md +++ b/examples/1.9.x/server-go/examples/tablesdb/update-url-column.md @@ -3,8 +3,8 @@ package main import ( "fmt" - "github.com/appwrite/sdk-for-go/v5/client" - "github.com/appwrite/sdk-for-go/v5/tablesdb" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/tablesdb" ) client := client.New( diff --git a/examples/1.9.x/server-go/examples/tablesdb/update-varchar-column.md b/examples/1.9.x/server-go/examples/tablesdb/update-varchar-column.md index 5ef89c2a2..0dd09f764 100644 --- a/examples/1.9.x/server-go/examples/tablesdb/update-varchar-column.md +++ b/examples/1.9.x/server-go/examples/tablesdb/update-varchar-column.md @@ -3,8 +3,8 @@ package main import ( "fmt" - "github.com/appwrite/sdk-for-go/v5/client" - "github.com/appwrite/sdk-for-go/v5/tablesdb" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/tablesdb" ) client := client.New( diff --git a/examples/1.9.x/server-go/examples/tablesdb/update.md b/examples/1.9.x/server-go/examples/tablesdb/update.md index d6b36d9c6..249dffbf9 100644 --- a/examples/1.9.x/server-go/examples/tablesdb/update.md +++ b/examples/1.9.x/server-go/examples/tablesdb/update.md @@ -3,8 +3,8 @@ package main import ( "fmt" - "github.com/appwrite/sdk-for-go/v5/client" - "github.com/appwrite/sdk-for-go/v5/tablesdb" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/tablesdb" ) client := client.New( @@ -19,5 +19,6 @@ response, error := service.Update( "", tablesdb.WithUpdateName(""), tablesdb.WithUpdateEnabled(false), + tablesdb.WithUpdateReplicas(0), ) ``` diff --git a/examples/1.9.x/server-go/examples/tablesdb/upsert-row.md b/examples/1.9.x/server-go/examples/tablesdb/upsert-row.md index af6f4e2df..58dbecb7c 100644 --- a/examples/1.9.x/server-go/examples/tablesdb/upsert-row.md +++ b/examples/1.9.x/server-go/examples/tablesdb/upsert-row.md @@ -3,8 +3,8 @@ package main import ( "fmt" - "github.com/appwrite/sdk-for-go/v5/client" - "github.com/appwrite/sdk-for-go/v5/tablesdb" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/tablesdb" ) client := client.New( diff --git a/examples/1.9.x/server-go/examples/tablesdb/upsert-rows.md b/examples/1.9.x/server-go/examples/tablesdb/upsert-rows.md index 52cb7d4bb..19276d240 100644 --- a/examples/1.9.x/server-go/examples/tablesdb/upsert-rows.md +++ b/examples/1.9.x/server-go/examples/tablesdb/upsert-rows.md @@ -3,8 +3,8 @@ package main import ( "fmt" - "github.com/appwrite/sdk-for-go/v5/client" - "github.com/appwrite/sdk-for-go/v5/tablesdb" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/tablesdb" ) client := client.New( diff --git a/examples/1.9.x/server-go/examples/teams/create-membership.md b/examples/1.9.x/server-go/examples/teams/create-membership.md index c6ac8928f..8cd16c8c8 100644 --- a/examples/1.9.x/server-go/examples/teams/create-membership.md +++ b/examples/1.9.x/server-go/examples/teams/create-membership.md @@ -3,8 +3,8 @@ package main import ( "fmt" - "github.com/appwrite/sdk-for-go/v5/client" - "github.com/appwrite/sdk-for-go/v5/teams" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/teams" ) client := client.New( diff --git a/examples/1.9.x/server-go/examples/teams/create.md b/examples/1.9.x/server-go/examples/teams/create.md index d24a5ed3f..50c0ffd10 100644 --- a/examples/1.9.x/server-go/examples/teams/create.md +++ b/examples/1.9.x/server-go/examples/teams/create.md @@ -3,8 +3,8 @@ package main import ( "fmt" - "github.com/appwrite/sdk-for-go/v5/client" - "github.com/appwrite/sdk-for-go/v5/teams" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/teams" ) client := client.New( diff --git a/examples/1.9.x/server-go/examples/teams/delete-membership.md b/examples/1.9.x/server-go/examples/teams/delete-membership.md index 33fd607e5..1e0ee3a07 100644 --- a/examples/1.9.x/server-go/examples/teams/delete-membership.md +++ b/examples/1.9.x/server-go/examples/teams/delete-membership.md @@ -3,8 +3,8 @@ package main import ( "fmt" - "github.com/appwrite/sdk-for-go/v5/client" - "github.com/appwrite/sdk-for-go/v5/teams" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/teams" ) client := client.New( diff --git a/examples/1.9.x/server-go/examples/teams/delete.md b/examples/1.9.x/server-go/examples/teams/delete.md index bd7e7cefc..159e14d9c 100644 --- a/examples/1.9.x/server-go/examples/teams/delete.md +++ b/examples/1.9.x/server-go/examples/teams/delete.md @@ -3,8 +3,8 @@ package main import ( "fmt" - "github.com/appwrite/sdk-for-go/v5/client" - "github.com/appwrite/sdk-for-go/v5/teams" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/teams" ) client := client.New( diff --git a/examples/1.9.x/server-go/examples/teams/get-membership.md b/examples/1.9.x/server-go/examples/teams/get-membership.md index 0e58ec265..385318598 100644 --- a/examples/1.9.x/server-go/examples/teams/get-membership.md +++ b/examples/1.9.x/server-go/examples/teams/get-membership.md @@ -3,8 +3,8 @@ package main import ( "fmt" - "github.com/appwrite/sdk-for-go/v5/client" - "github.com/appwrite/sdk-for-go/v5/teams" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/teams" ) client := client.New( diff --git a/examples/1.9.x/server-go/examples/teams/get-prefs.md b/examples/1.9.x/server-go/examples/teams/get-prefs.md index 07a694feb..a8f033676 100644 --- a/examples/1.9.x/server-go/examples/teams/get-prefs.md +++ b/examples/1.9.x/server-go/examples/teams/get-prefs.md @@ -3,8 +3,8 @@ package main import ( "fmt" - "github.com/appwrite/sdk-for-go/v5/client" - "github.com/appwrite/sdk-for-go/v5/teams" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/teams" ) client := client.New( diff --git a/examples/1.9.x/server-go/examples/teams/get.md b/examples/1.9.x/server-go/examples/teams/get.md index aad11cc0d..d04c55ff0 100644 --- a/examples/1.9.x/server-go/examples/teams/get.md +++ b/examples/1.9.x/server-go/examples/teams/get.md @@ -3,8 +3,8 @@ package main import ( "fmt" - "github.com/appwrite/sdk-for-go/v5/client" - "github.com/appwrite/sdk-for-go/v5/teams" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/teams" ) client := client.New( diff --git a/examples/1.9.x/server-go/examples/teams/list-memberships.md b/examples/1.9.x/server-go/examples/teams/list-memberships.md index a5fce4375..8d0758921 100644 --- a/examples/1.9.x/server-go/examples/teams/list-memberships.md +++ b/examples/1.9.x/server-go/examples/teams/list-memberships.md @@ -3,8 +3,8 @@ package main import ( "fmt" - "github.com/appwrite/sdk-for-go/v5/client" - "github.com/appwrite/sdk-for-go/v5/teams" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/teams" ) client := client.New( diff --git a/examples/1.9.x/server-go/examples/teams/list.md b/examples/1.9.x/server-go/examples/teams/list.md index 394f7f76f..2524bee57 100644 --- a/examples/1.9.x/server-go/examples/teams/list.md +++ b/examples/1.9.x/server-go/examples/teams/list.md @@ -3,8 +3,8 @@ package main import ( "fmt" - "github.com/appwrite/sdk-for-go/v5/client" - "github.com/appwrite/sdk-for-go/v5/teams" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/teams" ) client := client.New( diff --git a/examples/1.9.x/server-go/examples/teams/update-membership-status.md b/examples/1.9.x/server-go/examples/teams/update-membership-status.md index d39e54f2c..50a84a2b8 100644 --- a/examples/1.9.x/server-go/examples/teams/update-membership-status.md +++ b/examples/1.9.x/server-go/examples/teams/update-membership-status.md @@ -3,8 +3,8 @@ package main import ( "fmt" - "github.com/appwrite/sdk-for-go/v5/client" - "github.com/appwrite/sdk-for-go/v5/teams" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/teams" ) client := client.New( diff --git a/examples/1.9.x/server-go/examples/teams/update-membership.md b/examples/1.9.x/server-go/examples/teams/update-membership.md index 71bd6b80d..2202c62ae 100644 --- a/examples/1.9.x/server-go/examples/teams/update-membership.md +++ b/examples/1.9.x/server-go/examples/teams/update-membership.md @@ -3,8 +3,8 @@ package main import ( "fmt" - "github.com/appwrite/sdk-for-go/v5/client" - "github.com/appwrite/sdk-for-go/v5/teams" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/teams" ) client := client.New( diff --git a/examples/1.9.x/server-go/examples/teams/update-name.md b/examples/1.9.x/server-go/examples/teams/update-name.md index d010097f9..5cf6ab1da 100644 --- a/examples/1.9.x/server-go/examples/teams/update-name.md +++ b/examples/1.9.x/server-go/examples/teams/update-name.md @@ -3,8 +3,8 @@ package main import ( "fmt" - "github.com/appwrite/sdk-for-go/v5/client" - "github.com/appwrite/sdk-for-go/v5/teams" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/teams" ) client := client.New( diff --git a/examples/1.9.x/server-go/examples/teams/update-prefs.md b/examples/1.9.x/server-go/examples/teams/update-prefs.md index da3d47a23..8a851a041 100644 --- a/examples/1.9.x/server-go/examples/teams/update-prefs.md +++ b/examples/1.9.x/server-go/examples/teams/update-prefs.md @@ -3,8 +3,8 @@ package main import ( "fmt" - "github.com/appwrite/sdk-for-go/v5/client" - "github.com/appwrite/sdk-for-go/v5/teams" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/teams" ) client := client.New( diff --git a/examples/1.9.x/server-go/examples/tokens/create-file-token.md b/examples/1.9.x/server-go/examples/tokens/create-file-token.md index 7df82dd73..0a64209d2 100644 --- a/examples/1.9.x/server-go/examples/tokens/create-file-token.md +++ b/examples/1.9.x/server-go/examples/tokens/create-file-token.md @@ -3,8 +3,8 @@ package main import ( "fmt" - "github.com/appwrite/sdk-for-go/v5/client" - "github.com/appwrite/sdk-for-go/v5/tokens" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/tokens" ) client := client.New( diff --git a/examples/1.9.x/server-go/examples/tokens/delete.md b/examples/1.9.x/server-go/examples/tokens/delete.md index 363f22a0d..b84e41388 100644 --- a/examples/1.9.x/server-go/examples/tokens/delete.md +++ b/examples/1.9.x/server-go/examples/tokens/delete.md @@ -3,8 +3,8 @@ package main import ( "fmt" - "github.com/appwrite/sdk-for-go/v5/client" - "github.com/appwrite/sdk-for-go/v5/tokens" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/tokens" ) client := client.New( diff --git a/examples/1.9.x/server-go/examples/tokens/get.md b/examples/1.9.x/server-go/examples/tokens/get.md index 245099a4f..3cfb86491 100644 --- a/examples/1.9.x/server-go/examples/tokens/get.md +++ b/examples/1.9.x/server-go/examples/tokens/get.md @@ -3,8 +3,8 @@ package main import ( "fmt" - "github.com/appwrite/sdk-for-go/v5/client" - "github.com/appwrite/sdk-for-go/v5/tokens" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/tokens" ) client := client.New( diff --git a/examples/1.9.x/server-go/examples/tokens/list.md b/examples/1.9.x/server-go/examples/tokens/list.md index 88f5b9b14..1ba700684 100644 --- a/examples/1.9.x/server-go/examples/tokens/list.md +++ b/examples/1.9.x/server-go/examples/tokens/list.md @@ -3,8 +3,8 @@ package main import ( "fmt" - "github.com/appwrite/sdk-for-go/v5/client" - "github.com/appwrite/sdk-for-go/v5/tokens" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/tokens" ) client := client.New( diff --git a/examples/1.9.x/server-go/examples/tokens/update.md b/examples/1.9.x/server-go/examples/tokens/update.md index 5614aaadd..f9cc4e224 100644 --- a/examples/1.9.x/server-go/examples/tokens/update.md +++ b/examples/1.9.x/server-go/examples/tokens/update.md @@ -3,8 +3,8 @@ package main import ( "fmt" - "github.com/appwrite/sdk-for-go/v5/client" - "github.com/appwrite/sdk-for-go/v5/tokens" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/tokens" ) client := client.New( diff --git a/examples/1.9.x/server-go/examples/usage/list-events.md b/examples/1.9.x/server-go/examples/usage/list-events.md index 0e1cbd0dc..0ec608238 100644 --- a/examples/1.9.x/server-go/examples/usage/list-events.md +++ b/examples/1.9.x/server-go/examples/usage/list-events.md @@ -17,8 +17,7 @@ service := usage.New(client) response, error := service.ListEvents( []string{}, - usage.WithListEventsResource(""), - usage.WithListEventsResourceId(""), + usage.WithListEventsQueries([]string{}), usage.WithListEventsInterval("1m"), usage.WithListEventsDimensions([]string{}), usage.WithListEventsStartAt("2020-10-15T06:38:00.000+00:00"), diff --git a/examples/1.9.x/server-go/examples/usage/list-gauges.md b/examples/1.9.x/server-go/examples/usage/list-gauges.md index 5d617c604..d77e59838 100644 --- a/examples/1.9.x/server-go/examples/usage/list-gauges.md +++ b/examples/1.9.x/server-go/examples/usage/list-gauges.md @@ -17,8 +17,7 @@ service := usage.New(client) response, error := service.ListGauges( []string{}, - usage.WithListGaugesResourceId(""), - usage.WithListGaugesTeamId(""), + usage.WithListGaugesQueries([]string{}), usage.WithListGaugesInterval("1m"), usage.WithListGaugesDimensions([]string{}), usage.WithListGaugesStartAt("2020-10-15T06:38:00.000+00:00"), diff --git a/examples/1.9.x/server-go/examples/users/create-argon-2-user.md b/examples/1.9.x/server-go/examples/users/create-argon-2-user.md index b6b54872a..dfff0cde3 100644 --- a/examples/1.9.x/server-go/examples/users/create-argon-2-user.md +++ b/examples/1.9.x/server-go/examples/users/create-argon-2-user.md @@ -3,8 +3,8 @@ package main import ( "fmt" - "github.com/appwrite/sdk-for-go/v5/client" - "github.com/appwrite/sdk-for-go/v5/users" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/users" ) client := client.New( diff --git a/examples/1.9.x/server-go/examples/users/create-bcrypt-user.md b/examples/1.9.x/server-go/examples/users/create-bcrypt-user.md index 218246098..5eccdb012 100644 --- a/examples/1.9.x/server-go/examples/users/create-bcrypt-user.md +++ b/examples/1.9.x/server-go/examples/users/create-bcrypt-user.md @@ -3,8 +3,8 @@ package main import ( "fmt" - "github.com/appwrite/sdk-for-go/v5/client" - "github.com/appwrite/sdk-for-go/v5/users" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/users" ) client := client.New( diff --git a/examples/1.9.x/server-go/examples/users/create-jwt.md b/examples/1.9.x/server-go/examples/users/create-jwt.md index 4b702bdc0..eb82dc1b3 100644 --- a/examples/1.9.x/server-go/examples/users/create-jwt.md +++ b/examples/1.9.x/server-go/examples/users/create-jwt.md @@ -3,8 +3,8 @@ package main import ( "fmt" - "github.com/appwrite/sdk-for-go/v5/client" - "github.com/appwrite/sdk-for-go/v5/users" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/users" ) client := client.New( diff --git a/examples/1.9.x/server-go/examples/users/create-md-5-user.md b/examples/1.9.x/server-go/examples/users/create-md-5-user.md index b0bd748c4..f766ad8b7 100644 --- a/examples/1.9.x/server-go/examples/users/create-md-5-user.md +++ b/examples/1.9.x/server-go/examples/users/create-md-5-user.md @@ -3,8 +3,8 @@ package main import ( "fmt" - "github.com/appwrite/sdk-for-go/v5/client" - "github.com/appwrite/sdk-for-go/v5/users" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/users" ) client := client.New( diff --git a/examples/1.9.x/server-go/examples/users/create-mfa-recovery-codes.md b/examples/1.9.x/server-go/examples/users/create-mfa-recovery-codes.md index 47090f89d..1ecc8aaaf 100644 --- a/examples/1.9.x/server-go/examples/users/create-mfa-recovery-codes.md +++ b/examples/1.9.x/server-go/examples/users/create-mfa-recovery-codes.md @@ -3,8 +3,8 @@ package main import ( "fmt" - "github.com/appwrite/sdk-for-go/v5/client" - "github.com/appwrite/sdk-for-go/v5/users" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/users" ) client := client.New( diff --git a/examples/1.9.x/server-go/examples/users/create-ph-pass-user.md b/examples/1.9.x/server-go/examples/users/create-ph-pass-user.md index 58cf9a3c7..9e6413f7b 100644 --- a/examples/1.9.x/server-go/examples/users/create-ph-pass-user.md +++ b/examples/1.9.x/server-go/examples/users/create-ph-pass-user.md @@ -3,8 +3,8 @@ package main import ( "fmt" - "github.com/appwrite/sdk-for-go/v5/client" - "github.com/appwrite/sdk-for-go/v5/users" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/users" ) client := client.New( diff --git a/examples/1.9.x/server-go/examples/users/create-scrypt-modified-user.md b/examples/1.9.x/server-go/examples/users/create-scrypt-modified-user.md index 227ce8792..a3a834fc7 100644 --- a/examples/1.9.x/server-go/examples/users/create-scrypt-modified-user.md +++ b/examples/1.9.x/server-go/examples/users/create-scrypt-modified-user.md @@ -3,8 +3,8 @@ package main import ( "fmt" - "github.com/appwrite/sdk-for-go/v5/client" - "github.com/appwrite/sdk-for-go/v5/users" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/users" ) client := client.New( diff --git a/examples/1.9.x/server-go/examples/users/create-scrypt-user.md b/examples/1.9.x/server-go/examples/users/create-scrypt-user.md index 6db686966..1786f3995 100644 --- a/examples/1.9.x/server-go/examples/users/create-scrypt-user.md +++ b/examples/1.9.x/server-go/examples/users/create-scrypt-user.md @@ -3,8 +3,8 @@ package main import ( "fmt" - "github.com/appwrite/sdk-for-go/v5/client" - "github.com/appwrite/sdk-for-go/v5/users" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/users" ) client := client.New( diff --git a/examples/1.9.x/server-go/examples/users/create-session.md b/examples/1.9.x/server-go/examples/users/create-session.md index 207805957..abd9c2eb4 100644 --- a/examples/1.9.x/server-go/examples/users/create-session.md +++ b/examples/1.9.x/server-go/examples/users/create-session.md @@ -3,8 +3,8 @@ package main import ( "fmt" - "github.com/appwrite/sdk-for-go/v5/client" - "github.com/appwrite/sdk-for-go/v5/users" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/users" ) client := client.New( diff --git a/examples/1.9.x/server-go/examples/users/create-sha-user.md b/examples/1.9.x/server-go/examples/users/create-sha-user.md index 8ee60369b..27dbc944c 100644 --- a/examples/1.9.x/server-go/examples/users/create-sha-user.md +++ b/examples/1.9.x/server-go/examples/users/create-sha-user.md @@ -3,8 +3,8 @@ package main import ( "fmt" - "github.com/appwrite/sdk-for-go/v5/client" - "github.com/appwrite/sdk-for-go/v5/users" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/users" ) client := client.New( diff --git a/examples/1.9.x/server-go/examples/users/create-target.md b/examples/1.9.x/server-go/examples/users/create-target.md index 1dc3e2bc5..8f681f4d1 100644 --- a/examples/1.9.x/server-go/examples/users/create-target.md +++ b/examples/1.9.x/server-go/examples/users/create-target.md @@ -3,8 +3,8 @@ package main import ( "fmt" - "github.com/appwrite/sdk-for-go/v5/client" - "github.com/appwrite/sdk-for-go/v5/users" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/users" ) client := client.New( diff --git a/examples/1.9.x/server-go/examples/users/create-token.md b/examples/1.9.x/server-go/examples/users/create-token.md index 9f404bc71..bc7b2996a 100644 --- a/examples/1.9.x/server-go/examples/users/create-token.md +++ b/examples/1.9.x/server-go/examples/users/create-token.md @@ -3,8 +3,8 @@ package main import ( "fmt" - "github.com/appwrite/sdk-for-go/v5/client" - "github.com/appwrite/sdk-for-go/v5/users" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/users" ) client := client.New( diff --git a/examples/1.9.x/server-go/examples/users/create.md b/examples/1.9.x/server-go/examples/users/create.md index 548440952..f47246357 100644 --- a/examples/1.9.x/server-go/examples/users/create.md +++ b/examples/1.9.x/server-go/examples/users/create.md @@ -3,8 +3,8 @@ package main import ( "fmt" - "github.com/appwrite/sdk-for-go/v5/client" - "github.com/appwrite/sdk-for-go/v5/users" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/users" ) client := client.New( diff --git a/examples/1.9.x/server-go/examples/users/delete-identity.md b/examples/1.9.x/server-go/examples/users/delete-identity.md index 691433d3f..d42082ddf 100644 --- a/examples/1.9.x/server-go/examples/users/delete-identity.md +++ b/examples/1.9.x/server-go/examples/users/delete-identity.md @@ -3,8 +3,8 @@ package main import ( "fmt" - "github.com/appwrite/sdk-for-go/v5/client" - "github.com/appwrite/sdk-for-go/v5/users" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/users" ) client := client.New( diff --git a/examples/1.9.x/server-go/examples/users/delete-mfa-authenticator.md b/examples/1.9.x/server-go/examples/users/delete-mfa-authenticator.md index da4cfd869..13c3036bd 100644 --- a/examples/1.9.x/server-go/examples/users/delete-mfa-authenticator.md +++ b/examples/1.9.x/server-go/examples/users/delete-mfa-authenticator.md @@ -3,8 +3,8 @@ package main import ( "fmt" - "github.com/appwrite/sdk-for-go/v5/client" - "github.com/appwrite/sdk-for-go/v5/users" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/users" ) client := client.New( diff --git a/examples/1.9.x/server-go/examples/users/delete-session.md b/examples/1.9.x/server-go/examples/users/delete-session.md index 388c9816c..513e09793 100644 --- a/examples/1.9.x/server-go/examples/users/delete-session.md +++ b/examples/1.9.x/server-go/examples/users/delete-session.md @@ -3,8 +3,8 @@ package main import ( "fmt" - "github.com/appwrite/sdk-for-go/v5/client" - "github.com/appwrite/sdk-for-go/v5/users" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/users" ) client := client.New( diff --git a/examples/1.9.x/server-go/examples/users/delete-sessions.md b/examples/1.9.x/server-go/examples/users/delete-sessions.md index e2c473dbe..96125527b 100644 --- a/examples/1.9.x/server-go/examples/users/delete-sessions.md +++ b/examples/1.9.x/server-go/examples/users/delete-sessions.md @@ -3,8 +3,8 @@ package main import ( "fmt" - "github.com/appwrite/sdk-for-go/v5/client" - "github.com/appwrite/sdk-for-go/v5/users" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/users" ) client := client.New( diff --git a/examples/1.9.x/server-go/examples/users/delete-target.md b/examples/1.9.x/server-go/examples/users/delete-target.md index 5deef7220..f815306ba 100644 --- a/examples/1.9.x/server-go/examples/users/delete-target.md +++ b/examples/1.9.x/server-go/examples/users/delete-target.md @@ -3,8 +3,8 @@ package main import ( "fmt" - "github.com/appwrite/sdk-for-go/v5/client" - "github.com/appwrite/sdk-for-go/v5/users" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/users" ) client := client.New( diff --git a/examples/1.9.x/server-go/examples/users/delete.md b/examples/1.9.x/server-go/examples/users/delete.md index c2ee373d9..7b3a58754 100644 --- a/examples/1.9.x/server-go/examples/users/delete.md +++ b/examples/1.9.x/server-go/examples/users/delete.md @@ -3,8 +3,8 @@ package main import ( "fmt" - "github.com/appwrite/sdk-for-go/v5/client" - "github.com/appwrite/sdk-for-go/v5/users" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/users" ) client := client.New( diff --git a/examples/1.9.x/server-go/examples/users/get-mfa-recovery-codes.md b/examples/1.9.x/server-go/examples/users/get-mfa-recovery-codes.md index 5ee2645fa..8aba611ea 100644 --- a/examples/1.9.x/server-go/examples/users/get-mfa-recovery-codes.md +++ b/examples/1.9.x/server-go/examples/users/get-mfa-recovery-codes.md @@ -3,8 +3,8 @@ package main import ( "fmt" - "github.com/appwrite/sdk-for-go/v5/client" - "github.com/appwrite/sdk-for-go/v5/users" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/users" ) client := client.New( diff --git a/examples/1.9.x/server-go/examples/users/get-prefs.md b/examples/1.9.x/server-go/examples/users/get-prefs.md index b0836ee87..7b5ffcb7c 100644 --- a/examples/1.9.x/server-go/examples/users/get-prefs.md +++ b/examples/1.9.x/server-go/examples/users/get-prefs.md @@ -3,8 +3,8 @@ package main import ( "fmt" - "github.com/appwrite/sdk-for-go/v5/client" - "github.com/appwrite/sdk-for-go/v5/users" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/users" ) client := client.New( diff --git a/examples/1.9.x/server-go/examples/users/get-target.md b/examples/1.9.x/server-go/examples/users/get-target.md index a364d0a3c..ee427d63e 100644 --- a/examples/1.9.x/server-go/examples/users/get-target.md +++ b/examples/1.9.x/server-go/examples/users/get-target.md @@ -3,8 +3,8 @@ package main import ( "fmt" - "github.com/appwrite/sdk-for-go/v5/client" - "github.com/appwrite/sdk-for-go/v5/users" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/users" ) client := client.New( diff --git a/examples/1.9.x/server-go/examples/users/get.md b/examples/1.9.x/server-go/examples/users/get.md index 8a9db7e4a..20a92f209 100644 --- a/examples/1.9.x/server-go/examples/users/get.md +++ b/examples/1.9.x/server-go/examples/users/get.md @@ -3,8 +3,8 @@ package main import ( "fmt" - "github.com/appwrite/sdk-for-go/v5/client" - "github.com/appwrite/sdk-for-go/v5/users" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/users" ) client := client.New( diff --git a/examples/1.9.x/server-go/examples/users/list-identities.md b/examples/1.9.x/server-go/examples/users/list-identities.md index 39c2f9a4b..598f2cbdb 100644 --- a/examples/1.9.x/server-go/examples/users/list-identities.md +++ b/examples/1.9.x/server-go/examples/users/list-identities.md @@ -3,8 +3,8 @@ package main import ( "fmt" - "github.com/appwrite/sdk-for-go/v5/client" - "github.com/appwrite/sdk-for-go/v5/users" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/users" ) client := client.New( diff --git a/examples/1.9.x/server-go/examples/users/list-logs.md b/examples/1.9.x/server-go/examples/users/list-logs.md index f3f39a8f4..dea863375 100644 --- a/examples/1.9.x/server-go/examples/users/list-logs.md +++ b/examples/1.9.x/server-go/examples/users/list-logs.md @@ -3,8 +3,8 @@ package main import ( "fmt" - "github.com/appwrite/sdk-for-go/v5/client" - "github.com/appwrite/sdk-for-go/v5/users" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/users" ) client := client.New( diff --git a/examples/1.9.x/server-go/examples/users/list-memberships.md b/examples/1.9.x/server-go/examples/users/list-memberships.md index f3d313499..53e494d51 100644 --- a/examples/1.9.x/server-go/examples/users/list-memberships.md +++ b/examples/1.9.x/server-go/examples/users/list-memberships.md @@ -3,8 +3,8 @@ package main import ( "fmt" - "github.com/appwrite/sdk-for-go/v5/client" - "github.com/appwrite/sdk-for-go/v5/users" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/users" ) client := client.New( diff --git a/examples/1.9.x/server-go/examples/users/list-mfa-factors.md b/examples/1.9.x/server-go/examples/users/list-mfa-factors.md index bd6e8bbd7..1b435e860 100644 --- a/examples/1.9.x/server-go/examples/users/list-mfa-factors.md +++ b/examples/1.9.x/server-go/examples/users/list-mfa-factors.md @@ -3,8 +3,8 @@ package main import ( "fmt" - "github.com/appwrite/sdk-for-go/v5/client" - "github.com/appwrite/sdk-for-go/v5/users" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/users" ) client := client.New( diff --git a/examples/1.9.x/server-go/examples/users/list-sessions.md b/examples/1.9.x/server-go/examples/users/list-sessions.md index cd4287ffb..456f6cadf 100644 --- a/examples/1.9.x/server-go/examples/users/list-sessions.md +++ b/examples/1.9.x/server-go/examples/users/list-sessions.md @@ -3,8 +3,8 @@ package main import ( "fmt" - "github.com/appwrite/sdk-for-go/v5/client" - "github.com/appwrite/sdk-for-go/v5/users" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/users" ) client := client.New( diff --git a/examples/1.9.x/server-go/examples/users/list-targets.md b/examples/1.9.x/server-go/examples/users/list-targets.md index db42a08d5..b84c3545c 100644 --- a/examples/1.9.x/server-go/examples/users/list-targets.md +++ b/examples/1.9.x/server-go/examples/users/list-targets.md @@ -3,8 +3,8 @@ package main import ( "fmt" - "github.com/appwrite/sdk-for-go/v5/client" - "github.com/appwrite/sdk-for-go/v5/users" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/users" ) client := client.New( diff --git a/examples/1.9.x/server-go/examples/users/list.md b/examples/1.9.x/server-go/examples/users/list.md index 33911d75a..cd4fc87f2 100644 --- a/examples/1.9.x/server-go/examples/users/list.md +++ b/examples/1.9.x/server-go/examples/users/list.md @@ -3,8 +3,8 @@ package main import ( "fmt" - "github.com/appwrite/sdk-for-go/v5/client" - "github.com/appwrite/sdk-for-go/v5/users" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/users" ) client := client.New( diff --git a/examples/1.9.x/server-go/examples/users/update-email-verification.md b/examples/1.9.x/server-go/examples/users/update-email-verification.md index 3aee3c73c..e530d9bd8 100644 --- a/examples/1.9.x/server-go/examples/users/update-email-verification.md +++ b/examples/1.9.x/server-go/examples/users/update-email-verification.md @@ -3,8 +3,8 @@ package main import ( "fmt" - "github.com/appwrite/sdk-for-go/v5/client" - "github.com/appwrite/sdk-for-go/v5/users" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/users" ) client := client.New( diff --git a/examples/1.9.x/server-go/examples/users/update-email.md b/examples/1.9.x/server-go/examples/users/update-email.md index 28acdfd8f..087d49857 100644 --- a/examples/1.9.x/server-go/examples/users/update-email.md +++ b/examples/1.9.x/server-go/examples/users/update-email.md @@ -3,8 +3,8 @@ package main import ( "fmt" - "github.com/appwrite/sdk-for-go/v5/client" - "github.com/appwrite/sdk-for-go/v5/users" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/users" ) client := client.New( diff --git a/examples/1.9.x/server-go/examples/users/update-impersonator.md b/examples/1.9.x/server-go/examples/users/update-impersonator.md index 80597b345..209cd6e88 100644 --- a/examples/1.9.x/server-go/examples/users/update-impersonator.md +++ b/examples/1.9.x/server-go/examples/users/update-impersonator.md @@ -3,8 +3,8 @@ package main import ( "fmt" - "github.com/appwrite/sdk-for-go/v5/client" - "github.com/appwrite/sdk-for-go/v5/users" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/users" ) client := client.New( diff --git a/examples/1.9.x/server-go/examples/users/update-labels.md b/examples/1.9.x/server-go/examples/users/update-labels.md index 0f8c95d17..b5704c819 100644 --- a/examples/1.9.x/server-go/examples/users/update-labels.md +++ b/examples/1.9.x/server-go/examples/users/update-labels.md @@ -3,8 +3,8 @@ package main import ( "fmt" - "github.com/appwrite/sdk-for-go/v5/client" - "github.com/appwrite/sdk-for-go/v5/users" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/users" ) client := client.New( diff --git a/examples/1.9.x/server-go/examples/users/update-mfa-recovery-codes.md b/examples/1.9.x/server-go/examples/users/update-mfa-recovery-codes.md index 008d8ee24..225bba438 100644 --- a/examples/1.9.x/server-go/examples/users/update-mfa-recovery-codes.md +++ b/examples/1.9.x/server-go/examples/users/update-mfa-recovery-codes.md @@ -3,8 +3,8 @@ package main import ( "fmt" - "github.com/appwrite/sdk-for-go/v5/client" - "github.com/appwrite/sdk-for-go/v5/users" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/users" ) client := client.New( diff --git a/examples/1.9.x/server-go/examples/users/update-mfa.md b/examples/1.9.x/server-go/examples/users/update-mfa.md index 4016861d3..99facf651 100644 --- a/examples/1.9.x/server-go/examples/users/update-mfa.md +++ b/examples/1.9.x/server-go/examples/users/update-mfa.md @@ -3,8 +3,8 @@ package main import ( "fmt" - "github.com/appwrite/sdk-for-go/v5/client" - "github.com/appwrite/sdk-for-go/v5/users" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/users" ) client := client.New( diff --git a/examples/1.9.x/server-go/examples/users/update-name.md b/examples/1.9.x/server-go/examples/users/update-name.md index e6bb9f5ae..27ec7e58d 100644 --- a/examples/1.9.x/server-go/examples/users/update-name.md +++ b/examples/1.9.x/server-go/examples/users/update-name.md @@ -3,8 +3,8 @@ package main import ( "fmt" - "github.com/appwrite/sdk-for-go/v5/client" - "github.com/appwrite/sdk-for-go/v5/users" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/users" ) client := client.New( diff --git a/examples/1.9.x/server-go/examples/users/update-password.md b/examples/1.9.x/server-go/examples/users/update-password.md index 9578a4f55..1d41bafbf 100644 --- a/examples/1.9.x/server-go/examples/users/update-password.md +++ b/examples/1.9.x/server-go/examples/users/update-password.md @@ -3,8 +3,8 @@ package main import ( "fmt" - "github.com/appwrite/sdk-for-go/v5/client" - "github.com/appwrite/sdk-for-go/v5/users" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/users" ) client := client.New( diff --git a/examples/1.9.x/server-go/examples/users/update-phone-verification.md b/examples/1.9.x/server-go/examples/users/update-phone-verification.md index 2c776f093..751b4ef38 100644 --- a/examples/1.9.x/server-go/examples/users/update-phone-verification.md +++ b/examples/1.9.x/server-go/examples/users/update-phone-verification.md @@ -3,8 +3,8 @@ package main import ( "fmt" - "github.com/appwrite/sdk-for-go/v5/client" - "github.com/appwrite/sdk-for-go/v5/users" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/users" ) client := client.New( diff --git a/examples/1.9.x/server-go/examples/users/update-phone.md b/examples/1.9.x/server-go/examples/users/update-phone.md index dfa8e31e8..50b3de991 100644 --- a/examples/1.9.x/server-go/examples/users/update-phone.md +++ b/examples/1.9.x/server-go/examples/users/update-phone.md @@ -3,8 +3,8 @@ package main import ( "fmt" - "github.com/appwrite/sdk-for-go/v5/client" - "github.com/appwrite/sdk-for-go/v5/users" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/users" ) client := client.New( diff --git a/examples/1.9.x/server-go/examples/users/update-prefs.md b/examples/1.9.x/server-go/examples/users/update-prefs.md index a79a8f363..db5486442 100644 --- a/examples/1.9.x/server-go/examples/users/update-prefs.md +++ b/examples/1.9.x/server-go/examples/users/update-prefs.md @@ -3,8 +3,8 @@ package main import ( "fmt" - "github.com/appwrite/sdk-for-go/v5/client" - "github.com/appwrite/sdk-for-go/v5/users" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/users" ) client := client.New( diff --git a/examples/1.9.x/server-go/examples/users/update-status.md b/examples/1.9.x/server-go/examples/users/update-status.md index 1716adb1c..b17bd05fa 100644 --- a/examples/1.9.x/server-go/examples/users/update-status.md +++ b/examples/1.9.x/server-go/examples/users/update-status.md @@ -3,8 +3,8 @@ package main import ( "fmt" - "github.com/appwrite/sdk-for-go/v5/client" - "github.com/appwrite/sdk-for-go/v5/users" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/users" ) client := client.New( diff --git a/examples/1.9.x/server-go/examples/users/update-target.md b/examples/1.9.x/server-go/examples/users/update-target.md index fff4d15b2..487ffc746 100644 --- a/examples/1.9.x/server-go/examples/users/update-target.md +++ b/examples/1.9.x/server-go/examples/users/update-target.md @@ -3,8 +3,8 @@ package main import ( "fmt" - "github.com/appwrite/sdk-for-go/v5/client" - "github.com/appwrite/sdk-for-go/v5/users" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/users" ) client := client.New( diff --git a/examples/1.9.x/server-go/examples/waf/create-bypass-rule.md b/examples/1.9.x/server-go/examples/waf/create-bypass-rule.md new file mode 100644 index 000000000..32e9313c3 --- /dev/null +++ b/examples/1.9.x/server-go/examples/waf/create-bypass-rule.md @@ -0,0 +1,28 @@ +```go +package main + +import ( + "fmt" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/waf" +) + +client := client.New( + client.WithEndpoint("https://.cloud.appwrite.io/v1") + client.WithProject("") + client.WithKey("") +) + +service := waf.New(client) + +response, error := service.CreateBypassRule( + "", + "api", + "", + waf.WithCreateBypassRuleResourceId(""), + waf.WithCreateBypassRuleDescription(""), + waf.WithCreateBypassRulePriority(-100000), + waf.WithCreateBypassRuleEnabled(false), + waf.WithCreateBypassRuleConditions(""), +) +``` diff --git a/examples/1.9.x/server-go/examples/waf/create-deny-rule.md b/examples/1.9.x/server-go/examples/waf/create-deny-rule.md new file mode 100644 index 000000000..e4d10f72b --- /dev/null +++ b/examples/1.9.x/server-go/examples/waf/create-deny-rule.md @@ -0,0 +1,28 @@ +```go +package main + +import ( + "fmt" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/waf" +) + +client := client.New( + client.WithEndpoint("https://.cloud.appwrite.io/v1") + client.WithProject("") + client.WithKey("") +) + +service := waf.New(client) + +response, error := service.CreateDenyRule( + "", + "api", + "", + waf.WithCreateDenyRuleResourceId(""), + waf.WithCreateDenyRuleDescription(""), + waf.WithCreateDenyRulePriority(-100000), + waf.WithCreateDenyRuleEnabled(false), + waf.WithCreateDenyRuleConditions(""), +) +``` diff --git a/examples/1.9.x/server-go/examples/waf/create-rate-limit-rule.md b/examples/1.9.x/server-go/examples/waf/create-rate-limit-rule.md new file mode 100644 index 000000000..07af7c634 --- /dev/null +++ b/examples/1.9.x/server-go/examples/waf/create-rate-limit-rule.md @@ -0,0 +1,30 @@ +```go +package main + +import ( + "fmt" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/waf" +) + +client := client.New( + client.WithEndpoint("https://.cloud.appwrite.io/v1") + client.WithProject("") + client.WithKey("") +) + +service := waf.New(client) + +response, error := service.CreateRateLimitRule( + "", + "api", + "", + 1, + 1, + waf.WithCreateRateLimitRuleResourceId(""), + waf.WithCreateRateLimitRuleDescription(""), + waf.WithCreateRateLimitRulePriority(-100000), + waf.WithCreateRateLimitRuleEnabled(false), + waf.WithCreateRateLimitRuleConditions(""), +) +``` diff --git a/examples/1.9.x/server-go/examples/waf/create-redirect-rule.md b/examples/1.9.x/server-go/examples/waf/create-redirect-rule.md new file mode 100644 index 000000000..a4749c745 --- /dev/null +++ b/examples/1.9.x/server-go/examples/waf/create-redirect-rule.md @@ -0,0 +1,30 @@ +```go +package main + +import ( + "fmt" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/waf" +) + +client := client.New( + client.WithEndpoint("https://.cloud.appwrite.io/v1") + client.WithProject("") + client.WithKey("") +) + +service := waf.New(client) + +response, error := service.CreateRedirectRule( + "", + "api", + "", + "", + 300, + waf.WithCreateRedirectRuleResourceId(""), + waf.WithCreateRedirectRuleDescription(""), + waf.WithCreateRedirectRulePriority(-100000), + waf.WithCreateRedirectRuleEnabled(false), + waf.WithCreateRedirectRuleConditions(""), +) +``` diff --git a/examples/1.9.x/server-go/examples/waf/delete-rule.md b/examples/1.9.x/server-go/examples/waf/delete-rule.md new file mode 100644 index 000000000..714bc05c8 --- /dev/null +++ b/examples/1.9.x/server-go/examples/waf/delete-rule.md @@ -0,0 +1,21 @@ +```go +package main + +import ( + "fmt" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/waf" +) + +client := client.New( + client.WithEndpoint("https://.cloud.appwrite.io/v1") + client.WithProject("") + client.WithKey("") +) + +service := waf.New(client) + +response, error := service.DeleteRule( + "", +) +``` diff --git a/examples/1.9.x/server-go/examples/waf/get-rule.md b/examples/1.9.x/server-go/examples/waf/get-rule.md new file mode 100644 index 000000000..dd6ef2b19 --- /dev/null +++ b/examples/1.9.x/server-go/examples/waf/get-rule.md @@ -0,0 +1,21 @@ +```go +package main + +import ( + "fmt" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/waf" +) + +client := client.New( + client.WithEndpoint("https://.cloud.appwrite.io/v1") + client.WithProject("") + client.WithKey("") +) + +service := waf.New(client) + +response, error := service.GetRule( + "", +) +``` diff --git a/examples/1.9.x/server-go/examples/waf/list-rules.md b/examples/1.9.x/server-go/examples/waf/list-rules.md new file mode 100644 index 000000000..c03b7576f --- /dev/null +++ b/examples/1.9.x/server-go/examples/waf/list-rules.md @@ -0,0 +1,23 @@ +```go +package main + +import ( + "fmt" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/waf" +) + +client := client.New( + client.WithEndpoint("https://.cloud.appwrite.io/v1") + client.WithProject("") + client.WithKey("") +) + +service := waf.New(client) + +response, error := service.ListRules( + waf.WithListRulesQueries([]string{}), + waf.WithListRulesSearch(""), + waf.WithListRulesTotal(false), +) +``` diff --git a/examples/1.9.x/server-go/examples/waf/update-bypass-rule.md b/examples/1.9.x/server-go/examples/waf/update-bypass-rule.md new file mode 100644 index 000000000..ad81e99d7 --- /dev/null +++ b/examples/1.9.x/server-go/examples/waf/update-bypass-rule.md @@ -0,0 +1,28 @@ +```go +package main + +import ( + "fmt" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/waf" +) + +client := client.New( + client.WithEndpoint("https://.cloud.appwrite.io/v1") + client.WithProject("") + client.WithKey("") +) + +service := waf.New(client) + +response, error := service.UpdateBypassRule( + "", + waf.WithUpdateBypassRuleResourceType("api"), + waf.WithUpdateBypassRuleResourceId(""), + waf.WithUpdateBypassRuleName(""), + waf.WithUpdateBypassRuleDescription(""), + waf.WithUpdateBypassRulePriority(-100000), + waf.WithUpdateBypassRuleEnabled(false), + waf.WithUpdateBypassRuleConditions(""), +) +``` diff --git a/examples/1.9.x/server-go/examples/waf/update-deny-rule.md b/examples/1.9.x/server-go/examples/waf/update-deny-rule.md new file mode 100644 index 000000000..607112a00 --- /dev/null +++ b/examples/1.9.x/server-go/examples/waf/update-deny-rule.md @@ -0,0 +1,28 @@ +```go +package main + +import ( + "fmt" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/waf" +) + +client := client.New( + client.WithEndpoint("https://.cloud.appwrite.io/v1") + client.WithProject("") + client.WithKey("") +) + +service := waf.New(client) + +response, error := service.UpdateDenyRule( + "", + waf.WithUpdateDenyRuleResourceType("api"), + waf.WithUpdateDenyRuleResourceId(""), + waf.WithUpdateDenyRuleName(""), + waf.WithUpdateDenyRuleDescription(""), + waf.WithUpdateDenyRulePriority(-100000), + waf.WithUpdateDenyRuleEnabled(false), + waf.WithUpdateDenyRuleConditions(""), +) +``` diff --git a/examples/1.9.x/server-go/examples/waf/update-rate-limit-rule.md b/examples/1.9.x/server-go/examples/waf/update-rate-limit-rule.md new file mode 100644 index 000000000..87e54136c --- /dev/null +++ b/examples/1.9.x/server-go/examples/waf/update-rate-limit-rule.md @@ -0,0 +1,30 @@ +```go +package main + +import ( + "fmt" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/waf" +) + +client := client.New( + client.WithEndpoint("https://.cloud.appwrite.io/v1") + client.WithProject("") + client.WithKey("") +) + +service := waf.New(client) + +response, error := service.UpdateRateLimitRule( + "", + waf.WithUpdateRateLimitRuleResourceType("api"), + waf.WithUpdateRateLimitRuleResourceId(""), + waf.WithUpdateRateLimitRuleName(""), + waf.WithUpdateRateLimitRuleDescription(""), + waf.WithUpdateRateLimitRuleLimit(1), + waf.WithUpdateRateLimitRuleInterval(1), + waf.WithUpdateRateLimitRulePriority(-100000), + waf.WithUpdateRateLimitRuleEnabled(false), + waf.WithUpdateRateLimitRuleConditions(""), +) +``` diff --git a/examples/1.9.x/server-go/examples/waf/update-redirect-rule.md b/examples/1.9.x/server-go/examples/waf/update-redirect-rule.md new file mode 100644 index 000000000..40fcdebf7 --- /dev/null +++ b/examples/1.9.x/server-go/examples/waf/update-redirect-rule.md @@ -0,0 +1,30 @@ +```go +package main + +import ( + "fmt" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/waf" +) + +client := client.New( + client.WithEndpoint("https://.cloud.appwrite.io/v1") + client.WithProject("") + client.WithKey("") +) + +service := waf.New(client) + +response, error := service.UpdateRedirectRule( + "", + waf.WithUpdateRedirectRuleResourceType("api"), + waf.WithUpdateRedirectRuleResourceId(""), + waf.WithUpdateRedirectRuleName(""), + waf.WithUpdateRedirectRuleDescription(""), + waf.WithUpdateRedirectRuleLocation(""), + waf.WithUpdateRedirectRuleStatusCode(300), + waf.WithUpdateRedirectRulePriority(-100000), + waf.WithUpdateRedirectRuleEnabled(false), + waf.WithUpdateRedirectRuleConditions(""), +) +``` diff --git a/examples/1.9.x/server-go/examples/webhooks/create.md b/examples/1.9.x/server-go/examples/webhooks/create.md index aedf39205..78eb42a4d 100644 --- a/examples/1.9.x/server-go/examples/webhooks/create.md +++ b/examples/1.9.x/server-go/examples/webhooks/create.md @@ -3,8 +3,8 @@ package main import ( "fmt" - "github.com/appwrite/sdk-for-go/v5/client" - "github.com/appwrite/sdk-for-go/v5/webhooks" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/webhooks" ) client := client.New( diff --git a/examples/1.9.x/server-go/examples/webhooks/delete.md b/examples/1.9.x/server-go/examples/webhooks/delete.md index adfcab6d3..a02d59267 100644 --- a/examples/1.9.x/server-go/examples/webhooks/delete.md +++ b/examples/1.9.x/server-go/examples/webhooks/delete.md @@ -3,8 +3,8 @@ package main import ( "fmt" - "github.com/appwrite/sdk-for-go/v5/client" - "github.com/appwrite/sdk-for-go/v5/webhooks" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/webhooks" ) client := client.New( diff --git a/examples/1.9.x/server-go/examples/webhooks/get.md b/examples/1.9.x/server-go/examples/webhooks/get.md index cb0fe72a8..42f4f94d4 100644 --- a/examples/1.9.x/server-go/examples/webhooks/get.md +++ b/examples/1.9.x/server-go/examples/webhooks/get.md @@ -3,8 +3,8 @@ package main import ( "fmt" - "github.com/appwrite/sdk-for-go/v5/client" - "github.com/appwrite/sdk-for-go/v5/webhooks" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/webhooks" ) client := client.New( diff --git a/examples/1.9.x/server-go/examples/webhooks/list.md b/examples/1.9.x/server-go/examples/webhooks/list.md index a0f97568e..e03abf168 100644 --- a/examples/1.9.x/server-go/examples/webhooks/list.md +++ b/examples/1.9.x/server-go/examples/webhooks/list.md @@ -3,8 +3,8 @@ package main import ( "fmt" - "github.com/appwrite/sdk-for-go/v5/client" - "github.com/appwrite/sdk-for-go/v5/webhooks" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/webhooks" ) client := client.New( diff --git a/examples/1.9.x/server-go/examples/webhooks/update-secret.md b/examples/1.9.x/server-go/examples/webhooks/update-secret.md index 10140ff62..51cd40302 100644 --- a/examples/1.9.x/server-go/examples/webhooks/update-secret.md +++ b/examples/1.9.x/server-go/examples/webhooks/update-secret.md @@ -3,8 +3,8 @@ package main import ( "fmt" - "github.com/appwrite/sdk-for-go/v5/client" - "github.com/appwrite/sdk-for-go/v5/webhooks" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/webhooks" ) client := client.New( diff --git a/examples/1.9.x/server-go/examples/webhooks/update.md b/examples/1.9.x/server-go/examples/webhooks/update.md index 92f47161a..d20ae35a6 100644 --- a/examples/1.9.x/server-go/examples/webhooks/update.md +++ b/examples/1.9.x/server-go/examples/webhooks/update.md @@ -3,8 +3,8 @@ package main import ( "fmt" - "github.com/appwrite/sdk-for-go/v5/client" - "github.com/appwrite/sdk-for-go/v5/webhooks" + "github.com/appwrite/sdk-for-go/v6/client" + "github.com/appwrite/sdk-for-go/v6/webhooks" ) client := client.New( diff --git a/examples/1.9.x/server-graphql/examples/account/delete-consent-token.md b/examples/1.9.x/server-graphql/examples/account/delete-consent-token.md new file mode 100644 index 000000000..7e3f547c6 --- /dev/null +++ b/examples/1.9.x/server-graphql/examples/account/delete-consent-token.md @@ -0,0 +1,18 @@ +```graphql +mutation { + accountDeleteConsentToken( + consentId: "", + tokenId: "" + ) { + status + } +} +mutation { + accountDeleteConsentToken( + consentId: "", + tokenId: "" + ) { + status + } +} +``` diff --git a/examples/1.9.x/server-graphql/examples/account/delete-consent.md b/examples/1.9.x/server-graphql/examples/account/delete-consent.md new file mode 100644 index 000000000..c14618395 --- /dev/null +++ b/examples/1.9.x/server-graphql/examples/account/delete-consent.md @@ -0,0 +1,16 @@ +```graphql +mutation { + accountDeleteConsent( + consentId: "" + ) { + status + } +} +mutation { + accountDeleteConsent( + consentId: "" + ) { + status + } +} +``` diff --git a/examples/1.9.x/server-graphql/examples/account/get-consent-token.md b/examples/1.9.x/server-graphql/examples/account/get-consent-token.md new file mode 100644 index 000000000..8294afb8d --- /dev/null +++ b/examples/1.9.x/server-graphql/examples/account/get-consent-token.md @@ -0,0 +1,20 @@ +```graphql +query { + accountGetConsentToken( + consentId: "", + tokenId: "" + ) { + _id + _createdAt + _updatedAt + consentId + userId + appId + cimdUrl + scopes + resources + authorizationDetails + expire + } +} +``` diff --git a/examples/1.9.x/server-graphql/examples/account/get-consent.md b/examples/1.9.x/server-graphql/examples/account/get-consent.md new file mode 100644 index 000000000..999c7aedd --- /dev/null +++ b/examples/1.9.x/server-graphql/examples/account/get-consent.md @@ -0,0 +1,18 @@ +```graphql +query { + accountGetConsent( + consentId: "" + ) { + _id + _createdAt + _updatedAt + userId + appId + cimdUrl + scopes + resources + authorizationDetails + expire + } +} +``` diff --git a/examples/1.9.x/server-graphql/examples/account/list-consent-tokens.md b/examples/1.9.x/server-graphql/examples/account/list-consent-tokens.md new file mode 100644 index 000000000..1bdb2d9fe --- /dev/null +++ b/examples/1.9.x/server-graphql/examples/account/list-consent-tokens.md @@ -0,0 +1,24 @@ +```graphql +query { + accountListConsentTokens( + consentId: "", + queries: [], + total: false + ) { + total + tokens { + _id + _createdAt + _updatedAt + consentId + userId + appId + cimdUrl + scopes + resources + authorizationDetails + expire + } + } +} +``` diff --git a/examples/1.9.x/server-graphql/examples/account/list-consents.md b/examples/1.9.x/server-graphql/examples/account/list-consents.md new file mode 100644 index 000000000..cca99e441 --- /dev/null +++ b/examples/1.9.x/server-graphql/examples/account/list-consents.md @@ -0,0 +1,22 @@ +```graphql +query { + accountListConsents( + queries: [], + total: false + ) { + total + consents { + _id + _createdAt + _updatedAt + userId + appId + cimdUrl + scopes + resources + authorizationDetails + expire + } + } +} +``` diff --git a/examples/1.9.x/server-graphql/examples/activities/get-event.md b/examples/1.9.x/server-graphql/examples/activities/get-event.md index be398853b..d2840b571 100644 --- a/examples/1.9.x/server-graphql/examples/activities/get-event.md +++ b/examples/1.9.x/server-graphql/examples/activities/get-event.md @@ -17,12 +17,21 @@ query { ip mode country + continentCode + city + subdivisions + isp + autonomousSystemNumber + autonomousSystemOrganization + connectionType + connectionUsageType + connectionOrganization time projectId teamId hostname - countryCode - countryName + sdk + sdkVersion } } ``` diff --git a/examples/1.9.x/server-graphql/examples/activities/list-events.md b/examples/1.9.x/server-graphql/examples/activities/list-events.md index f2cd4c135..782adc3dc 100644 --- a/examples/1.9.x/server-graphql/examples/activities/list-events.md +++ b/examples/1.9.x/server-graphql/examples/activities/list-events.md @@ -19,12 +19,21 @@ query { ip mode country + continentCode + city + subdivisions + isp + autonomousSystemNumber + autonomousSystemOrganization + connectionType + connectionUsageType + connectionOrganization time projectId teamId hostname - countryCode - countryName + sdk + sdkVersion } } } diff --git a/examples/1.9.x/server-graphql/examples/databases/create.md b/examples/1.9.x/server-graphql/examples/databases/create.md index 1675ee166..927e7e04b 100644 --- a/examples/1.9.x/server-graphql/examples/databases/create.md +++ b/examples/1.9.x/server-graphql/examples/databases/create.md @@ -11,6 +11,10 @@ mutation { _updatedAt enabled type + status + engine + specification + replicas policies { _id name @@ -53,6 +57,10 @@ mutation { _updatedAt enabled type + status + engine + specification + replicas policies { _id name diff --git a/examples/1.9.x/server-graphql/examples/databases/get.md b/examples/1.9.x/server-graphql/examples/databases/get.md index 452f83975..5f2240c5c 100644 --- a/examples/1.9.x/server-graphql/examples/databases/get.md +++ b/examples/1.9.x/server-graphql/examples/databases/get.md @@ -9,6 +9,10 @@ query { _updatedAt enabled type + status + engine + specification + replicas policies { _id name diff --git a/examples/1.9.x/server-graphql/examples/databases/list.md b/examples/1.9.x/server-graphql/examples/databases/list.md index ae7f82ead..c613b5509 100644 --- a/examples/1.9.x/server-graphql/examples/databases/list.md +++ b/examples/1.9.x/server-graphql/examples/databases/list.md @@ -13,6 +13,10 @@ query { _updatedAt enabled type + status + engine + specification + replicas policies { _id name diff --git a/examples/1.9.x/server-graphql/examples/databases/update.md b/examples/1.9.x/server-graphql/examples/databases/update.md index a1220e8bf..81306f053 100644 --- a/examples/1.9.x/server-graphql/examples/databases/update.md +++ b/examples/1.9.x/server-graphql/examples/databases/update.md @@ -11,6 +11,10 @@ mutation { _updatedAt enabled type + status + engine + specification + replicas policies { _id name @@ -53,6 +57,10 @@ mutation { _updatedAt enabled type + status + engine + specification + replicas policies { _id name diff --git a/examples/1.9.x/server-graphql/examples/functions/get-deployment-download.md b/examples/1.9.x/server-graphql/examples/functions/get-deployment-download.md index cf6e14545..65e956f80 100644 --- a/examples/1.9.x/server-graphql/examples/functions/get-deployment-download.md +++ b/examples/1.9.x/server-graphql/examples/functions/get-deployment-download.md @@ -3,7 +3,8 @@ query { functionsGetDeploymentDownload( functionId: "", deploymentId: "", - type: "source" + type: "source", + token: "" ) { status } diff --git a/examples/1.9.x/server-graphql/examples/health/get-geo-premium.md b/examples/1.9.x/server-graphql/examples/health/get-geo-premium.md new file mode 100644 index 000000000..4b8345713 --- /dev/null +++ b/examples/1.9.x/server-graphql/examples/health/get-geo-premium.md @@ -0,0 +1,9 @@ +```graphql +query { + healthGetGeoPremium { + name + ping + status + } +} +``` diff --git a/examples/1.9.x/server-graphql/examples/health/get-geo.md b/examples/1.9.x/server-graphql/examples/health/get-geo.md new file mode 100644 index 000000000..d2c72c963 --- /dev/null +++ b/examples/1.9.x/server-graphql/examples/health/get-geo.md @@ -0,0 +1,9 @@ +```graphql +query { + healthGetGeo { + name + ping + status + } +} +``` diff --git a/examples/1.9.x/server-graphql/examples/health/get-queue-notifications.md b/examples/1.9.x/server-graphql/examples/health/get-queue-notifications.md new file mode 100644 index 000000000..e618fec9f --- /dev/null +++ b/examples/1.9.x/server-graphql/examples/health/get-queue-notifications.md @@ -0,0 +1,9 @@ +```graphql +query { + healthGetQueueNotifications( + threshold: 0 + ) { + size + } +} +``` diff --git a/examples/1.9.x/server-graphql/examples/locale/get.md b/examples/1.9.x/server-graphql/examples/locale/get.md index c591b694c..5ab0b0f78 100644 --- a/examples/1.9.x/server-graphql/examples/locale/get.md +++ b/examples/1.9.x/server-graphql/examples/locale/get.md @@ -8,6 +8,17 @@ query { continent eu currency + city + timeZone + postalCode + latitude + longitude + autonomousSystemNumber + autonomousSystemOrganization + isp + connectionType + connectionUsageType + connectionOrganization } } ``` diff --git a/examples/1.9.x/server-graphql/examples/organization/create-membership.md b/examples/1.9.x/server-graphql/examples/organization/create-membership.md new file mode 100644 index 000000000..10201bc43 --- /dev/null +++ b/examples/1.9.x/server-graphql/examples/organization/create-membership.md @@ -0,0 +1,54 @@ +```graphql +mutation { + organizationCreateMembership( + roles: [], + email: "email@example.com", + userId: "", + phone: "+12065550100", + url: "https://example.com", + name: "" + ) { + _id + _createdAt + _updatedAt + userId + userName + userEmail + userPhone + teamId + teamName + invited + joined + confirm + mfa + userAccessedAt + roles + } +} +mutation { + organizationCreateMembership( + roles: [], + email: "email@example.com", + userId: "", + phone: "+12065550100", + url: "https://example.com", + name: "" + ) { + _id + _createdAt + _updatedAt + userId + userName + userEmail + userPhone + teamId + teamName + invited + joined + confirm + mfa + userAccessedAt + roles + } +} +``` diff --git a/examples/1.9.x/server-graphql/examples/organization/create-project.md b/examples/1.9.x/server-graphql/examples/organization/create-project.md index 963175151..dca3bea1b 100644 --- a/examples/1.9.x/server-graphql/examples/organization/create-project.md +++ b/examples/1.9.x/server-graphql/examples/organization/create-project.md @@ -35,6 +35,7 @@ mutation { pingedAt labels status + onboarding authMethods { _id enabled @@ -51,6 +52,7 @@ mutation { _createdAt resourceType resourceId + mode reason expiredAt projectName @@ -60,6 +62,7 @@ mutation { billingPlan } consoleAccessedAt + wafEnabled billingLimits { bandwidth storage @@ -73,6 +76,7 @@ mutation { oAuth2ServerEnabled oAuth2ServerAuthorizationUrl oAuth2ServerScopes + oAuth2ServerDefaultScopes oAuth2ServerAuthorizationDetailsTypes oAuth2ServerAccessTokenDuration oAuth2ServerRefreshTokenDuration @@ -122,6 +126,7 @@ mutation { pingedAt labels status + onboarding authMethods { _id enabled @@ -138,6 +143,7 @@ mutation { _createdAt resourceType resourceId + mode reason expiredAt projectName @@ -147,6 +153,7 @@ mutation { billingPlan } consoleAccessedAt + wafEnabled billingLimits { bandwidth storage @@ -160,6 +167,7 @@ mutation { oAuth2ServerEnabled oAuth2ServerAuthorizationUrl oAuth2ServerScopes + oAuth2ServerDefaultScopes oAuth2ServerAuthorizationDetailsTypes oAuth2ServerAccessTokenDuration oAuth2ServerRefreshTokenDuration diff --git a/examples/1.9.x/server-graphql/examples/organization/delete-membership.md b/examples/1.9.x/server-graphql/examples/organization/delete-membership.md new file mode 100644 index 000000000..78b2a807a --- /dev/null +++ b/examples/1.9.x/server-graphql/examples/organization/delete-membership.md @@ -0,0 +1,9 @@ +```graphql +mutation { + organizationDeleteMembership( + membershipId: "" + ) { + status + } +} +``` diff --git a/examples/1.9.x/server-graphql/examples/organization/delete.md b/examples/1.9.x/server-graphql/examples/organization/delete.md new file mode 100644 index 000000000..b7f921cae --- /dev/null +++ b/examples/1.9.x/server-graphql/examples/organization/delete.md @@ -0,0 +1,7 @@ +```graphql +mutation { + organizationDelete { + status + } +} +``` diff --git a/examples/1.9.x/server-graphql/examples/organization/get-membership.md b/examples/1.9.x/server-graphql/examples/organization/get-membership.md new file mode 100644 index 000000000..c0994b30d --- /dev/null +++ b/examples/1.9.x/server-graphql/examples/organization/get-membership.md @@ -0,0 +1,23 @@ +```graphql +query { + organizationGetMembership( + membershipId: "" + ) { + _id + _createdAt + _updatedAt + userId + userName + userEmail + userPhone + teamId + teamName + invited + joined + confirm + mfa + userAccessedAt + roles + } +} +``` diff --git a/examples/1.9.x/server-graphql/examples/organization/get.md b/examples/1.9.x/server-graphql/examples/organization/get.md new file mode 100644 index 000000000..7686abd5c --- /dev/null +++ b/examples/1.9.x/server-graphql/examples/organization/get.md @@ -0,0 +1,269 @@ +```graphql +query { + organizationGet { + _id + _createdAt + _updatedAt + name + total + prefs { + data + } + billingBudget + budgetAlerts + billingPlan + billingPlanId + billingPlanDetails { + _id + name + desc + order + price + trial + bandwidth + storage + imageTransformations + screenshotsGenerated + members + webhooks + wafRules + projects + platforms + users + teams + databases + databasesReads + databasesWrites + databasesBatchSize + buckets + fileSize + functions + sites + executions + executionsRetentionCount + GBHours + realtime + realtimeMessages + messages + topics + authPhone + domains + activityLogs + usageLogs + usageLogsIntervals + projectInactivityDays + alertLimit + usage { + bandwidth { + name + unit + currency + price + value + invoiceDesc + } + executions { + name + unit + currency + price + value + invoiceDesc + } + member { + name + unit + currency + price + value + invoiceDesc + } + realtime { + name + unit + currency + price + value + invoiceDesc + } + realtimeMessages { + name + unit + currency + price + value + invoiceDesc + } + realtimeBandwidth { + name + unit + currency + price + value + invoiceDesc + } + storage { + name + unit + currency + price + value + invoiceDesc + } + users { + name + unit + currency + price + value + invoiceDesc + } + GBHours { + name + unit + currency + price + value + invoiceDesc + } + imageTransformations { + name + unit + currency + price + value + invoiceDesc + } + credits { + name + unit + currency + price + value + invoiceDesc + } + } + addons { + seats { + supported + planIncluded + limit + type + currency + price + value + invoiceDesc + } + projects { + supported + planIncluded + limit + type + currency + price + value + invoiceDesc + } + } + budgetCapEnabled + customSmtp + emailBranding + requiresPaymentMethod + requiresBillingAddress + isAvailable + selfService + premiumSupport + budgeting + supportsMockNumbers + supportsOrganizationRoles + supportsCredits + supportsDisposableEmailValidation + supportsCanonicalEmailValidation + supportsFreeEmailValidation + supportsCorporateEmailValidation + supportsProjectSpecificRoles + backupsEnabled + usagePerProject + supportedAddons { + baa + premiumGeoDB + premiumGeoDBOrg + } + backupPolicies + deploymentSize + buildSize + databasesAllowEncrypt + limits { + credits + dailyCredits + } + group + program { + _id + title + description + tag + icon + url + active + external + billingPlanId + } + dedicatedDatabases { + minCpu + maxCpu + minMemoryMb + maxMemoryMb + minStorageGb + maxStorageGb + maxReplicas + maxConnections + maxIpAllowlistSize + maxExtensions + maxBackupRetentionDays + maxPitrRetentionDays + maxSqlApiMaxRows + maxSqlApiMaxBytes + maxSqlApiTimeoutSeconds + maxSqlApiAllowedStatements + allowedSqlStatements + allowedStorageClasses + allowedSyncModes + } + } + billingEmail + billingStartDate + billingCurrentInvoiceDate + billingNextInvoiceDate + billingTrialStartDate + billingTrialDays + billingAggregationId + billingInvoiceId + paymentMethodId + billingAddressId + backupPaymentMethodId + status + remarks + agreementBAA + programManagerName + programManagerCalendar + programDiscordChannelName + programDiscordChannelUrl + billingLimits { + bandwidth + storage + users + executions + GBHours + imageTransformations + authPhone + budgetLimit + } + billingPlanDowngrade + billingTaxId + markedForDeletion + platform + projects + } +} +``` diff --git a/examples/1.9.x/server-graphql/examples/organization/list-memberships.md b/examples/1.9.x/server-graphql/examples/organization/list-memberships.md new file mode 100644 index 000000000..1d23bc0a0 --- /dev/null +++ b/examples/1.9.x/server-graphql/examples/organization/list-memberships.md @@ -0,0 +1,28 @@ +```graphql +query { + organizationListMemberships( + queries: [], + search: "", + total: false + ) { + total + memberships { + _id + _createdAt + _updatedAt + userId + userName + userEmail + userPhone + teamId + teamName + invited + joined + confirm + mfa + userAccessedAt + roles + } + } +} +``` diff --git a/examples/1.9.x/server-graphql/examples/organization/list-projects.md b/examples/1.9.x/server-graphql/examples/organization/list-projects.md index c68ed4fa3..f83794f5a 100644 --- a/examples/1.9.x/server-graphql/examples/organization/list-projects.md +++ b/examples/1.9.x/server-graphql/examples/organization/list-projects.md @@ -37,6 +37,7 @@ query { pingedAt labels status + onboarding authMethods { _id enabled @@ -53,6 +54,7 @@ query { _createdAt resourceType resourceId + mode reason expiredAt projectName @@ -62,6 +64,7 @@ query { billingPlan } consoleAccessedAt + wafEnabled billingLimits { bandwidth storage @@ -75,6 +78,7 @@ query { oAuth2ServerEnabled oAuth2ServerAuthorizationUrl oAuth2ServerScopes + oAuth2ServerDefaultScopes oAuth2ServerAuthorizationDetailsTypes oAuth2ServerAccessTokenDuration oAuth2ServerRefreshTokenDuration diff --git a/examples/1.9.x/server-graphql/examples/organization/update-membership.md b/examples/1.9.x/server-graphql/examples/organization/update-membership.md new file mode 100644 index 000000000..60fd0892e --- /dev/null +++ b/examples/1.9.x/server-graphql/examples/organization/update-membership.md @@ -0,0 +1,46 @@ +```graphql +mutation { + organizationUpdateMembership( + membershipId: "", + roles: [] + ) { + _id + _createdAt + _updatedAt + userId + userName + userEmail + userPhone + teamId + teamName + invited + joined + confirm + mfa + userAccessedAt + roles + } +} +mutation { + organizationUpdateMembership( + membershipId: "", + roles: [] + ) { + _id + _createdAt + _updatedAt + userId + userName + userEmail + userPhone + teamId + teamName + invited + joined + confirm + mfa + userAccessedAt + roles + } +} +``` diff --git a/examples/1.9.x/server-graphql/examples/organization/update-project.md b/examples/1.9.x/server-graphql/examples/organization/update-project.md index c1bd738ac..5de189346 100644 --- a/examples/1.9.x/server-graphql/examples/organization/update-project.md +++ b/examples/1.9.x/server-graphql/examples/organization/update-project.md @@ -34,6 +34,7 @@ mutation { pingedAt labels status + onboarding authMethods { _id enabled @@ -50,6 +51,7 @@ mutation { _createdAt resourceType resourceId + mode reason expiredAt projectName @@ -59,6 +61,7 @@ mutation { billingPlan } consoleAccessedAt + wafEnabled billingLimits { bandwidth storage @@ -72,6 +75,7 @@ mutation { oAuth2ServerEnabled oAuth2ServerAuthorizationUrl oAuth2ServerScopes + oAuth2ServerDefaultScopes oAuth2ServerAuthorizationDetailsTypes oAuth2ServerAccessTokenDuration oAuth2ServerRefreshTokenDuration @@ -120,6 +124,7 @@ mutation { pingedAt labels status + onboarding authMethods { _id enabled @@ -136,6 +141,7 @@ mutation { _createdAt resourceType resourceId + mode reason expiredAt projectName @@ -145,6 +151,7 @@ mutation { billingPlan } consoleAccessedAt + wafEnabled billingLimits { bandwidth storage @@ -158,6 +165,7 @@ mutation { oAuth2ServerEnabled oAuth2ServerAuthorizationUrl oAuth2ServerScopes + oAuth2ServerDefaultScopes oAuth2ServerAuthorizationDetailsTypes oAuth2ServerAccessTokenDuration oAuth2ServerRefreshTokenDuration diff --git a/examples/1.9.x/server-graphql/examples/organization/update.md b/examples/1.9.x/server-graphql/examples/organization/update.md new file mode 100644 index 000000000..8769888a6 --- /dev/null +++ b/examples/1.9.x/server-graphql/examples/organization/update.md @@ -0,0 +1,540 @@ +```graphql +mutation { + organizationUpdate( + name: "" + ) { + _id + _createdAt + _updatedAt + name + total + prefs { + data + } + billingBudget + budgetAlerts + billingPlan + billingPlanId + billingPlanDetails { + _id + name + desc + order + price + trial + bandwidth + storage + imageTransformations + screenshotsGenerated + members + webhooks + wafRules + projects + platforms + users + teams + databases + databasesReads + databasesWrites + databasesBatchSize + buckets + fileSize + functions + sites + executions + executionsRetentionCount + GBHours + realtime + realtimeMessages + messages + topics + authPhone + domains + activityLogs + usageLogs + usageLogsIntervals + projectInactivityDays + alertLimit + usage { + bandwidth { + name + unit + currency + price + value + invoiceDesc + } + executions { + name + unit + currency + price + value + invoiceDesc + } + member { + name + unit + currency + price + value + invoiceDesc + } + realtime { + name + unit + currency + price + value + invoiceDesc + } + realtimeMessages { + name + unit + currency + price + value + invoiceDesc + } + realtimeBandwidth { + name + unit + currency + price + value + invoiceDesc + } + storage { + name + unit + currency + price + value + invoiceDesc + } + users { + name + unit + currency + price + value + invoiceDesc + } + GBHours { + name + unit + currency + price + value + invoiceDesc + } + imageTransformations { + name + unit + currency + price + value + invoiceDesc + } + credits { + name + unit + currency + price + value + invoiceDesc + } + } + addons { + seats { + supported + planIncluded + limit + type + currency + price + value + invoiceDesc + } + projects { + supported + planIncluded + limit + type + currency + price + value + invoiceDesc + } + } + budgetCapEnabled + customSmtp + emailBranding + requiresPaymentMethod + requiresBillingAddress + isAvailable + selfService + premiumSupport + budgeting + supportsMockNumbers + supportsOrganizationRoles + supportsCredits + supportsDisposableEmailValidation + supportsCanonicalEmailValidation + supportsFreeEmailValidation + supportsCorporateEmailValidation + supportsProjectSpecificRoles + backupsEnabled + usagePerProject + supportedAddons { + baa + premiumGeoDB + premiumGeoDBOrg + } + backupPolicies + deploymentSize + buildSize + databasesAllowEncrypt + limits { + credits + dailyCredits + } + group + program { + _id + title + description + tag + icon + url + active + external + billingPlanId + } + dedicatedDatabases { + minCpu + maxCpu + minMemoryMb + maxMemoryMb + minStorageGb + maxStorageGb + maxReplicas + maxConnections + maxIpAllowlistSize + maxExtensions + maxBackupRetentionDays + maxPitrRetentionDays + maxSqlApiMaxRows + maxSqlApiMaxBytes + maxSqlApiTimeoutSeconds + maxSqlApiAllowedStatements + allowedSqlStatements + allowedStorageClasses + allowedSyncModes + } + } + billingEmail + billingStartDate + billingCurrentInvoiceDate + billingNextInvoiceDate + billingTrialStartDate + billingTrialDays + billingAggregationId + billingInvoiceId + paymentMethodId + billingAddressId + backupPaymentMethodId + status + remarks + agreementBAA + programManagerName + programManagerCalendar + programDiscordChannelName + programDiscordChannelUrl + billingLimits { + bandwidth + storage + users + executions + GBHours + imageTransformations + authPhone + budgetLimit + } + billingPlanDowngrade + billingTaxId + markedForDeletion + platform + projects + } +} +mutation { + organizationUpdate( + name: "" + ) { + _id + _createdAt + _updatedAt + name + total + prefs { + data + } + billingBudget + budgetAlerts + billingPlan + billingPlanId + billingPlanDetails { + _id + name + desc + order + price + trial + bandwidth + storage + imageTransformations + screenshotsGenerated + members + webhooks + wafRules + projects + platforms + users + teams + databases + databasesReads + databasesWrites + databasesBatchSize + buckets + fileSize + functions + sites + executions + executionsRetentionCount + GBHours + realtime + realtimeMessages + messages + topics + authPhone + domains + activityLogs + usageLogs + usageLogsIntervals + projectInactivityDays + alertLimit + usage { + bandwidth { + name + unit + currency + price + value + invoiceDesc + } + executions { + name + unit + currency + price + value + invoiceDesc + } + member { + name + unit + currency + price + value + invoiceDesc + } + realtime { + name + unit + currency + price + value + invoiceDesc + } + realtimeMessages { + name + unit + currency + price + value + invoiceDesc + } + realtimeBandwidth { + name + unit + currency + price + value + invoiceDesc + } + storage { + name + unit + currency + price + value + invoiceDesc + } + users { + name + unit + currency + price + value + invoiceDesc + } + GBHours { + name + unit + currency + price + value + invoiceDesc + } + imageTransformations { + name + unit + currency + price + value + invoiceDesc + } + credits { + name + unit + currency + price + value + invoiceDesc + } + } + addons { + seats { + supported + planIncluded + limit + type + currency + price + value + invoiceDesc + } + projects { + supported + planIncluded + limit + type + currency + price + value + invoiceDesc + } + } + budgetCapEnabled + customSmtp + emailBranding + requiresPaymentMethod + requiresBillingAddress + isAvailable + selfService + premiumSupport + budgeting + supportsMockNumbers + supportsOrganizationRoles + supportsCredits + supportsDisposableEmailValidation + supportsCanonicalEmailValidation + supportsFreeEmailValidation + supportsCorporateEmailValidation + supportsProjectSpecificRoles + backupsEnabled + usagePerProject + supportedAddons { + baa + premiumGeoDB + premiumGeoDBOrg + } + backupPolicies + deploymentSize + buildSize + databasesAllowEncrypt + limits { + credits + dailyCredits + } + group + program { + _id + title + description + tag + icon + url + active + external + billingPlanId + } + dedicatedDatabases { + minCpu + maxCpu + minMemoryMb + maxMemoryMb + minStorageGb + maxStorageGb + maxReplicas + maxConnections + maxIpAllowlistSize + maxExtensions + maxBackupRetentionDays + maxPitrRetentionDays + maxSqlApiMaxRows + maxSqlApiMaxBytes + maxSqlApiTimeoutSeconds + maxSqlApiAllowedStatements + allowedSqlStatements + allowedStorageClasses + allowedSyncModes + } + } + billingEmail + billingStartDate + billingCurrentInvoiceDate + billingNextInvoiceDate + billingTrialStartDate + billingTrialDays + billingAggregationId + billingInvoiceId + paymentMethodId + billingAddressId + backupPaymentMethodId + status + remarks + agreementBAA + programManagerName + programManagerCalendar + programDiscordChannelName + programDiscordChannelUrl + billingLimits { + bandwidth + storage + users + executions + GBHours + imageTransformations + authPhone + budgetLimit + } + billingPlanDowngrade + billingTaxId + markedForDeletion + platform + projects + } +} +``` diff --git a/examples/1.9.x/server-graphql/examples/project/update-auth-method.md b/examples/1.9.x/server-graphql/examples/project/update-auth-method.md index 931462dc4..2b5330efe 100644 --- a/examples/1.9.x/server-graphql/examples/project/update-auth-method.md +++ b/examples/1.9.x/server-graphql/examples/project/update-auth-method.md @@ -34,6 +34,7 @@ mutation { pingedAt labels status + onboarding authMethods { _id enabled @@ -50,6 +51,7 @@ mutation { _createdAt resourceType resourceId + mode reason expiredAt projectName @@ -59,6 +61,7 @@ mutation { billingPlan } consoleAccessedAt + wafEnabled billingLimits { bandwidth storage @@ -72,6 +75,7 @@ mutation { oAuth2ServerEnabled oAuth2ServerAuthorizationUrl oAuth2ServerScopes + oAuth2ServerDefaultScopes oAuth2ServerAuthorizationDetailsTypes oAuth2ServerAccessTokenDuration oAuth2ServerRefreshTokenDuration @@ -120,6 +124,7 @@ mutation { pingedAt labels status + onboarding authMethods { _id enabled @@ -136,6 +141,7 @@ mutation { _createdAt resourceType resourceId + mode reason expiredAt projectName @@ -145,6 +151,7 @@ mutation { billingPlan } consoleAccessedAt + wafEnabled billingLimits { bandwidth storage @@ -158,6 +165,7 @@ mutation { oAuth2ServerEnabled oAuth2ServerAuthorizationUrl oAuth2ServerScopes + oAuth2ServerDefaultScopes oAuth2ServerAuthorizationDetailsTypes oAuth2ServerAccessTokenDuration oAuth2ServerRefreshTokenDuration diff --git a/examples/1.9.x/server-graphql/examples/project/update-deny-aliased-email-policy.md b/examples/1.9.x/server-graphql/examples/project/update-deny-aliased-email-policy.md index cc12873da..95e30eea1 100644 --- a/examples/1.9.x/server-graphql/examples/project/update-deny-aliased-email-policy.md +++ b/examples/1.9.x/server-graphql/examples/project/update-deny-aliased-email-policy.md @@ -33,6 +33,7 @@ mutation { pingedAt labels status + onboarding authMethods { _id enabled @@ -49,6 +50,7 @@ mutation { _createdAt resourceType resourceId + mode reason expiredAt projectName @@ -58,6 +60,7 @@ mutation { billingPlan } consoleAccessedAt + wafEnabled billingLimits { bandwidth storage @@ -71,6 +74,7 @@ mutation { oAuth2ServerEnabled oAuth2ServerAuthorizationUrl oAuth2ServerScopes + oAuth2ServerDefaultScopes oAuth2ServerAuthorizationDetailsTypes oAuth2ServerAccessTokenDuration oAuth2ServerRefreshTokenDuration @@ -118,6 +122,7 @@ mutation { pingedAt labels status + onboarding authMethods { _id enabled @@ -134,6 +139,7 @@ mutation { _createdAt resourceType resourceId + mode reason expiredAt projectName @@ -143,6 +149,7 @@ mutation { billingPlan } consoleAccessedAt + wafEnabled billingLimits { bandwidth storage @@ -156,6 +163,7 @@ mutation { oAuth2ServerEnabled oAuth2ServerAuthorizationUrl oAuth2ServerScopes + oAuth2ServerDefaultScopes oAuth2ServerAuthorizationDetailsTypes oAuth2ServerAccessTokenDuration oAuth2ServerRefreshTokenDuration diff --git a/examples/1.9.x/server-graphql/examples/project/update-deny-corporate-email-policy.md b/examples/1.9.x/server-graphql/examples/project/update-deny-corporate-email-policy.md index ebb57384d..4d5c05012 100644 --- a/examples/1.9.x/server-graphql/examples/project/update-deny-corporate-email-policy.md +++ b/examples/1.9.x/server-graphql/examples/project/update-deny-corporate-email-policy.md @@ -33,6 +33,7 @@ mutation { pingedAt labels status + onboarding authMethods { _id enabled @@ -49,6 +50,7 @@ mutation { _createdAt resourceType resourceId + mode reason expiredAt projectName @@ -58,6 +60,7 @@ mutation { billingPlan } consoleAccessedAt + wafEnabled billingLimits { bandwidth storage @@ -71,6 +74,7 @@ mutation { oAuth2ServerEnabled oAuth2ServerAuthorizationUrl oAuth2ServerScopes + oAuth2ServerDefaultScopes oAuth2ServerAuthorizationDetailsTypes oAuth2ServerAccessTokenDuration oAuth2ServerRefreshTokenDuration @@ -118,6 +122,7 @@ mutation { pingedAt labels status + onboarding authMethods { _id enabled @@ -134,6 +139,7 @@ mutation { _createdAt resourceType resourceId + mode reason expiredAt projectName @@ -143,6 +149,7 @@ mutation { billingPlan } consoleAccessedAt + wafEnabled billingLimits { bandwidth storage @@ -156,6 +163,7 @@ mutation { oAuth2ServerEnabled oAuth2ServerAuthorizationUrl oAuth2ServerScopes + oAuth2ServerDefaultScopes oAuth2ServerAuthorizationDetailsTypes oAuth2ServerAccessTokenDuration oAuth2ServerRefreshTokenDuration diff --git a/examples/1.9.x/server-graphql/examples/project/update-deny-disposable-email-policy.md b/examples/1.9.x/server-graphql/examples/project/update-deny-disposable-email-policy.md index 4f4d326ce..e168cc189 100644 --- a/examples/1.9.x/server-graphql/examples/project/update-deny-disposable-email-policy.md +++ b/examples/1.9.x/server-graphql/examples/project/update-deny-disposable-email-policy.md @@ -33,6 +33,7 @@ mutation { pingedAt labels status + onboarding authMethods { _id enabled @@ -49,6 +50,7 @@ mutation { _createdAt resourceType resourceId + mode reason expiredAt projectName @@ -58,6 +60,7 @@ mutation { billingPlan } consoleAccessedAt + wafEnabled billingLimits { bandwidth storage @@ -71,6 +74,7 @@ mutation { oAuth2ServerEnabled oAuth2ServerAuthorizationUrl oAuth2ServerScopes + oAuth2ServerDefaultScopes oAuth2ServerAuthorizationDetailsTypes oAuth2ServerAccessTokenDuration oAuth2ServerRefreshTokenDuration @@ -118,6 +122,7 @@ mutation { pingedAt labels status + onboarding authMethods { _id enabled @@ -134,6 +139,7 @@ mutation { _createdAt resourceType resourceId + mode reason expiredAt projectName @@ -143,6 +149,7 @@ mutation { billingPlan } consoleAccessedAt + wafEnabled billingLimits { bandwidth storage @@ -156,6 +163,7 @@ mutation { oAuth2ServerEnabled oAuth2ServerAuthorizationUrl oAuth2ServerScopes + oAuth2ServerDefaultScopes oAuth2ServerAuthorizationDetailsTypes oAuth2ServerAccessTokenDuration oAuth2ServerRefreshTokenDuration diff --git a/examples/1.9.x/server-graphql/examples/project/update-deny-free-email-policy.md b/examples/1.9.x/server-graphql/examples/project/update-deny-free-email-policy.md index 565c62e41..ec20868eb 100644 --- a/examples/1.9.x/server-graphql/examples/project/update-deny-free-email-policy.md +++ b/examples/1.9.x/server-graphql/examples/project/update-deny-free-email-policy.md @@ -33,6 +33,7 @@ mutation { pingedAt labels status + onboarding authMethods { _id enabled @@ -49,6 +50,7 @@ mutation { _createdAt resourceType resourceId + mode reason expiredAt projectName @@ -58,6 +60,7 @@ mutation { billingPlan } consoleAccessedAt + wafEnabled billingLimits { bandwidth storage @@ -71,6 +74,7 @@ mutation { oAuth2ServerEnabled oAuth2ServerAuthorizationUrl oAuth2ServerScopes + oAuth2ServerDefaultScopes oAuth2ServerAuthorizationDetailsTypes oAuth2ServerAccessTokenDuration oAuth2ServerRefreshTokenDuration @@ -118,6 +122,7 @@ mutation { pingedAt labels status + onboarding authMethods { _id enabled @@ -134,6 +139,7 @@ mutation { _createdAt resourceType resourceId + mode reason expiredAt projectName @@ -143,6 +149,7 @@ mutation { billingPlan } consoleAccessedAt + wafEnabled billingLimits { bandwidth storage @@ -156,6 +163,7 @@ mutation { oAuth2ServerEnabled oAuth2ServerAuthorizationUrl oAuth2ServerScopes + oAuth2ServerDefaultScopes oAuth2ServerAuthorizationDetailsTypes oAuth2ServerAccessTokenDuration oAuth2ServerRefreshTokenDuration diff --git a/examples/1.9.x/server-graphql/examples/project/update-labels.md b/examples/1.9.x/server-graphql/examples/project/update-labels.md index 2102c7113..c6af9d655 100644 --- a/examples/1.9.x/server-graphql/examples/project/update-labels.md +++ b/examples/1.9.x/server-graphql/examples/project/update-labels.md @@ -33,6 +33,7 @@ mutation { pingedAt labels status + onboarding authMethods { _id enabled @@ -49,6 +50,7 @@ mutation { _createdAt resourceType resourceId + mode reason expiredAt projectName @@ -58,6 +60,7 @@ mutation { billingPlan } consoleAccessedAt + wafEnabled billingLimits { bandwidth storage @@ -71,6 +74,7 @@ mutation { oAuth2ServerEnabled oAuth2ServerAuthorizationUrl oAuth2ServerScopes + oAuth2ServerDefaultScopes oAuth2ServerAuthorizationDetailsTypes oAuth2ServerAccessTokenDuration oAuth2ServerRefreshTokenDuration @@ -118,6 +122,7 @@ mutation { pingedAt labels status + onboarding authMethods { _id enabled @@ -134,6 +139,7 @@ mutation { _createdAt resourceType resourceId + mode reason expiredAt projectName @@ -143,6 +149,7 @@ mutation { billingPlan } consoleAccessedAt + wafEnabled billingLimits { bandwidth storage @@ -156,6 +163,7 @@ mutation { oAuth2ServerEnabled oAuth2ServerAuthorizationUrl oAuth2ServerScopes + oAuth2ServerDefaultScopes oAuth2ServerAuthorizationDetailsTypes oAuth2ServerAccessTokenDuration oAuth2ServerRefreshTokenDuration diff --git a/examples/1.9.x/server-graphql/examples/project/update-membership-privacy-policy.md b/examples/1.9.x/server-graphql/examples/project/update-membership-privacy-policy.md index 28619ab92..d8ae4e6a7 100644 --- a/examples/1.9.x/server-graphql/examples/project/update-membership-privacy-policy.md +++ b/examples/1.9.x/server-graphql/examples/project/update-membership-privacy-policy.md @@ -38,6 +38,7 @@ mutation { pingedAt labels status + onboarding authMethods { _id enabled @@ -54,6 +55,7 @@ mutation { _createdAt resourceType resourceId + mode reason expiredAt projectName @@ -63,6 +65,7 @@ mutation { billingPlan } consoleAccessedAt + wafEnabled billingLimits { bandwidth storage @@ -76,6 +79,7 @@ mutation { oAuth2ServerEnabled oAuth2ServerAuthorizationUrl oAuth2ServerScopes + oAuth2ServerDefaultScopes oAuth2ServerAuthorizationDetailsTypes oAuth2ServerAccessTokenDuration oAuth2ServerRefreshTokenDuration @@ -128,6 +132,7 @@ mutation { pingedAt labels status + onboarding authMethods { _id enabled @@ -144,6 +149,7 @@ mutation { _createdAt resourceType resourceId + mode reason expiredAt projectName @@ -153,6 +159,7 @@ mutation { billingPlan } consoleAccessedAt + wafEnabled billingLimits { bandwidth storage @@ -166,6 +173,7 @@ mutation { oAuth2ServerEnabled oAuth2ServerAuthorizationUrl oAuth2ServerScopes + oAuth2ServerDefaultScopes oAuth2ServerAuthorizationDetailsTypes oAuth2ServerAccessTokenDuration oAuth2ServerRefreshTokenDuration diff --git a/examples/1.9.x/server-graphql/examples/project/update-o-auth-2-appwrite.md b/examples/1.9.x/server-graphql/examples/project/update-o-auth-2-appwrite.md new file mode 100644 index 000000000..204219e23 --- /dev/null +++ b/examples/1.9.x/server-graphql/examples/project/update-o-auth-2-appwrite.md @@ -0,0 +1,26 @@ +```graphql +mutation { + projectUpdateOAuth2Appwrite( + clientId: "", + clientSecret: "", + enabled: false + ) { + _id + enabled + clientId + clientSecret + } +} +mutation { + projectUpdateOAuth2Appwrite( + clientId: "", + clientSecret: "", + enabled: false + ) { + _id + enabled + clientId + clientSecret + } +} +``` diff --git a/examples/1.9.x/server-graphql/examples/project/update-o-auth-2-oidc.md b/examples/1.9.x/server-graphql/examples/project/update-o-auth-2-oidc.md index e3f156b64..845d281ca 100644 --- a/examples/1.9.x/server-graphql/examples/project/update-o-auth-2-oidc.md +++ b/examples/1.9.x/server-graphql/examples/project/update-o-auth-2-oidc.md @@ -7,6 +7,8 @@ mutation { authorizationURL: "https://example.com", tokenURL: "https://example.com", userInfoURL: "https://example.com", + prompt: [], + maxAge: 0, enabled: false ) { _id @@ -17,6 +19,8 @@ mutation { authorizationURL tokenURL userInfoURL + prompt + maxAge } } mutation { @@ -27,6 +31,8 @@ mutation { authorizationURL: "https://example.com", tokenURL: "https://example.com", userInfoURL: "https://example.com", + prompt: [], + maxAge: 0, enabled: false ) { _id @@ -37,6 +43,8 @@ mutation { authorizationURL tokenURL userInfoURL + prompt + maxAge } } ``` diff --git a/examples/1.9.x/server-graphql/examples/project/update-o-auth-2-server.md b/examples/1.9.x/server-graphql/examples/project/update-o-auth-2-server.md index 4a1a72099..8c4c32eee 100644 --- a/examples/1.9.x/server-graphql/examples/project/update-o-auth-2-server.md +++ b/examples/1.9.x/server-graphql/examples/project/update-o-auth-2-server.md @@ -13,7 +13,8 @@ mutation { verificationUrl: "https://example.com", userCodeLength: 6, userCodeFormat: "numeric", - deviceCodeDuration: 60 + deviceCodeDuration: 60, + defaultScopes: [] ) { _id _createdAt @@ -45,6 +46,7 @@ mutation { pingedAt labels status + onboarding authMethods { _id enabled @@ -61,6 +63,7 @@ mutation { _createdAt resourceType resourceId + mode reason expiredAt projectName @@ -70,6 +73,7 @@ mutation { billingPlan } consoleAccessedAt + wafEnabled billingLimits { bandwidth storage @@ -83,6 +87,7 @@ mutation { oAuth2ServerEnabled oAuth2ServerAuthorizationUrl oAuth2ServerScopes + oAuth2ServerDefaultScopes oAuth2ServerAuthorizationDetailsTypes oAuth2ServerAccessTokenDuration oAuth2ServerRefreshTokenDuration @@ -110,7 +115,8 @@ mutation { verificationUrl: "https://example.com", userCodeLength: 6, userCodeFormat: "numeric", - deviceCodeDuration: 60 + deviceCodeDuration: 60, + defaultScopes: [] ) { _id _createdAt @@ -142,6 +148,7 @@ mutation { pingedAt labels status + onboarding authMethods { _id enabled @@ -158,6 +165,7 @@ mutation { _createdAt resourceType resourceId + mode reason expiredAt projectName @@ -167,6 +175,7 @@ mutation { billingPlan } consoleAccessedAt + wafEnabled billingLimits { bandwidth storage @@ -180,6 +189,7 @@ mutation { oAuth2ServerEnabled oAuth2ServerAuthorizationUrl oAuth2ServerScopes + oAuth2ServerDefaultScopes oAuth2ServerAuthorizationDetailsTypes oAuth2ServerAccessTokenDuration oAuth2ServerRefreshTokenDuration diff --git a/examples/1.9.x/server-graphql/examples/project/update-password-dictionary-policy.md b/examples/1.9.x/server-graphql/examples/project/update-password-dictionary-policy.md index 547b637a9..f8e51c4a3 100644 --- a/examples/1.9.x/server-graphql/examples/project/update-password-dictionary-policy.md +++ b/examples/1.9.x/server-graphql/examples/project/update-password-dictionary-policy.md @@ -33,6 +33,7 @@ mutation { pingedAt labels status + onboarding authMethods { _id enabled @@ -49,6 +50,7 @@ mutation { _createdAt resourceType resourceId + mode reason expiredAt projectName @@ -58,6 +60,7 @@ mutation { billingPlan } consoleAccessedAt + wafEnabled billingLimits { bandwidth storage @@ -71,6 +74,7 @@ mutation { oAuth2ServerEnabled oAuth2ServerAuthorizationUrl oAuth2ServerScopes + oAuth2ServerDefaultScopes oAuth2ServerAuthorizationDetailsTypes oAuth2ServerAccessTokenDuration oAuth2ServerRefreshTokenDuration @@ -118,6 +122,7 @@ mutation { pingedAt labels status + onboarding authMethods { _id enabled @@ -134,6 +139,7 @@ mutation { _createdAt resourceType resourceId + mode reason expiredAt projectName @@ -143,6 +149,7 @@ mutation { billingPlan } consoleAccessedAt + wafEnabled billingLimits { bandwidth storage @@ -156,6 +163,7 @@ mutation { oAuth2ServerEnabled oAuth2ServerAuthorizationUrl oAuth2ServerScopes + oAuth2ServerDefaultScopes oAuth2ServerAuthorizationDetailsTypes oAuth2ServerAccessTokenDuration oAuth2ServerRefreshTokenDuration diff --git a/examples/1.9.x/server-graphql/examples/project/update-password-history-policy.md b/examples/1.9.x/server-graphql/examples/project/update-password-history-policy.md index db2151e53..1a27b4e80 100644 --- a/examples/1.9.x/server-graphql/examples/project/update-password-history-policy.md +++ b/examples/1.9.x/server-graphql/examples/project/update-password-history-policy.md @@ -33,6 +33,7 @@ mutation { pingedAt labels status + onboarding authMethods { _id enabled @@ -49,6 +50,7 @@ mutation { _createdAt resourceType resourceId + mode reason expiredAt projectName @@ -58,6 +60,7 @@ mutation { billingPlan } consoleAccessedAt + wafEnabled billingLimits { bandwidth storage @@ -71,6 +74,7 @@ mutation { oAuth2ServerEnabled oAuth2ServerAuthorizationUrl oAuth2ServerScopes + oAuth2ServerDefaultScopes oAuth2ServerAuthorizationDetailsTypes oAuth2ServerAccessTokenDuration oAuth2ServerRefreshTokenDuration @@ -118,6 +122,7 @@ mutation { pingedAt labels status + onboarding authMethods { _id enabled @@ -134,6 +139,7 @@ mutation { _createdAt resourceType resourceId + mode reason expiredAt projectName @@ -143,6 +149,7 @@ mutation { billingPlan } consoleAccessedAt + wafEnabled billingLimits { bandwidth storage @@ -156,6 +163,7 @@ mutation { oAuth2ServerEnabled oAuth2ServerAuthorizationUrl oAuth2ServerScopes + oAuth2ServerDefaultScopes oAuth2ServerAuthorizationDetailsTypes oAuth2ServerAccessTokenDuration oAuth2ServerRefreshTokenDuration diff --git a/examples/1.9.x/server-graphql/examples/project/update-password-personal-data-policy.md b/examples/1.9.x/server-graphql/examples/project/update-password-personal-data-policy.md index 5c09813c3..fc7fce378 100644 --- a/examples/1.9.x/server-graphql/examples/project/update-password-personal-data-policy.md +++ b/examples/1.9.x/server-graphql/examples/project/update-password-personal-data-policy.md @@ -33,6 +33,7 @@ mutation { pingedAt labels status + onboarding authMethods { _id enabled @@ -49,6 +50,7 @@ mutation { _createdAt resourceType resourceId + mode reason expiredAt projectName @@ -58,6 +60,7 @@ mutation { billingPlan } consoleAccessedAt + wafEnabled billingLimits { bandwidth storage @@ -71,6 +74,7 @@ mutation { oAuth2ServerEnabled oAuth2ServerAuthorizationUrl oAuth2ServerScopes + oAuth2ServerDefaultScopes oAuth2ServerAuthorizationDetailsTypes oAuth2ServerAccessTokenDuration oAuth2ServerRefreshTokenDuration @@ -118,6 +122,7 @@ mutation { pingedAt labels status + onboarding authMethods { _id enabled @@ -134,6 +139,7 @@ mutation { _createdAt resourceType resourceId + mode reason expiredAt projectName @@ -143,6 +149,7 @@ mutation { billingPlan } consoleAccessedAt + wafEnabled billingLimits { bandwidth storage @@ -156,6 +163,7 @@ mutation { oAuth2ServerEnabled oAuth2ServerAuthorizationUrl oAuth2ServerScopes + oAuth2ServerDefaultScopes oAuth2ServerAuthorizationDetailsTypes oAuth2ServerAccessTokenDuration oAuth2ServerRefreshTokenDuration diff --git a/examples/1.9.x/server-graphql/examples/project/update-protocol.md b/examples/1.9.x/server-graphql/examples/project/update-protocol.md index f2b7e8493..4bb7a0d53 100644 --- a/examples/1.9.x/server-graphql/examples/project/update-protocol.md +++ b/examples/1.9.x/server-graphql/examples/project/update-protocol.md @@ -34,6 +34,7 @@ mutation { pingedAt labels status + onboarding authMethods { _id enabled @@ -50,6 +51,7 @@ mutation { _createdAt resourceType resourceId + mode reason expiredAt projectName @@ -59,6 +61,7 @@ mutation { billingPlan } consoleAccessedAt + wafEnabled billingLimits { bandwidth storage @@ -72,6 +75,7 @@ mutation { oAuth2ServerEnabled oAuth2ServerAuthorizationUrl oAuth2ServerScopes + oAuth2ServerDefaultScopes oAuth2ServerAuthorizationDetailsTypes oAuth2ServerAccessTokenDuration oAuth2ServerRefreshTokenDuration @@ -120,6 +124,7 @@ mutation { pingedAt labels status + onboarding authMethods { _id enabled @@ -136,6 +141,7 @@ mutation { _createdAt resourceType resourceId + mode reason expiredAt projectName @@ -145,6 +151,7 @@ mutation { billingPlan } consoleAccessedAt + wafEnabled billingLimits { bandwidth storage @@ -158,6 +165,7 @@ mutation { oAuth2ServerEnabled oAuth2ServerAuthorizationUrl oAuth2ServerScopes + oAuth2ServerDefaultScopes oAuth2ServerAuthorizationDetailsTypes oAuth2ServerAccessTokenDuration oAuth2ServerRefreshTokenDuration diff --git a/examples/1.9.x/server-graphql/examples/project/update-service.md b/examples/1.9.x/server-graphql/examples/project/update-service.md index 093d0db75..e6eea998e 100644 --- a/examples/1.9.x/server-graphql/examples/project/update-service.md +++ b/examples/1.9.x/server-graphql/examples/project/update-service.md @@ -34,6 +34,7 @@ mutation { pingedAt labels status + onboarding authMethods { _id enabled @@ -50,6 +51,7 @@ mutation { _createdAt resourceType resourceId + mode reason expiredAt projectName @@ -59,6 +61,7 @@ mutation { billingPlan } consoleAccessedAt + wafEnabled billingLimits { bandwidth storage @@ -72,6 +75,7 @@ mutation { oAuth2ServerEnabled oAuth2ServerAuthorizationUrl oAuth2ServerScopes + oAuth2ServerDefaultScopes oAuth2ServerAuthorizationDetailsTypes oAuth2ServerAccessTokenDuration oAuth2ServerRefreshTokenDuration @@ -120,6 +124,7 @@ mutation { pingedAt labels status + onboarding authMethods { _id enabled @@ -136,6 +141,7 @@ mutation { _createdAt resourceType resourceId + mode reason expiredAt projectName @@ -145,6 +151,7 @@ mutation { billingPlan } consoleAccessedAt + wafEnabled billingLimits { bandwidth storage @@ -158,6 +165,7 @@ mutation { oAuth2ServerEnabled oAuth2ServerAuthorizationUrl oAuth2ServerScopes + oAuth2ServerDefaultScopes oAuth2ServerAuthorizationDetailsTypes oAuth2ServerAccessTokenDuration oAuth2ServerRefreshTokenDuration diff --git a/examples/1.9.x/server-graphql/examples/project/update-session-alert-policy.md b/examples/1.9.x/server-graphql/examples/project/update-session-alert-policy.md index a852f9352..6effeff53 100644 --- a/examples/1.9.x/server-graphql/examples/project/update-session-alert-policy.md +++ b/examples/1.9.x/server-graphql/examples/project/update-session-alert-policy.md @@ -33,6 +33,7 @@ mutation { pingedAt labels status + onboarding authMethods { _id enabled @@ -49,6 +50,7 @@ mutation { _createdAt resourceType resourceId + mode reason expiredAt projectName @@ -58,6 +60,7 @@ mutation { billingPlan } consoleAccessedAt + wafEnabled billingLimits { bandwidth storage @@ -71,6 +74,7 @@ mutation { oAuth2ServerEnabled oAuth2ServerAuthorizationUrl oAuth2ServerScopes + oAuth2ServerDefaultScopes oAuth2ServerAuthorizationDetailsTypes oAuth2ServerAccessTokenDuration oAuth2ServerRefreshTokenDuration @@ -118,6 +122,7 @@ mutation { pingedAt labels status + onboarding authMethods { _id enabled @@ -134,6 +139,7 @@ mutation { _createdAt resourceType resourceId + mode reason expiredAt projectName @@ -143,6 +149,7 @@ mutation { billingPlan } consoleAccessedAt + wafEnabled billingLimits { bandwidth storage @@ -156,6 +163,7 @@ mutation { oAuth2ServerEnabled oAuth2ServerAuthorizationUrl oAuth2ServerScopes + oAuth2ServerDefaultScopes oAuth2ServerAuthorizationDetailsTypes oAuth2ServerAccessTokenDuration oAuth2ServerRefreshTokenDuration diff --git a/examples/1.9.x/server-graphql/examples/project/update-session-duration-policy.md b/examples/1.9.x/server-graphql/examples/project/update-session-duration-policy.md index f3920aa38..ecc66a1af 100644 --- a/examples/1.9.x/server-graphql/examples/project/update-session-duration-policy.md +++ b/examples/1.9.x/server-graphql/examples/project/update-session-duration-policy.md @@ -33,6 +33,7 @@ mutation { pingedAt labels status + onboarding authMethods { _id enabled @@ -49,6 +50,7 @@ mutation { _createdAt resourceType resourceId + mode reason expiredAt projectName @@ -58,6 +60,7 @@ mutation { billingPlan } consoleAccessedAt + wafEnabled billingLimits { bandwidth storage @@ -71,6 +74,7 @@ mutation { oAuth2ServerEnabled oAuth2ServerAuthorizationUrl oAuth2ServerScopes + oAuth2ServerDefaultScopes oAuth2ServerAuthorizationDetailsTypes oAuth2ServerAccessTokenDuration oAuth2ServerRefreshTokenDuration @@ -118,6 +122,7 @@ mutation { pingedAt labels status + onboarding authMethods { _id enabled @@ -134,6 +139,7 @@ mutation { _createdAt resourceType resourceId + mode reason expiredAt projectName @@ -143,6 +149,7 @@ mutation { billingPlan } consoleAccessedAt + wafEnabled billingLimits { bandwidth storage @@ -156,6 +163,7 @@ mutation { oAuth2ServerEnabled oAuth2ServerAuthorizationUrl oAuth2ServerScopes + oAuth2ServerDefaultScopes oAuth2ServerAuthorizationDetailsTypes oAuth2ServerAccessTokenDuration oAuth2ServerRefreshTokenDuration diff --git a/examples/1.9.x/server-graphql/examples/project/update-session-invalidation-policy.md b/examples/1.9.x/server-graphql/examples/project/update-session-invalidation-policy.md index cdf8bd619..8a568cbd7 100644 --- a/examples/1.9.x/server-graphql/examples/project/update-session-invalidation-policy.md +++ b/examples/1.9.x/server-graphql/examples/project/update-session-invalidation-policy.md @@ -33,6 +33,7 @@ mutation { pingedAt labels status + onboarding authMethods { _id enabled @@ -49,6 +50,7 @@ mutation { _createdAt resourceType resourceId + mode reason expiredAt projectName @@ -58,6 +60,7 @@ mutation { billingPlan } consoleAccessedAt + wafEnabled billingLimits { bandwidth storage @@ -71,6 +74,7 @@ mutation { oAuth2ServerEnabled oAuth2ServerAuthorizationUrl oAuth2ServerScopes + oAuth2ServerDefaultScopes oAuth2ServerAuthorizationDetailsTypes oAuth2ServerAccessTokenDuration oAuth2ServerRefreshTokenDuration @@ -118,6 +122,7 @@ mutation { pingedAt labels status + onboarding authMethods { _id enabled @@ -134,6 +139,7 @@ mutation { _createdAt resourceType resourceId + mode reason expiredAt projectName @@ -143,6 +149,7 @@ mutation { billingPlan } consoleAccessedAt + wafEnabled billingLimits { bandwidth storage @@ -156,6 +163,7 @@ mutation { oAuth2ServerEnabled oAuth2ServerAuthorizationUrl oAuth2ServerScopes + oAuth2ServerDefaultScopes oAuth2ServerAuthorizationDetailsTypes oAuth2ServerAccessTokenDuration oAuth2ServerRefreshTokenDuration diff --git a/examples/1.9.x/server-graphql/examples/project/update-session-limit-policy.md b/examples/1.9.x/server-graphql/examples/project/update-session-limit-policy.md index e274f3a87..bd61f97f8 100644 --- a/examples/1.9.x/server-graphql/examples/project/update-session-limit-policy.md +++ b/examples/1.9.x/server-graphql/examples/project/update-session-limit-policy.md @@ -33,6 +33,7 @@ mutation { pingedAt labels status + onboarding authMethods { _id enabled @@ -49,6 +50,7 @@ mutation { _createdAt resourceType resourceId + mode reason expiredAt projectName @@ -58,6 +60,7 @@ mutation { billingPlan } consoleAccessedAt + wafEnabled billingLimits { bandwidth storage @@ -71,6 +74,7 @@ mutation { oAuth2ServerEnabled oAuth2ServerAuthorizationUrl oAuth2ServerScopes + oAuth2ServerDefaultScopes oAuth2ServerAuthorizationDetailsTypes oAuth2ServerAccessTokenDuration oAuth2ServerRefreshTokenDuration @@ -118,6 +122,7 @@ mutation { pingedAt labels status + onboarding authMethods { _id enabled @@ -134,6 +139,7 @@ mutation { _createdAt resourceType resourceId + mode reason expiredAt projectName @@ -143,6 +149,7 @@ mutation { billingPlan } consoleAccessedAt + wafEnabled billingLimits { bandwidth storage @@ -156,6 +163,7 @@ mutation { oAuth2ServerEnabled oAuth2ServerAuthorizationUrl oAuth2ServerScopes + oAuth2ServerDefaultScopes oAuth2ServerAuthorizationDetailsTypes oAuth2ServerAccessTokenDuration oAuth2ServerRefreshTokenDuration diff --git a/examples/1.9.x/server-graphql/examples/project/update-smtp.md b/examples/1.9.x/server-graphql/examples/project/update-smtp.md index 1db2ad59a..3c9494f4a 100644 --- a/examples/1.9.x/server-graphql/examples/project/update-smtp.md +++ b/examples/1.9.x/server-graphql/examples/project/update-smtp.md @@ -42,6 +42,7 @@ mutation { pingedAt labels status + onboarding authMethods { _id enabled @@ -58,6 +59,7 @@ mutation { _createdAt resourceType resourceId + mode reason expiredAt projectName @@ -67,6 +69,7 @@ mutation { billingPlan } consoleAccessedAt + wafEnabled billingLimits { bandwidth storage @@ -80,6 +83,7 @@ mutation { oAuth2ServerEnabled oAuth2ServerAuthorizationUrl oAuth2ServerScopes + oAuth2ServerDefaultScopes oAuth2ServerAuthorizationDetailsTypes oAuth2ServerAccessTokenDuration oAuth2ServerRefreshTokenDuration @@ -136,6 +140,7 @@ mutation { pingedAt labels status + onboarding authMethods { _id enabled @@ -152,6 +157,7 @@ mutation { _createdAt resourceType resourceId + mode reason expiredAt projectName @@ -161,6 +167,7 @@ mutation { billingPlan } consoleAccessedAt + wafEnabled billingLimits { bandwidth storage @@ -174,6 +181,7 @@ mutation { oAuth2ServerEnabled oAuth2ServerAuthorizationUrl oAuth2ServerScopes + oAuth2ServerDefaultScopes oAuth2ServerAuthorizationDetailsTypes oAuth2ServerAccessTokenDuration oAuth2ServerRefreshTokenDuration diff --git a/examples/1.9.x/server-graphql/examples/project/update-user-limit-policy.md b/examples/1.9.x/server-graphql/examples/project/update-user-limit-policy.md index 8b3112b0e..916ace842 100644 --- a/examples/1.9.x/server-graphql/examples/project/update-user-limit-policy.md +++ b/examples/1.9.x/server-graphql/examples/project/update-user-limit-policy.md @@ -33,6 +33,7 @@ mutation { pingedAt labels status + onboarding authMethods { _id enabled @@ -49,6 +50,7 @@ mutation { _createdAt resourceType resourceId + mode reason expiredAt projectName @@ -58,6 +60,7 @@ mutation { billingPlan } consoleAccessedAt + wafEnabled billingLimits { bandwidth storage @@ -71,6 +74,7 @@ mutation { oAuth2ServerEnabled oAuth2ServerAuthorizationUrl oAuth2ServerScopes + oAuth2ServerDefaultScopes oAuth2ServerAuthorizationDetailsTypes oAuth2ServerAccessTokenDuration oAuth2ServerRefreshTokenDuration @@ -118,6 +122,7 @@ mutation { pingedAt labels status + onboarding authMethods { _id enabled @@ -134,6 +139,7 @@ mutation { _createdAt resourceType resourceId + mode reason expiredAt projectName @@ -143,6 +149,7 @@ mutation { billingPlan } consoleAccessedAt + wafEnabled billingLimits { bandwidth storage @@ -156,6 +163,7 @@ mutation { oAuth2ServerEnabled oAuth2ServerAuthorizationUrl oAuth2ServerScopes + oAuth2ServerDefaultScopes oAuth2ServerAuthorizationDetailsTypes oAuth2ServerAccessTokenDuration oAuth2ServerRefreshTokenDuration diff --git a/examples/1.9.x/server-graphql/examples/sites/get-deployment-download.md b/examples/1.9.x/server-graphql/examples/sites/get-deployment-download.md index 38b471a10..df3ee5dd8 100644 --- a/examples/1.9.x/server-graphql/examples/sites/get-deployment-download.md +++ b/examples/1.9.x/server-graphql/examples/sites/get-deployment-download.md @@ -3,7 +3,8 @@ query { sitesGetDeploymentDownload( siteId: "", deploymentId: "", - type: "source" + type: "source", + token: "" ) { status } diff --git a/examples/1.9.x/server-graphql/examples/tablesdb/create-failover.md b/examples/1.9.x/server-graphql/examples/tablesdb/create-failover.md new file mode 100644 index 000000000..d29983855 --- /dev/null +++ b/examples/1.9.x/server-graphql/examples/tablesdb/create-failover.md @@ -0,0 +1,114 @@ +```graphql +mutation { + tablesDBCreateFailover( + databaseId: "", + targetReplicaId: "" + ) { + _id + _createdAt + _updatedAt + projectId + name + api + engine + version + specification + backend + hostname + connectionPort + connectionUser + connectionPassword + connectionString + ssl + status + containerStatus + lastAccessedAt + idleUntil + lifecycleState + idleTimeoutMinutes + cpu + memory + storage + storageClass + storageMaxGb + nodePool + replicas + syncMode + crossRegionReplicas + networkMaxConnections + networkIdleTimeoutSeconds + networkIPAllowlist + backupEnabled + pitr + pitrRetentionDays + storageAutoscaling + storageAutoscalingThresholdPercent + storageAutoscalingMaxGb + maintenanceWindowDay + maintenanceWindowHourUtc + metricsEnabled + sqlApiEnabled + sqlApiAllowedStatements + sqlApiMaxRows + sqlApiMaxBytes + sqlApiTimeoutSeconds + error + } +} +mutation { + tablesDBCreateFailover( + databaseId: "", + targetReplicaId: "" + ) { + _id + _createdAt + _updatedAt + projectId + name + api + engine + version + specification + backend + hostname + connectionPort + connectionUser + connectionPassword + connectionString + ssl + status + containerStatus + lastAccessedAt + idleUntil + lifecycleState + idleTimeoutMinutes + cpu + memory + storage + storageClass + storageMaxGb + nodePool + replicas + syncMode + crossRegionReplicas + networkMaxConnections + networkIdleTimeoutSeconds + networkIPAllowlist + backupEnabled + pitr + pitrRetentionDays + storageAutoscaling + storageAutoscalingThresholdPercent + storageAutoscalingMaxGb + maintenanceWindowDay + maintenanceWindowHourUtc + metricsEnabled + sqlApiEnabled + sqlApiAllowedStatements + sqlApiMaxRows + sqlApiMaxBytes + sqlApiTimeoutSeconds + error + } +} +``` diff --git a/examples/1.9.x/server-graphql/examples/tablesdb/create.md b/examples/1.9.x/server-graphql/examples/tablesdb/create.md index bb2e69745..edb32e134 100644 --- a/examples/1.9.x/server-graphql/examples/tablesdb/create.md +++ b/examples/1.9.x/server-graphql/examples/tablesdb/create.md @@ -4,7 +4,8 @@ mutation { databaseId: "", name: "", enabled: false, - dedicatedDatabaseId: "" + specification: "serverless", + replicas: 0 ) { _id name @@ -12,6 +13,10 @@ mutation { _updatedAt enabled type + status + engine + specification + replicas policies { _id name @@ -47,7 +52,8 @@ mutation { databaseId: "", name: "", enabled: false, - dedicatedDatabaseId: "" + specification: "serverless", + replicas: 0 ) { _id name @@ -55,6 +61,10 @@ mutation { _updatedAt enabled type + status + engine + specification + replicas policies { _id name diff --git a/examples/1.9.x/server-graphql/examples/tablesdb/get-replicas.md b/examples/1.9.x/server-graphql/examples/tablesdb/get-replicas.md new file mode 100644 index 000000000..2703da086 --- /dev/null +++ b/examples/1.9.x/server-graphql/examples/tablesdb/get-replicas.md @@ -0,0 +1,16 @@ +```graphql +query { + tablesDBGetReplicas( + databaseId: "" + ) { + replicas + syncMode + members { + _id + role + status + lagSeconds + } + } +} +``` diff --git a/examples/1.9.x/server-graphql/examples/tablesdb/get-status.md b/examples/1.9.x/server-graphql/examples/tablesdb/get-status.md new file mode 100644 index 000000000..d5154776d --- /dev/null +++ b/examples/1.9.x/server-graphql/examples/tablesdb/get-status.md @@ -0,0 +1,29 @@ +```graphql +query { + tablesDBGetStatus( + databaseId: "" + ) { + health + ready + engine + version + uptime + connections { + current + max + } + replicas { + index + role + healthy + lagSeconds + } + volumes { + path + usedPercent + available + mounted + } + } +} +``` diff --git a/examples/1.9.x/server-graphql/examples/tablesdb/get.md b/examples/1.9.x/server-graphql/examples/tablesdb/get.md index ccb444b16..2b281e3a2 100644 --- a/examples/1.9.x/server-graphql/examples/tablesdb/get.md +++ b/examples/1.9.x/server-graphql/examples/tablesdb/get.md @@ -9,6 +9,10 @@ query { _updatedAt enabled type + status + engine + specification + replicas policies { _id name diff --git a/examples/1.9.x/server-graphql/examples/tablesdb/list-specifications.md b/examples/1.9.x/server-graphql/examples/tablesdb/list-specifications.md new file mode 100644 index 000000000..2c25b2c80 --- /dev/null +++ b/examples/1.9.x/server-graphql/examples/tablesdb/list-specifications.md @@ -0,0 +1,25 @@ +```graphql +query { + tablesDBListSpecifications { + specifications { + slug + name + price + cpu + memory + maxConnections + includedStorage + includedBandwidth + enabled + } + total + pricing { + storageOverageRate + bandwidthOverageRate + replicaRate + crossRegionReplicaRate + pitrRate + } + } +} +``` diff --git a/examples/1.9.x/server-graphql/examples/tablesdb/list.md b/examples/1.9.x/server-graphql/examples/tablesdb/list.md index 9b527d691..1941070cf 100644 --- a/examples/1.9.x/server-graphql/examples/tablesdb/list.md +++ b/examples/1.9.x/server-graphql/examples/tablesdb/list.md @@ -13,6 +13,10 @@ query { _updatedAt enabled type + status + engine + specification + replicas policies { _id name diff --git a/examples/1.9.x/server-graphql/examples/tablesdb/update.md b/examples/1.9.x/server-graphql/examples/tablesdb/update.md index 02dd4e011..b25a56d0b 100644 --- a/examples/1.9.x/server-graphql/examples/tablesdb/update.md +++ b/examples/1.9.x/server-graphql/examples/tablesdb/update.md @@ -3,7 +3,8 @@ mutation { tablesDBUpdate( databaseId: "", name: "", - enabled: false + enabled: false, + replicas: 0 ) { _id name @@ -11,6 +12,10 @@ mutation { _updatedAt enabled type + status + engine + specification + replicas policies { _id name @@ -45,7 +50,8 @@ mutation { tablesDBUpdate( databaseId: "", name: "", - enabled: false + enabled: false, + replicas: 0 ) { _id name @@ -53,6 +59,10 @@ mutation { _updatedAt enabled type + status + engine + specification + replicas policies { _id name diff --git a/examples/1.9.x/server-graphql/examples/usage/list-events.md b/examples/1.9.x/server-graphql/examples/usage/list-events.md index aef0bcc60..007c99bc0 100644 --- a/examples/1.9.x/server-graphql/examples/usage/list-events.md +++ b/examples/1.9.x/server-graphql/examples/usage/list-events.md @@ -2,8 +2,7 @@ query { usageListEvents( metrics: [], - resource: "", - resourceId: "", + queries: [], interval: "1m", dimensions: [], startAt: "2020-10-15T06:38:00.000+00:00", @@ -26,13 +25,14 @@ query { country region hostname + ip osName clientType clientName deviceName teamId resourceId - resource + resourceType } } } diff --git a/examples/1.9.x/server-graphql/examples/usage/list-gauges.md b/examples/1.9.x/server-graphql/examples/usage/list-gauges.md index 77a030018..f75f56cd4 100644 --- a/examples/1.9.x/server-graphql/examples/usage/list-gauges.md +++ b/examples/1.9.x/server-graphql/examples/usage/list-gauges.md @@ -2,8 +2,7 @@ query { usageListGauges( metrics: [], - resourceId: "", - teamId: "", + queries: [], interval: "1m", dimensions: [], startAt: "2020-10-15T06:38:00.000+00:00", @@ -26,13 +25,14 @@ query { country region hostname + ip osName clientType clientName deviceName teamId resourceId - resource + resourceType } } } diff --git a/examples/1.9.x/server-kotlin/java/account/delete-consent-token.md b/examples/1.9.x/server-kotlin/java/account/delete-consent-token.md new file mode 100644 index 000000000..7cc051374 --- /dev/null +++ b/examples/1.9.x/server-kotlin/java/account/delete-consent-token.md @@ -0,0 +1,26 @@ +```java +import io.appwrite.Client; +import io.appwrite.coroutines.CoroutineCallback; +import io.appwrite.services.Account; + +Client client = new Client() + .setEndpoint("https://.cloud.appwrite.io/v1") // Your API Endpoint + .setProject("") // Your project ID + .setSession(""); // The user session to authenticate with + +Account account = new Account(client); + +account.deleteConsentToken( + "", // consentId + "", // tokenId + new CoroutineCallback<>((result, error) -> { + if (error != null) { + error.printStackTrace(); + return; + } + + System.out.println(result); + }) +); + +``` diff --git a/examples/1.9.x/server-kotlin/java/account/delete-consent.md b/examples/1.9.x/server-kotlin/java/account/delete-consent.md new file mode 100644 index 000000000..7df5d3941 --- /dev/null +++ b/examples/1.9.x/server-kotlin/java/account/delete-consent.md @@ -0,0 +1,25 @@ +```java +import io.appwrite.Client; +import io.appwrite.coroutines.CoroutineCallback; +import io.appwrite.services.Account; + +Client client = new Client() + .setEndpoint("https://.cloud.appwrite.io/v1") // Your API Endpoint + .setProject("") // Your project ID + .setSession(""); // The user session to authenticate with + +Account account = new Account(client); + +account.deleteConsent( + "", // consentId + new CoroutineCallback<>((result, error) -> { + if (error != null) { + error.printStackTrace(); + return; + } + + System.out.println(result); + }) +); + +``` diff --git a/examples/1.9.x/server-kotlin/java/account/get-consent-token.md b/examples/1.9.x/server-kotlin/java/account/get-consent-token.md new file mode 100644 index 000000000..348faf81f --- /dev/null +++ b/examples/1.9.x/server-kotlin/java/account/get-consent-token.md @@ -0,0 +1,26 @@ +```java +import io.appwrite.Client; +import io.appwrite.coroutines.CoroutineCallback; +import io.appwrite.services.Account; + +Client client = new Client() + .setEndpoint("https://.cloud.appwrite.io/v1") // Your API Endpoint + .setProject("") // Your project ID + .setSession(""); // The user session to authenticate with + +Account account = new Account(client); + +account.getConsentToken( + "", // consentId + "", // tokenId + new CoroutineCallback<>((result, error) -> { + if (error != null) { + error.printStackTrace(); + return; + } + + System.out.println(result); + }) +); + +``` diff --git a/examples/1.9.x/server-kotlin/java/account/get-consent.md b/examples/1.9.x/server-kotlin/java/account/get-consent.md new file mode 100644 index 000000000..350b98321 --- /dev/null +++ b/examples/1.9.x/server-kotlin/java/account/get-consent.md @@ -0,0 +1,25 @@ +```java +import io.appwrite.Client; +import io.appwrite.coroutines.CoroutineCallback; +import io.appwrite.services.Account; + +Client client = new Client() + .setEndpoint("https://.cloud.appwrite.io/v1") // Your API Endpoint + .setProject("") // Your project ID + .setSession(""); // The user session to authenticate with + +Account account = new Account(client); + +account.getConsent( + "", // consentId + new CoroutineCallback<>((result, error) -> { + if (error != null) { + error.printStackTrace(); + return; + } + + System.out.println(result); + }) +); + +``` diff --git a/examples/1.9.x/server-kotlin/java/account/list-consent-tokens.md b/examples/1.9.x/server-kotlin/java/account/list-consent-tokens.md new file mode 100644 index 000000000..347b20a30 --- /dev/null +++ b/examples/1.9.x/server-kotlin/java/account/list-consent-tokens.md @@ -0,0 +1,27 @@ +```java +import io.appwrite.Client; +import io.appwrite.coroutines.CoroutineCallback; +import io.appwrite.services.Account; + +Client client = new Client() + .setEndpoint("https://.cloud.appwrite.io/v1") // Your API Endpoint + .setProject("") // Your project ID + .setSession(""); // The user session to authenticate with + +Account account = new Account(client); + +account.listConsentTokens( + "", // consentId + List.of(), // queries (optional) + false, // total (optional) + new CoroutineCallback<>((result, error) -> { + if (error != null) { + error.printStackTrace(); + return; + } + + System.out.println(result); + }) +); + +``` diff --git a/examples/1.9.x/server-kotlin/java/account/list-consents.md b/examples/1.9.x/server-kotlin/java/account/list-consents.md new file mode 100644 index 000000000..e090c7f8e --- /dev/null +++ b/examples/1.9.x/server-kotlin/java/account/list-consents.md @@ -0,0 +1,26 @@ +```java +import io.appwrite.Client; +import io.appwrite.coroutines.CoroutineCallback; +import io.appwrite.services.Account; + +Client client = new Client() + .setEndpoint("https://.cloud.appwrite.io/v1") // Your API Endpoint + .setProject("") // Your project ID + .setSession(""); // The user session to authenticate with + +Account account = new Account(client); + +account.listConsents( + List.of(), // queries (optional) + false, // total (optional) + new CoroutineCallback<>((result, error) -> { + if (error != null) { + error.printStackTrace(); + return; + } + + System.out.println(result); + }) +); + +``` diff --git a/examples/1.9.x/server-kotlin/java/functions/get-deployment-download.md b/examples/1.9.x/server-kotlin/java/functions/get-deployment-download.md index 59de9f04c..ea9e5d886 100644 --- a/examples/1.9.x/server-kotlin/java/functions/get-deployment-download.md +++ b/examples/1.9.x/server-kotlin/java/functions/get-deployment-download.md @@ -15,6 +15,7 @@ functions.getDeploymentDownload( "", // functionId "", // deploymentId DeploymentDownloadType.SOURCE, // type (optional) + "", // token (optional) new CoroutineCallback<>((result, error) -> { if (error != null) { error.printStackTrace(); diff --git a/examples/1.9.x/server-kotlin/java/health/get-geo-premium.md b/examples/1.9.x/server-kotlin/java/health/get-geo-premium.md new file mode 100644 index 000000000..1a80b0c53 --- /dev/null +++ b/examples/1.9.x/server-kotlin/java/health/get-geo-premium.md @@ -0,0 +1,21 @@ +```java +import io.appwrite.Client; +import io.appwrite.coroutines.CoroutineCallback; +import io.appwrite.services.Health; + +Client client = new Client() + .setEndpoint("https://.cloud.appwrite.io/v1") // Your API Endpoint + .setProject("") // Your project ID + .setKey(""); // Your secret API key + +Health health = new Health(client); + +health.getGeoPremium(new CoroutineCallback<>((result, error) -> { + if (error != null) { + error.printStackTrace(); + return; + } + + System.out.println(result); +})); +``` diff --git a/examples/1.9.x/server-kotlin/java/health/get-geo.md b/examples/1.9.x/server-kotlin/java/health/get-geo.md new file mode 100644 index 000000000..127a6e0c9 --- /dev/null +++ b/examples/1.9.x/server-kotlin/java/health/get-geo.md @@ -0,0 +1,21 @@ +```java +import io.appwrite.Client; +import io.appwrite.coroutines.CoroutineCallback; +import io.appwrite.services.Health; + +Client client = new Client() + .setEndpoint("https://.cloud.appwrite.io/v1") // Your API Endpoint + .setProject("") // Your project ID + .setKey(""); // Your secret API key + +Health health = new Health(client); + +health.getGeo(new CoroutineCallback<>((result, error) -> { + if (error != null) { + error.printStackTrace(); + return; + } + + System.out.println(result); +})); +``` diff --git a/examples/1.9.x/server-kotlin/java/health/get-queue-notifications.md b/examples/1.9.x/server-kotlin/java/health/get-queue-notifications.md new file mode 100644 index 000000000..f97101db4 --- /dev/null +++ b/examples/1.9.x/server-kotlin/java/health/get-queue-notifications.md @@ -0,0 +1,25 @@ +```java +import io.appwrite.Client; +import io.appwrite.coroutines.CoroutineCallback; +import io.appwrite.services.Health; + +Client client = new Client() + .setEndpoint("https://.cloud.appwrite.io/v1") // Your API Endpoint + .setProject("") // Your project ID + .setKey(""); // Your secret API key + +Health health = new Health(client); + +health.getQueueNotifications( + 0, // threshold (optional) + new CoroutineCallback<>((result, error) -> { + if (error != null) { + error.printStackTrace(); + return; + } + + System.out.println(result); + }) +); + +``` diff --git a/examples/1.9.x/server-kotlin/java/organization/create-membership.md b/examples/1.9.x/server-kotlin/java/organization/create-membership.md new file mode 100644 index 000000000..9ab66c569 --- /dev/null +++ b/examples/1.9.x/server-kotlin/java/organization/create-membership.md @@ -0,0 +1,30 @@ +```java +import io.appwrite.Client; +import io.appwrite.coroutines.CoroutineCallback; +import io.appwrite.services.Organization; + +Client client = new Client() + .setEndpoint("https://.cloud.appwrite.io/v1") // Your API Endpoint + .setProject("") // Your project ID + .setKey(""); // Your secret API key + +Organization organization = new Organization(client); + +organization.createMembership( + List.of(), // roles + "email@example.com", // email (optional) + "", // userId (optional) + "+12065550100", // phone (optional) + "https://example.com", // url (optional) + "", // name (optional) + new CoroutineCallback<>((result, error) -> { + if (error != null) { + error.printStackTrace(); + return; + } + + System.out.println(result); + }) +); + +``` diff --git a/examples/1.9.x/server-kotlin/java/organization/delete-membership.md b/examples/1.9.x/server-kotlin/java/organization/delete-membership.md new file mode 100644 index 000000000..9f95bd467 --- /dev/null +++ b/examples/1.9.x/server-kotlin/java/organization/delete-membership.md @@ -0,0 +1,25 @@ +```java +import io.appwrite.Client; +import io.appwrite.coroutines.CoroutineCallback; +import io.appwrite.services.Organization; + +Client client = new Client() + .setEndpoint("https://.cloud.appwrite.io/v1") // Your API Endpoint + .setProject("") // Your project ID + .setKey(""); // Your secret API key + +Organization organization = new Organization(client); + +organization.deleteMembership( + "", // membershipId + new CoroutineCallback<>((result, error) -> { + if (error != null) { + error.printStackTrace(); + return; + } + + System.out.println(result); + }) +); + +``` diff --git a/examples/1.9.x/server-kotlin/java/organization/delete.md b/examples/1.9.x/server-kotlin/java/organization/delete.md new file mode 100644 index 000000000..30561c853 --- /dev/null +++ b/examples/1.9.x/server-kotlin/java/organization/delete.md @@ -0,0 +1,21 @@ +```java +import io.appwrite.Client; +import io.appwrite.coroutines.CoroutineCallback; +import io.appwrite.services.Organization; + +Client client = new Client() + .setEndpoint("https://.cloud.appwrite.io/v1") // Your API Endpoint + .setProject("") // Your project ID + .setKey(""); // Your secret API key + +Organization organization = new Organization(client); + +organization.delete(new CoroutineCallback<>((result, error) -> { + if (error != null) { + error.printStackTrace(); + return; + } + + System.out.println(result); +})); +``` diff --git a/examples/1.9.x/server-kotlin/java/organization/get-membership.md b/examples/1.9.x/server-kotlin/java/organization/get-membership.md new file mode 100644 index 000000000..3f87b5fbe --- /dev/null +++ b/examples/1.9.x/server-kotlin/java/organization/get-membership.md @@ -0,0 +1,25 @@ +```java +import io.appwrite.Client; +import io.appwrite.coroutines.CoroutineCallback; +import io.appwrite.services.Organization; + +Client client = new Client() + .setEndpoint("https://.cloud.appwrite.io/v1") // Your API Endpoint + .setProject("") // Your project ID + .setKey(""); // Your secret API key + +Organization organization = new Organization(client); + +organization.getMembership( + "", // membershipId + new CoroutineCallback<>((result, error) -> { + if (error != null) { + error.printStackTrace(); + return; + } + + System.out.println(result); + }) +); + +``` diff --git a/examples/1.9.x/server-kotlin/java/organization/get.md b/examples/1.9.x/server-kotlin/java/organization/get.md new file mode 100644 index 000000000..a7aa3d402 --- /dev/null +++ b/examples/1.9.x/server-kotlin/java/organization/get.md @@ -0,0 +1,21 @@ +```java +import io.appwrite.Client; +import io.appwrite.coroutines.CoroutineCallback; +import io.appwrite.services.Organization; + +Client client = new Client() + .setEndpoint("https://.cloud.appwrite.io/v1") // Your API Endpoint + .setProject("") // Your project ID + .setKey(""); // Your secret API key + +Organization organization = new Organization(client); + +organization.get(new CoroutineCallback<>((result, error) -> { + if (error != null) { + error.printStackTrace(); + return; + } + + System.out.println(result); +})); +``` diff --git a/examples/1.9.x/server-kotlin/java/organization/list-memberships.md b/examples/1.9.x/server-kotlin/java/organization/list-memberships.md new file mode 100644 index 000000000..f988ac1d3 --- /dev/null +++ b/examples/1.9.x/server-kotlin/java/organization/list-memberships.md @@ -0,0 +1,27 @@ +```java +import io.appwrite.Client; +import io.appwrite.coroutines.CoroutineCallback; +import io.appwrite.services.Organization; + +Client client = new Client() + .setEndpoint("https://.cloud.appwrite.io/v1") // Your API Endpoint + .setProject("") // Your project ID + .setKey(""); // Your secret API key + +Organization organization = new Organization(client); + +organization.listMemberships( + List.of(), // queries (optional) + "", // search (optional) + false, // total (optional) + new CoroutineCallback<>((result, error) -> { + if (error != null) { + error.printStackTrace(); + return; + } + + System.out.println(result); + }) +); + +``` diff --git a/examples/1.9.x/server-kotlin/java/organization/update-membership.md b/examples/1.9.x/server-kotlin/java/organization/update-membership.md new file mode 100644 index 000000000..5096b889a --- /dev/null +++ b/examples/1.9.x/server-kotlin/java/organization/update-membership.md @@ -0,0 +1,26 @@ +```java +import io.appwrite.Client; +import io.appwrite.coroutines.CoroutineCallback; +import io.appwrite.services.Organization; + +Client client = new Client() + .setEndpoint("https://.cloud.appwrite.io/v1") // Your API Endpoint + .setProject("") // Your project ID + .setKey(""); // Your secret API key + +Organization organization = new Organization(client); + +organization.updateMembership( + "", // membershipId + List.of(), // roles + new CoroutineCallback<>((result, error) -> { + if (error != null) { + error.printStackTrace(); + return; + } + + System.out.println(result); + }) +); + +``` diff --git a/examples/1.9.x/server-kotlin/java/organization/update.md b/examples/1.9.x/server-kotlin/java/organization/update.md new file mode 100644 index 000000000..60db9f16c --- /dev/null +++ b/examples/1.9.x/server-kotlin/java/organization/update.md @@ -0,0 +1,25 @@ +```java +import io.appwrite.Client; +import io.appwrite.coroutines.CoroutineCallback; +import io.appwrite.services.Organization; + +Client client = new Client() + .setEndpoint("https://.cloud.appwrite.io/v1") // Your API Endpoint + .setProject("") // Your project ID + .setKey(""); // Your secret API key + +Organization organization = new Organization(client); + +organization.update( + "", // name + new CoroutineCallback<>((result, error) -> { + if (error != null) { + error.printStackTrace(); + return; + } + + System.out.println(result); + }) +); + +``` diff --git a/examples/1.9.x/server-kotlin/java/project/update-o-auth-2-appwrite.md b/examples/1.9.x/server-kotlin/java/project/update-o-auth-2-appwrite.md new file mode 100644 index 000000000..d54371801 --- /dev/null +++ b/examples/1.9.x/server-kotlin/java/project/update-o-auth-2-appwrite.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://.cloud.appwrite.io/v1") // Your API Endpoint + .setProject("") // Your project ID + .setKey(""); // Your secret API key + +Project project = new Project(client); + +project.updateOAuth2Appwrite( + "", // clientId (optional) + "", // clientSecret (optional) + false, // enabled (optional) + new CoroutineCallback<>((result, error) -> { + if (error != null) { + error.printStackTrace(); + return; + } + + System.out.println(result); + }) +); + +``` diff --git a/examples/1.9.x/server-kotlin/java/project/update-o-auth-2-oidc.md b/examples/1.9.x/server-kotlin/java/project/update-o-auth-2-oidc.md index 10b302eb4..033173877 100644 --- a/examples/1.9.x/server-kotlin/java/project/update-o-auth-2-oidc.md +++ b/examples/1.9.x/server-kotlin/java/project/update-o-auth-2-oidc.md @@ -2,6 +2,7 @@ import io.appwrite.Client; import io.appwrite.coroutines.CoroutineCallback; import io.appwrite.services.Project; +import io.appwrite.enums.ProjectOAuth2OidcPrompt; Client client = new Client() .setEndpoint("https://.cloud.appwrite.io/v1") // Your API Endpoint @@ -17,6 +18,8 @@ project.updateOAuth2Oidc( "https://example.com", // authorizationURL (optional) "https://example.com", // tokenURL (optional) "https://example.com", // userInfoURL (optional) + List.of(ProjectOAuth2OidcPrompt.NONE), // prompt (optional) + 0, // maxAge (optional) false, // enabled (optional) new CoroutineCallback<>((result, error) -> { if (error != null) { diff --git a/examples/1.9.x/server-kotlin/java/project/update-o-auth-2-server.md b/examples/1.9.x/server-kotlin/java/project/update-o-auth-2-server.md index 0bb68a617..1cd4df44e 100644 --- a/examples/1.9.x/server-kotlin/java/project/update-o-auth-2-server.md +++ b/examples/1.9.x/server-kotlin/java/project/update-o-auth-2-server.md @@ -24,6 +24,7 @@ project.updateOAuth2Server( 6, // userCodeLength (optional) "numeric", // userCodeFormat (optional) 60, // deviceCodeDuration (optional) + List.of(), // defaultScopes (optional) new CoroutineCallback<>((result, error) -> { if (error != null) { error.printStackTrace(); diff --git a/examples/1.9.x/server-kotlin/java/sites/get-deployment-download.md b/examples/1.9.x/server-kotlin/java/sites/get-deployment-download.md index 3df75ba07..fa756dee2 100644 --- a/examples/1.9.x/server-kotlin/java/sites/get-deployment-download.md +++ b/examples/1.9.x/server-kotlin/java/sites/get-deployment-download.md @@ -15,6 +15,7 @@ sites.getDeploymentDownload( "", // siteId "", // deploymentId DeploymentDownloadType.SOURCE, // type (optional) + "", // token (optional) new CoroutineCallback<>((result, error) -> { if (error != null) { error.printStackTrace(); diff --git a/examples/1.9.x/server-kotlin/java/tablesdb/create-failover.md b/examples/1.9.x/server-kotlin/java/tablesdb/create-failover.md new file mode 100644 index 000000000..9fb6fa095 --- /dev/null +++ b/examples/1.9.x/server-kotlin/java/tablesdb/create-failover.md @@ -0,0 +1,26 @@ +```java +import io.appwrite.Client; +import io.appwrite.coroutines.CoroutineCallback; +import io.appwrite.services.TablesDB; + +Client client = new Client() + .setEndpoint("https://.cloud.appwrite.io/v1") // Your API Endpoint + .setProject("") // Your project ID + .setKey(""); // Your secret API key + +TablesDB tablesDB = new TablesDB(client); + +tablesDB.createFailover( + "", // databaseId + "", // targetReplicaId (optional) + new CoroutineCallback<>((result, error) -> { + if (error != null) { + error.printStackTrace(); + return; + } + + System.out.println(result); + }) +); + +``` diff --git a/examples/1.9.x/server-kotlin/java/tablesdb/create.md b/examples/1.9.x/server-kotlin/java/tablesdb/create.md index 5b9453340..9774f5b46 100644 --- a/examples/1.9.x/server-kotlin/java/tablesdb/create.md +++ b/examples/1.9.x/server-kotlin/java/tablesdb/create.md @@ -14,7 +14,8 @@ tablesDB.create( "", // databaseId "", // name false, // enabled (optional) - "", // dedicatedDatabaseId (optional) + "serverless", // specification (optional) + 0, // replicas (optional) new CoroutineCallback<>((result, error) -> { if (error != null) { error.printStackTrace(); diff --git a/examples/1.9.x/server-kotlin/java/tablesdb/get-replicas.md b/examples/1.9.x/server-kotlin/java/tablesdb/get-replicas.md new file mode 100644 index 000000000..75591e6d6 --- /dev/null +++ b/examples/1.9.x/server-kotlin/java/tablesdb/get-replicas.md @@ -0,0 +1,25 @@ +```java +import io.appwrite.Client; +import io.appwrite.coroutines.CoroutineCallback; +import io.appwrite.services.TablesDB; + +Client client = new Client() + .setEndpoint("https://.cloud.appwrite.io/v1") // Your API Endpoint + .setProject("") // Your project ID + .setKey(""); // Your secret API key + +TablesDB tablesDB = new TablesDB(client); + +tablesDB.getReplicas( + "", // databaseId + new CoroutineCallback<>((result, error) -> { + if (error != null) { + error.printStackTrace(); + return; + } + + System.out.println(result); + }) +); + +``` diff --git a/examples/1.9.x/server-kotlin/java/tablesdb/get-status.md b/examples/1.9.x/server-kotlin/java/tablesdb/get-status.md new file mode 100644 index 000000000..7963c4df8 --- /dev/null +++ b/examples/1.9.x/server-kotlin/java/tablesdb/get-status.md @@ -0,0 +1,25 @@ +```java +import io.appwrite.Client; +import io.appwrite.coroutines.CoroutineCallback; +import io.appwrite.services.TablesDB; + +Client client = new Client() + .setEndpoint("https://.cloud.appwrite.io/v1") // Your API Endpoint + .setProject("") // Your project ID + .setKey(""); // Your secret API key + +TablesDB tablesDB = new TablesDB(client); + +tablesDB.getStatus( + "", // databaseId + new CoroutineCallback<>((result, error) -> { + if (error != null) { + error.printStackTrace(); + return; + } + + System.out.println(result); + }) +); + +``` diff --git a/examples/1.9.x/server-kotlin/java/tablesdb/list-specifications.md b/examples/1.9.x/server-kotlin/java/tablesdb/list-specifications.md new file mode 100644 index 000000000..6bd2c56af --- /dev/null +++ b/examples/1.9.x/server-kotlin/java/tablesdb/list-specifications.md @@ -0,0 +1,21 @@ +```java +import io.appwrite.Client; +import io.appwrite.coroutines.CoroutineCallback; +import io.appwrite.services.TablesDB; + +Client client = new Client() + .setEndpoint("https://.cloud.appwrite.io/v1") // Your API Endpoint + .setProject("") // Your project ID + .setKey(""); // Your secret API key + +TablesDB tablesDB = new TablesDB(client); + +tablesDB.listSpecifications(new CoroutineCallback<>((result, error) -> { + if (error != null) { + error.printStackTrace(); + return; + } + + System.out.println(result); +})); +``` diff --git a/examples/1.9.x/server-kotlin/java/tablesdb/update.md b/examples/1.9.x/server-kotlin/java/tablesdb/update.md index ee0448146..e9033d0e1 100644 --- a/examples/1.9.x/server-kotlin/java/tablesdb/update.md +++ b/examples/1.9.x/server-kotlin/java/tablesdb/update.md @@ -14,6 +14,7 @@ tablesDB.update( "", // databaseId "", // name (optional) false, // enabled (optional) + 0, // replicas (optional) new CoroutineCallback<>((result, error) -> { if (error != null) { error.printStackTrace(); diff --git a/examples/1.9.x/server-kotlin/java/usage/list-events.md b/examples/1.9.x/server-kotlin/java/usage/list-events.md index 1baee268a..37c5a6f9f 100644 --- a/examples/1.9.x/server-kotlin/java/usage/list-events.md +++ b/examples/1.9.x/server-kotlin/java/usage/list-events.md @@ -12,8 +12,7 @@ Usage usage = new Usage(client); usage.listEvents( List.of(), // metrics - "", // resource (optional) - "", // resourceId (optional) + List.of(), // queries (optional) "1m", // interval (optional) List.of(), // dimensions (optional) "2020-10-15T06:38:00.000+00:00", // startAt (optional) diff --git a/examples/1.9.x/server-kotlin/java/usage/list-gauges.md b/examples/1.9.x/server-kotlin/java/usage/list-gauges.md index fd80cdfa6..0eb576cbb 100644 --- a/examples/1.9.x/server-kotlin/java/usage/list-gauges.md +++ b/examples/1.9.x/server-kotlin/java/usage/list-gauges.md @@ -12,8 +12,7 @@ Usage usage = new Usage(client); usage.listGauges( List.of(), // metrics - "", // resourceId (optional) - "", // teamId (optional) + List.of(), // queries (optional) "1m", // interval (optional) List.of(), // dimensions (optional) "2020-10-15T06:38:00.000+00:00", // startAt (optional) diff --git a/examples/1.9.x/server-kotlin/kotlin/account/delete-consent-token.md b/examples/1.9.x/server-kotlin/kotlin/account/delete-consent-token.md new file mode 100644 index 000000000..1e77790cd --- /dev/null +++ b/examples/1.9.x/server-kotlin/kotlin/account/delete-consent-token.md @@ -0,0 +1,17 @@ +```kotlin +import io.appwrite.Client +import io.appwrite.coroutines.CoroutineCallback +import io.appwrite.services.Account + +val client = Client() + .setEndpoint("https://.cloud.appwrite.io/v1") // Your API Endpoint + .setProject("") // Your project ID + .setSession("") // The user session to authenticate with + +val account = Account(client) + +val response = account.deleteConsentToken( + consentId = "", + tokenId = "" +) +``` diff --git a/examples/1.9.x/server-kotlin/kotlin/account/delete-consent.md b/examples/1.9.x/server-kotlin/kotlin/account/delete-consent.md new file mode 100644 index 000000000..8f80855c4 --- /dev/null +++ b/examples/1.9.x/server-kotlin/kotlin/account/delete-consent.md @@ -0,0 +1,16 @@ +```kotlin +import io.appwrite.Client +import io.appwrite.coroutines.CoroutineCallback +import io.appwrite.services.Account + +val client = Client() + .setEndpoint("https://.cloud.appwrite.io/v1") // Your API Endpoint + .setProject("") // Your project ID + .setSession("") // The user session to authenticate with + +val account = Account(client) + +val response = account.deleteConsent( + consentId = "" +) +``` diff --git a/examples/1.9.x/server-kotlin/kotlin/account/get-consent-token.md b/examples/1.9.x/server-kotlin/kotlin/account/get-consent-token.md new file mode 100644 index 000000000..b545c9a4d --- /dev/null +++ b/examples/1.9.x/server-kotlin/kotlin/account/get-consent-token.md @@ -0,0 +1,17 @@ +```kotlin +import io.appwrite.Client +import io.appwrite.coroutines.CoroutineCallback +import io.appwrite.services.Account + +val client = Client() + .setEndpoint("https://.cloud.appwrite.io/v1") // Your API Endpoint + .setProject("") // Your project ID + .setSession("") // The user session to authenticate with + +val account = Account(client) + +val response = account.getConsentToken( + consentId = "", + tokenId = "" +) +``` diff --git a/examples/1.9.x/server-kotlin/kotlin/account/get-consent.md b/examples/1.9.x/server-kotlin/kotlin/account/get-consent.md new file mode 100644 index 000000000..0dce6a83b --- /dev/null +++ b/examples/1.9.x/server-kotlin/kotlin/account/get-consent.md @@ -0,0 +1,16 @@ +```kotlin +import io.appwrite.Client +import io.appwrite.coroutines.CoroutineCallback +import io.appwrite.services.Account + +val client = Client() + .setEndpoint("https://.cloud.appwrite.io/v1") // Your API Endpoint + .setProject("") // Your project ID + .setSession("") // The user session to authenticate with + +val account = Account(client) + +val response = account.getConsent( + consentId = "" +) +``` diff --git a/examples/1.9.x/server-kotlin/kotlin/account/list-consent-tokens.md b/examples/1.9.x/server-kotlin/kotlin/account/list-consent-tokens.md new file mode 100644 index 000000000..520963f3c --- /dev/null +++ b/examples/1.9.x/server-kotlin/kotlin/account/list-consent-tokens.md @@ -0,0 +1,18 @@ +```kotlin +import io.appwrite.Client +import io.appwrite.coroutines.CoroutineCallback +import io.appwrite.services.Account + +val client = Client() + .setEndpoint("https://.cloud.appwrite.io/v1") // Your API Endpoint + .setProject("") // Your project ID + .setSession("") // The user session to authenticate with + +val account = Account(client) + +val response = account.listConsentTokens( + consentId = "", + queries = listOf(), // optional + total = false // optional +) +``` diff --git a/examples/1.9.x/server-kotlin/kotlin/account/list-consents.md b/examples/1.9.x/server-kotlin/kotlin/account/list-consents.md new file mode 100644 index 000000000..ea1fdea76 --- /dev/null +++ b/examples/1.9.x/server-kotlin/kotlin/account/list-consents.md @@ -0,0 +1,17 @@ +```kotlin +import io.appwrite.Client +import io.appwrite.coroutines.CoroutineCallback +import io.appwrite.services.Account + +val client = Client() + .setEndpoint("https://.cloud.appwrite.io/v1") // Your API Endpoint + .setProject("") // Your project ID + .setSession("") // The user session to authenticate with + +val account = Account(client) + +val response = account.listConsents( + queries = listOf(), // optional + total = false // optional +) +``` diff --git a/examples/1.9.x/server-kotlin/kotlin/functions/get-deployment-download.md b/examples/1.9.x/server-kotlin/kotlin/functions/get-deployment-download.md index d6663d685..bf7c03f1d 100644 --- a/examples/1.9.x/server-kotlin/kotlin/functions/get-deployment-download.md +++ b/examples/1.9.x/server-kotlin/kotlin/functions/get-deployment-download.md @@ -14,6 +14,7 @@ val functions = Functions(client) val result = functions.getDeploymentDownload( functionId = "", deploymentId = "", - type = DeploymentDownloadType.SOURCE // optional + type = DeploymentDownloadType.SOURCE, // optional + token = "" // optional ) ``` diff --git a/examples/1.9.x/server-kotlin/kotlin/health/get-geo-premium.md b/examples/1.9.x/server-kotlin/kotlin/health/get-geo-premium.md new file mode 100644 index 000000000..24b4936f0 --- /dev/null +++ b/examples/1.9.x/server-kotlin/kotlin/health/get-geo-premium.md @@ -0,0 +1,14 @@ +```kotlin +import io.appwrite.Client +import io.appwrite.coroutines.CoroutineCallback +import io.appwrite.services.Health + +val client = Client() + .setEndpoint("https://.cloud.appwrite.io/v1") // Your API Endpoint + .setProject("") // Your project ID + .setKey("") // Your secret API key + +val health = Health(client) + +val response = health.getGeoPremium() +``` diff --git a/examples/1.9.x/server-kotlin/kotlin/health/get-geo.md b/examples/1.9.x/server-kotlin/kotlin/health/get-geo.md new file mode 100644 index 000000000..322d62562 --- /dev/null +++ b/examples/1.9.x/server-kotlin/kotlin/health/get-geo.md @@ -0,0 +1,14 @@ +```kotlin +import io.appwrite.Client +import io.appwrite.coroutines.CoroutineCallback +import io.appwrite.services.Health + +val client = Client() + .setEndpoint("https://.cloud.appwrite.io/v1") // Your API Endpoint + .setProject("") // Your project ID + .setKey("") // Your secret API key + +val health = Health(client) + +val response = health.getGeo() +``` diff --git a/examples/1.9.x/server-kotlin/kotlin/health/get-queue-notifications.md b/examples/1.9.x/server-kotlin/kotlin/health/get-queue-notifications.md new file mode 100644 index 000000000..35aa386fa --- /dev/null +++ b/examples/1.9.x/server-kotlin/kotlin/health/get-queue-notifications.md @@ -0,0 +1,16 @@ +```kotlin +import io.appwrite.Client +import io.appwrite.coroutines.CoroutineCallback +import io.appwrite.services.Health + +val client = Client() + .setEndpoint("https://.cloud.appwrite.io/v1") // Your API Endpoint + .setProject("") // Your project ID + .setKey("") // Your secret API key + +val health = Health(client) + +val response = health.getQueueNotifications( + threshold = 0 // optional +) +``` diff --git a/examples/1.9.x/server-kotlin/kotlin/organization/create-membership.md b/examples/1.9.x/server-kotlin/kotlin/organization/create-membership.md new file mode 100644 index 000000000..0632606c0 --- /dev/null +++ b/examples/1.9.x/server-kotlin/kotlin/organization/create-membership.md @@ -0,0 +1,21 @@ +```kotlin +import io.appwrite.Client +import io.appwrite.coroutines.CoroutineCallback +import io.appwrite.services.Organization + +val client = Client() + .setEndpoint("https://.cloud.appwrite.io/v1") // Your API Endpoint + .setProject("") // Your project ID + .setKey("") // Your secret API key + +val organization = Organization(client) + +val response = organization.createMembership( + roles = listOf(), + email = "email@example.com", // optional + userId = "", // optional + phone = "+12065550100", // optional + url = "https://example.com", // optional + name = "" // optional +) +``` diff --git a/examples/1.9.x/server-kotlin/kotlin/organization/delete-membership.md b/examples/1.9.x/server-kotlin/kotlin/organization/delete-membership.md new file mode 100644 index 000000000..36b18fcaa --- /dev/null +++ b/examples/1.9.x/server-kotlin/kotlin/organization/delete-membership.md @@ -0,0 +1,16 @@ +```kotlin +import io.appwrite.Client +import io.appwrite.coroutines.CoroutineCallback +import io.appwrite.services.Organization + +val client = Client() + .setEndpoint("https://.cloud.appwrite.io/v1") // Your API Endpoint + .setProject("") // Your project ID + .setKey("") // Your secret API key + +val organization = Organization(client) + +val response = organization.deleteMembership( + membershipId = "" +) +``` diff --git a/examples/1.9.x/server-kotlin/kotlin/organization/delete.md b/examples/1.9.x/server-kotlin/kotlin/organization/delete.md new file mode 100644 index 000000000..760970432 --- /dev/null +++ b/examples/1.9.x/server-kotlin/kotlin/organization/delete.md @@ -0,0 +1,14 @@ +```kotlin +import io.appwrite.Client +import io.appwrite.coroutines.CoroutineCallback +import io.appwrite.services.Organization + +val client = Client() + .setEndpoint("https://.cloud.appwrite.io/v1") // Your API Endpoint + .setProject("") // Your project ID + .setKey("") // Your secret API key + +val organization = Organization(client) + +val response = organization.delete() +``` diff --git a/examples/1.9.x/server-kotlin/kotlin/organization/get-membership.md b/examples/1.9.x/server-kotlin/kotlin/organization/get-membership.md new file mode 100644 index 000000000..9c3628713 --- /dev/null +++ b/examples/1.9.x/server-kotlin/kotlin/organization/get-membership.md @@ -0,0 +1,16 @@ +```kotlin +import io.appwrite.Client +import io.appwrite.coroutines.CoroutineCallback +import io.appwrite.services.Organization + +val client = Client() + .setEndpoint("https://.cloud.appwrite.io/v1") // Your API Endpoint + .setProject("") // Your project ID + .setKey("") // Your secret API key + +val organization = Organization(client) + +val response = organization.getMembership( + membershipId = "" +) +``` diff --git a/examples/1.9.x/server-kotlin/kotlin/organization/get.md b/examples/1.9.x/server-kotlin/kotlin/organization/get.md new file mode 100644 index 000000000..b3a47d597 --- /dev/null +++ b/examples/1.9.x/server-kotlin/kotlin/organization/get.md @@ -0,0 +1,14 @@ +```kotlin +import io.appwrite.Client +import io.appwrite.coroutines.CoroutineCallback +import io.appwrite.services.Organization + +val client = Client() + .setEndpoint("https://.cloud.appwrite.io/v1") // Your API Endpoint + .setProject("") // Your project ID + .setKey("") // Your secret API key + +val organization = Organization(client) + +val response = organization.get() +``` diff --git a/examples/1.9.x/server-kotlin/kotlin/organization/list-memberships.md b/examples/1.9.x/server-kotlin/kotlin/organization/list-memberships.md new file mode 100644 index 000000000..c5c959ccb --- /dev/null +++ b/examples/1.9.x/server-kotlin/kotlin/organization/list-memberships.md @@ -0,0 +1,18 @@ +```kotlin +import io.appwrite.Client +import io.appwrite.coroutines.CoroutineCallback +import io.appwrite.services.Organization + +val client = Client() + .setEndpoint("https://.cloud.appwrite.io/v1") // Your API Endpoint + .setProject("") // Your project ID + .setKey("") // Your secret API key + +val organization = Organization(client) + +val response = organization.listMemberships( + queries = listOf(), // optional + search = "", // optional + total = false // optional +) +``` diff --git a/examples/1.9.x/server-kotlin/kotlin/organization/update-membership.md b/examples/1.9.x/server-kotlin/kotlin/organization/update-membership.md new file mode 100644 index 000000000..035c82c1e --- /dev/null +++ b/examples/1.9.x/server-kotlin/kotlin/organization/update-membership.md @@ -0,0 +1,17 @@ +```kotlin +import io.appwrite.Client +import io.appwrite.coroutines.CoroutineCallback +import io.appwrite.services.Organization + +val client = Client() + .setEndpoint("https://.cloud.appwrite.io/v1") // Your API Endpoint + .setProject("") // Your project ID + .setKey("") // Your secret API key + +val organization = Organization(client) + +val response = organization.updateMembership( + membershipId = "", + roles = listOf() +) +``` diff --git a/examples/1.9.x/server-kotlin/kotlin/organization/update.md b/examples/1.9.x/server-kotlin/kotlin/organization/update.md new file mode 100644 index 000000000..fcda4819b --- /dev/null +++ b/examples/1.9.x/server-kotlin/kotlin/organization/update.md @@ -0,0 +1,16 @@ +```kotlin +import io.appwrite.Client +import io.appwrite.coroutines.CoroutineCallback +import io.appwrite.services.Organization + +val client = Client() + .setEndpoint("https://.cloud.appwrite.io/v1") // Your API Endpoint + .setProject("") // Your project ID + .setKey("") // Your secret API key + +val organization = Organization(client) + +val response = organization.update( + name = "" +) +``` diff --git a/examples/1.9.x/server-kotlin/kotlin/project/update-o-auth-2-appwrite.md b/examples/1.9.x/server-kotlin/kotlin/project/update-o-auth-2-appwrite.md new file mode 100644 index 000000000..f3a47a0d2 --- /dev/null +++ b/examples/1.9.x/server-kotlin/kotlin/project/update-o-auth-2-appwrite.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://.cloud.appwrite.io/v1") // Your API Endpoint + .setProject("") // Your project ID + .setKey("") // Your secret API key + +val project = Project(client) + +val response = project.updateOAuth2Appwrite( + clientId = "", // optional + clientSecret = "", // optional + enabled = false // optional +) +``` diff --git a/examples/1.9.x/server-kotlin/kotlin/project/update-o-auth-2-oidc.md b/examples/1.9.x/server-kotlin/kotlin/project/update-o-auth-2-oidc.md index 476b26e28..e05e2bfad 100644 --- a/examples/1.9.x/server-kotlin/kotlin/project/update-o-auth-2-oidc.md +++ b/examples/1.9.x/server-kotlin/kotlin/project/update-o-auth-2-oidc.md @@ -2,6 +2,7 @@ import io.appwrite.Client import io.appwrite.coroutines.CoroutineCallback import io.appwrite.services.Project +import io.appwrite.enums.ProjectOAuth2OidcPrompt val client = Client() .setEndpoint("https://.cloud.appwrite.io/v1") // Your API Endpoint @@ -17,6 +18,8 @@ val response = project.updateOAuth2Oidc( authorizationURL = "https://example.com", // optional tokenURL = "https://example.com", // optional userInfoURL = "https://example.com", // optional + prompt = listOf(ProjectOAuth2OidcPrompt.NONE), // optional + maxAge = 0, // optional enabled = false // optional ) ``` diff --git a/examples/1.9.x/server-kotlin/kotlin/project/update-o-auth-2-server.md b/examples/1.9.x/server-kotlin/kotlin/project/update-o-auth-2-server.md index 9be32177e..859c0f8bb 100644 --- a/examples/1.9.x/server-kotlin/kotlin/project/update-o-auth-2-server.md +++ b/examples/1.9.x/server-kotlin/kotlin/project/update-o-auth-2-server.md @@ -23,6 +23,7 @@ val response = project.updateOAuth2Server( verificationUrl = "https://example.com", // optional userCodeLength = 6, // optional userCodeFormat = "numeric", // optional - deviceCodeDuration = 60 // optional + deviceCodeDuration = 60, // optional + defaultScopes = listOf() // optional ) ``` diff --git a/examples/1.9.x/server-kotlin/kotlin/sites/get-deployment-download.md b/examples/1.9.x/server-kotlin/kotlin/sites/get-deployment-download.md index e86ef015c..374e13764 100644 --- a/examples/1.9.x/server-kotlin/kotlin/sites/get-deployment-download.md +++ b/examples/1.9.x/server-kotlin/kotlin/sites/get-deployment-download.md @@ -14,6 +14,7 @@ val sites = Sites(client) val result = sites.getDeploymentDownload( siteId = "", deploymentId = "", - type = DeploymentDownloadType.SOURCE // optional + type = DeploymentDownloadType.SOURCE, // optional + token = "" // optional ) ``` diff --git a/examples/1.9.x/server-kotlin/kotlin/tablesdb/create-failover.md b/examples/1.9.x/server-kotlin/kotlin/tablesdb/create-failover.md new file mode 100644 index 000000000..142468959 --- /dev/null +++ b/examples/1.9.x/server-kotlin/kotlin/tablesdb/create-failover.md @@ -0,0 +1,17 @@ +```kotlin +import io.appwrite.Client +import io.appwrite.coroutines.CoroutineCallback +import io.appwrite.services.TablesDB + +val client = Client() + .setEndpoint("https://.cloud.appwrite.io/v1") // Your API Endpoint + .setProject("") // Your project ID + .setKey("") // Your secret API key + +val tablesDB = TablesDB(client) + +val response = tablesDB.createFailover( + databaseId = "", + targetReplicaId = "" // optional +) +``` diff --git a/examples/1.9.x/server-kotlin/kotlin/tablesdb/create.md b/examples/1.9.x/server-kotlin/kotlin/tablesdb/create.md index c13173da9..0ab80063e 100644 --- a/examples/1.9.x/server-kotlin/kotlin/tablesdb/create.md +++ b/examples/1.9.x/server-kotlin/kotlin/tablesdb/create.md @@ -14,6 +14,7 @@ val response = tablesDB.create( databaseId = "", name = "", enabled = false, // optional - dedicatedDatabaseId = "" // optional + specification = "serverless", // optional + replicas = 0 // optional ) ``` diff --git a/examples/1.9.x/server-kotlin/kotlin/tablesdb/get-replicas.md b/examples/1.9.x/server-kotlin/kotlin/tablesdb/get-replicas.md new file mode 100644 index 000000000..ebac0f346 --- /dev/null +++ b/examples/1.9.x/server-kotlin/kotlin/tablesdb/get-replicas.md @@ -0,0 +1,16 @@ +```kotlin +import io.appwrite.Client +import io.appwrite.coroutines.CoroutineCallback +import io.appwrite.services.TablesDB + +val client = Client() + .setEndpoint("https://.cloud.appwrite.io/v1") // Your API Endpoint + .setProject("") // Your project ID + .setKey("") // Your secret API key + +val tablesDB = TablesDB(client) + +val response = tablesDB.getReplicas( + databaseId = "" +) +``` diff --git a/examples/1.9.x/server-kotlin/kotlin/tablesdb/get-status.md b/examples/1.9.x/server-kotlin/kotlin/tablesdb/get-status.md new file mode 100644 index 000000000..6107b2310 --- /dev/null +++ b/examples/1.9.x/server-kotlin/kotlin/tablesdb/get-status.md @@ -0,0 +1,16 @@ +```kotlin +import io.appwrite.Client +import io.appwrite.coroutines.CoroutineCallback +import io.appwrite.services.TablesDB + +val client = Client() + .setEndpoint("https://.cloud.appwrite.io/v1") // Your API Endpoint + .setProject("") // Your project ID + .setKey("") // Your secret API key + +val tablesDB = TablesDB(client) + +val response = tablesDB.getStatus( + databaseId = "" +) +``` diff --git a/examples/1.9.x/server-kotlin/kotlin/tablesdb/list-specifications.md b/examples/1.9.x/server-kotlin/kotlin/tablesdb/list-specifications.md new file mode 100644 index 000000000..40c9a2187 --- /dev/null +++ b/examples/1.9.x/server-kotlin/kotlin/tablesdb/list-specifications.md @@ -0,0 +1,14 @@ +```kotlin +import io.appwrite.Client +import io.appwrite.coroutines.CoroutineCallback +import io.appwrite.services.TablesDB + +val client = Client() + .setEndpoint("https://.cloud.appwrite.io/v1") // Your API Endpoint + .setProject("") // Your project ID + .setKey("") // Your secret API key + +val tablesDB = TablesDB(client) + +val response = tablesDB.listSpecifications() +``` diff --git a/examples/1.9.x/server-kotlin/kotlin/tablesdb/update.md b/examples/1.9.x/server-kotlin/kotlin/tablesdb/update.md index becb2b9f6..c21e26d74 100644 --- a/examples/1.9.x/server-kotlin/kotlin/tablesdb/update.md +++ b/examples/1.9.x/server-kotlin/kotlin/tablesdb/update.md @@ -13,6 +13,7 @@ val tablesDB = TablesDB(client) val response = tablesDB.update( databaseId = "", name = "", // optional - enabled = false // optional + enabled = false, // optional + replicas = 0 // optional ) ``` diff --git a/examples/1.9.x/server-kotlin/kotlin/usage/list-events.md b/examples/1.9.x/server-kotlin/kotlin/usage/list-events.md index f29998bc3..b4a368499 100644 --- a/examples/1.9.x/server-kotlin/kotlin/usage/list-events.md +++ b/examples/1.9.x/server-kotlin/kotlin/usage/list-events.md @@ -12,8 +12,7 @@ val usage = Usage(client) val response = usage.listEvents( metrics = listOf(), - resource = "", // optional - resourceId = "", // optional + queries = listOf(), // optional interval = "1m", // optional dimensions = listOf(), // optional startAt = "2020-10-15T06:38:00.000+00:00", // optional diff --git a/examples/1.9.x/server-kotlin/kotlin/usage/list-gauges.md b/examples/1.9.x/server-kotlin/kotlin/usage/list-gauges.md index fd7cd28e8..cdca041b0 100644 --- a/examples/1.9.x/server-kotlin/kotlin/usage/list-gauges.md +++ b/examples/1.9.x/server-kotlin/kotlin/usage/list-gauges.md @@ -12,8 +12,7 @@ val usage = Usage(client) val response = usage.listGauges( metrics = listOf(), - resourceId = "", // optional - teamId = "", // optional + queries = listOf(), // optional interval = "1m", // optional dimensions = listOf(), // optional startAt = "2020-10-15T06:38:00.000+00:00", // optional diff --git a/examples/1.9.x/server-nodejs/examples/account/delete-consent-token.md b/examples/1.9.x/server-nodejs/examples/account/delete-consent-token.md new file mode 100644 index 000000000..3b45b0925 --- /dev/null +++ b/examples/1.9.x/server-nodejs/examples/account/delete-consent-token.md @@ -0,0 +1,15 @@ +```javascript +const sdk = require('node-appwrite'); + +const client = new sdk.Client() + .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint + .setProject('') // Your project ID + .setSession(''); // The user session to authenticate with + +const account = new sdk.Account(client); + +const result = await account.deleteConsentToken({ + consentId: '', + tokenId: '' +}); +``` diff --git a/examples/1.9.x/server-nodejs/examples/account/delete-consent.md b/examples/1.9.x/server-nodejs/examples/account/delete-consent.md new file mode 100644 index 000000000..eb93abad0 --- /dev/null +++ b/examples/1.9.x/server-nodejs/examples/account/delete-consent.md @@ -0,0 +1,14 @@ +```javascript +const sdk = require('node-appwrite'); + +const client = new sdk.Client() + .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint + .setProject('') // Your project ID + .setSession(''); // The user session to authenticate with + +const account = new sdk.Account(client); + +const result = await account.deleteConsent({ + consentId: '' +}); +``` diff --git a/examples/1.9.x/server-nodejs/examples/account/get-consent-token.md b/examples/1.9.x/server-nodejs/examples/account/get-consent-token.md new file mode 100644 index 000000000..3ae6c1ead --- /dev/null +++ b/examples/1.9.x/server-nodejs/examples/account/get-consent-token.md @@ -0,0 +1,15 @@ +```javascript +const sdk = require('node-appwrite'); + +const client = new sdk.Client() + .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint + .setProject('') // Your project ID + .setSession(''); // The user session to authenticate with + +const account = new sdk.Account(client); + +const result = await account.getConsentToken({ + consentId: '', + tokenId: '' +}); +``` diff --git a/examples/1.9.x/server-nodejs/examples/account/get-consent.md b/examples/1.9.x/server-nodejs/examples/account/get-consent.md new file mode 100644 index 000000000..fc7cb6c77 --- /dev/null +++ b/examples/1.9.x/server-nodejs/examples/account/get-consent.md @@ -0,0 +1,14 @@ +```javascript +const sdk = require('node-appwrite'); + +const client = new sdk.Client() + .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint + .setProject('') // Your project ID + .setSession(''); // The user session to authenticate with + +const account = new sdk.Account(client); + +const result = await account.getConsent({ + consentId: '' +}); +``` diff --git a/examples/1.9.x/server-nodejs/examples/account/list-consent-tokens.md b/examples/1.9.x/server-nodejs/examples/account/list-consent-tokens.md new file mode 100644 index 000000000..d271066fd --- /dev/null +++ b/examples/1.9.x/server-nodejs/examples/account/list-consent-tokens.md @@ -0,0 +1,16 @@ +```javascript +const sdk = require('node-appwrite'); + +const client = new sdk.Client() + .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint + .setProject('') // Your project ID + .setSession(''); // The user session to authenticate with + +const account = new sdk.Account(client); + +const result = await account.listConsentTokens({ + consentId: '', + queries: [], // optional + total: false // optional +}); +``` diff --git a/examples/1.9.x/server-nodejs/examples/account/list-consents.md b/examples/1.9.x/server-nodejs/examples/account/list-consents.md new file mode 100644 index 000000000..12ec54efb --- /dev/null +++ b/examples/1.9.x/server-nodejs/examples/account/list-consents.md @@ -0,0 +1,15 @@ +```javascript +const sdk = require('node-appwrite'); + +const client = new sdk.Client() + .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint + .setProject('') // Your project ID + .setSession(''); // The user session to authenticate with + +const account = new sdk.Account(client); + +const result = await account.listConsents({ + queries: [], // optional + total: false // optional +}); +``` diff --git a/examples/1.9.x/server-nodejs/examples/functions/get-deployment-download.md b/examples/1.9.x/server-nodejs/examples/functions/get-deployment-download.md index 5e9a956d0..6a75baddd 100644 --- a/examples/1.9.x/server-nodejs/examples/functions/get-deployment-download.md +++ b/examples/1.9.x/server-nodejs/examples/functions/get-deployment-download.md @@ -11,6 +11,7 @@ const functions = new sdk.Functions(client); const result = await functions.getDeploymentDownload({ functionId: '', deploymentId: '', - type: sdk.DeploymentDownloadType.Source // optional + type: sdk.DeploymentDownloadType.Source, // optional + token: '' // optional }); ``` diff --git a/examples/1.9.x/server-nodejs/examples/health/get-geo-premium.md b/examples/1.9.x/server-nodejs/examples/health/get-geo-premium.md new file mode 100644 index 000000000..f8afd8964 --- /dev/null +++ b/examples/1.9.x/server-nodejs/examples/health/get-geo-premium.md @@ -0,0 +1,12 @@ +```javascript +const sdk = require('node-appwrite'); + +const client = new sdk.Client() + .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint + .setProject('') // Your project ID + .setKey(''); // Your secret API key + +const health = new sdk.Health(client); + +const result = await health.getGeoPremium(); +``` diff --git a/examples/1.9.x/server-nodejs/examples/health/get-geo.md b/examples/1.9.x/server-nodejs/examples/health/get-geo.md new file mode 100644 index 000000000..c1e3018d2 --- /dev/null +++ b/examples/1.9.x/server-nodejs/examples/health/get-geo.md @@ -0,0 +1,12 @@ +```javascript +const sdk = require('node-appwrite'); + +const client = new sdk.Client() + .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint + .setProject('') // Your project ID + .setKey(''); // Your secret API key + +const health = new sdk.Health(client); + +const result = await health.getGeo(); +``` diff --git a/examples/1.9.x/server-nodejs/examples/health/get-queue-notifications.md b/examples/1.9.x/server-nodejs/examples/health/get-queue-notifications.md new file mode 100644 index 000000000..63ae0b1b2 --- /dev/null +++ b/examples/1.9.x/server-nodejs/examples/health/get-queue-notifications.md @@ -0,0 +1,14 @@ +```javascript +const sdk = require('node-appwrite'); + +const client = new sdk.Client() + .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint + .setProject('') // Your project ID + .setKey(''); // Your secret API key + +const health = new sdk.Health(client); + +const result = await health.getQueueNotifications({ + threshold: null // optional +}); +``` diff --git a/examples/1.9.x/server-nodejs/examples/organization/create-membership.md b/examples/1.9.x/server-nodejs/examples/organization/create-membership.md new file mode 100644 index 000000000..02450ab2d --- /dev/null +++ b/examples/1.9.x/server-nodejs/examples/organization/create-membership.md @@ -0,0 +1,19 @@ +```javascript +const sdk = require('node-appwrite'); + +const client = new sdk.Client() + .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint + .setProject('') // Your project ID + .setKey(''); // Your secret API key + +const organization = new sdk.Organization(client); + +const result = await organization.createMembership({ + roles: [], + email: 'email@example.com', // optional + userId: '', // optional + phone: '+12065550100', // optional + url: 'https://example.com', // optional + name: '' // optional +}); +``` diff --git a/examples/1.9.x/server-nodejs/examples/organization/delete-membership.md b/examples/1.9.x/server-nodejs/examples/organization/delete-membership.md new file mode 100644 index 000000000..174ffc3c2 --- /dev/null +++ b/examples/1.9.x/server-nodejs/examples/organization/delete-membership.md @@ -0,0 +1,14 @@ +```javascript +const sdk = require('node-appwrite'); + +const client = new sdk.Client() + .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint + .setProject('') // Your project ID + .setKey(''); // Your secret API key + +const organization = new sdk.Organization(client); + +const result = await organization.deleteMembership({ + membershipId: '' +}); +``` diff --git a/examples/1.9.x/server-nodejs/examples/organization/delete.md b/examples/1.9.x/server-nodejs/examples/organization/delete.md new file mode 100644 index 000000000..79b8e0803 --- /dev/null +++ b/examples/1.9.x/server-nodejs/examples/organization/delete.md @@ -0,0 +1,12 @@ +```javascript +const sdk = require('node-appwrite'); + +const client = new sdk.Client() + .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint + .setProject('') // Your project ID + .setKey(''); // Your secret API key + +const organization = new sdk.Organization(client); + +const result = await organization.delete(); +``` diff --git a/examples/1.9.x/server-nodejs/examples/organization/get-membership.md b/examples/1.9.x/server-nodejs/examples/organization/get-membership.md new file mode 100644 index 000000000..42f60701b --- /dev/null +++ b/examples/1.9.x/server-nodejs/examples/organization/get-membership.md @@ -0,0 +1,14 @@ +```javascript +const sdk = require('node-appwrite'); + +const client = new sdk.Client() + .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint + .setProject('') // Your project ID + .setKey(''); // Your secret API key + +const organization = new sdk.Organization(client); + +const result = await organization.getMembership({ + membershipId: '' +}); +``` diff --git a/examples/1.9.x/server-nodejs/examples/organization/get.md b/examples/1.9.x/server-nodejs/examples/organization/get.md new file mode 100644 index 000000000..3b156dd54 --- /dev/null +++ b/examples/1.9.x/server-nodejs/examples/organization/get.md @@ -0,0 +1,12 @@ +```javascript +const sdk = require('node-appwrite'); + +const client = new sdk.Client() + .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint + .setProject('') // Your project ID + .setKey(''); // Your secret API key + +const organization = new sdk.Organization(client); + +const result = await organization.get(); +``` diff --git a/examples/1.9.x/server-nodejs/examples/organization/list-memberships.md b/examples/1.9.x/server-nodejs/examples/organization/list-memberships.md new file mode 100644 index 000000000..594cfd1b7 --- /dev/null +++ b/examples/1.9.x/server-nodejs/examples/organization/list-memberships.md @@ -0,0 +1,16 @@ +```javascript +const sdk = require('node-appwrite'); + +const client = new sdk.Client() + .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint + .setProject('') // Your project ID + .setKey(''); // Your secret API key + +const organization = new sdk.Organization(client); + +const result = await organization.listMemberships({ + queries: [], // optional + search: '', // optional + total: false // optional +}); +``` diff --git a/examples/1.9.x/server-nodejs/examples/organization/update-membership.md b/examples/1.9.x/server-nodejs/examples/organization/update-membership.md new file mode 100644 index 000000000..17d7e174d --- /dev/null +++ b/examples/1.9.x/server-nodejs/examples/organization/update-membership.md @@ -0,0 +1,15 @@ +```javascript +const sdk = require('node-appwrite'); + +const client = new sdk.Client() + .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint + .setProject('') // Your project ID + .setKey(''); // Your secret API key + +const organization = new sdk.Organization(client); + +const result = await organization.updateMembership({ + membershipId: '', + roles: [] +}); +``` diff --git a/examples/1.9.x/server-nodejs/examples/organization/update.md b/examples/1.9.x/server-nodejs/examples/organization/update.md new file mode 100644 index 000000000..21485ef8f --- /dev/null +++ b/examples/1.9.x/server-nodejs/examples/organization/update.md @@ -0,0 +1,14 @@ +```javascript +const sdk = require('node-appwrite'); + +const client = new sdk.Client() + .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint + .setProject('') // Your project ID + .setKey(''); // Your secret API key + +const organization = new sdk.Organization(client); + +const result = await organization.update({ + name: '' +}); +``` diff --git a/examples/1.9.x/server-nodejs/examples/project/update-o-auth-2-appwrite.md b/examples/1.9.x/server-nodejs/examples/project/update-o-auth-2-appwrite.md new file mode 100644 index 000000000..6a7df87e2 --- /dev/null +++ b/examples/1.9.x/server-nodejs/examples/project/update-o-auth-2-appwrite.md @@ -0,0 +1,16 @@ +```javascript +const sdk = require('node-appwrite'); + +const client = new sdk.Client() + .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint + .setProject('') // Your project ID + .setKey(''); // Your secret API key + +const project = new sdk.Project(client); + +const result = await project.updateOAuth2Appwrite({ + clientId: '', // optional + clientSecret: '', // optional + enabled: false // optional +}); +``` diff --git a/examples/1.9.x/server-nodejs/examples/project/update-o-auth-2-oidc.md b/examples/1.9.x/server-nodejs/examples/project/update-o-auth-2-oidc.md index 7f1f6eb7b..271afcfff 100644 --- a/examples/1.9.x/server-nodejs/examples/project/update-o-auth-2-oidc.md +++ b/examples/1.9.x/server-nodejs/examples/project/update-o-auth-2-oidc.md @@ -15,6 +15,8 @@ const result = await project.updateOAuth2Oidc({ authorizationURL: 'https://example.com', // optional tokenURL: 'https://example.com', // optional userInfoURL: 'https://example.com', // optional + prompt: [sdk.ProjectOAuth2OidcPrompt.None], // optional + maxAge: 0, // optional enabled: false // optional }); ``` diff --git a/examples/1.9.x/server-nodejs/examples/project/update-o-auth-2-server.md b/examples/1.9.x/server-nodejs/examples/project/update-o-auth-2-server.md index 5feef6a63..0cd95aeeb 100644 --- a/examples/1.9.x/server-nodejs/examples/project/update-o-auth-2-server.md +++ b/examples/1.9.x/server-nodejs/examples/project/update-o-auth-2-server.md @@ -21,6 +21,7 @@ const result = await project.updateOAuth2Server({ verificationUrl: 'https://example.com', // optional userCodeLength: 6, // optional userCodeFormat: 'numeric', // optional - deviceCodeDuration: 60 // optional + deviceCodeDuration: 60, // optional + defaultScopes: [] // optional }); ``` diff --git a/examples/1.9.x/server-nodejs/examples/sites/get-deployment-download.md b/examples/1.9.x/server-nodejs/examples/sites/get-deployment-download.md index 6e7ee4aa0..1d62d2883 100644 --- a/examples/1.9.x/server-nodejs/examples/sites/get-deployment-download.md +++ b/examples/1.9.x/server-nodejs/examples/sites/get-deployment-download.md @@ -11,6 +11,7 @@ const sites = new sdk.Sites(client); const result = await sites.getDeploymentDownload({ siteId: '', deploymentId: '', - type: sdk.DeploymentDownloadType.Source // optional + type: sdk.DeploymentDownloadType.Source, // optional + token: '' // optional }); ``` diff --git a/examples/1.9.x/server-nodejs/examples/tablesdb/create-failover.md b/examples/1.9.x/server-nodejs/examples/tablesdb/create-failover.md new file mode 100644 index 000000000..0ad64376a --- /dev/null +++ b/examples/1.9.x/server-nodejs/examples/tablesdb/create-failover.md @@ -0,0 +1,15 @@ +```javascript +const sdk = require('node-appwrite'); + +const client = new sdk.Client() + .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint + .setProject('') // Your project ID + .setKey(''); // Your secret API key + +const tablesDB = new sdk.TablesDB(client); + +const result = await tablesDB.createFailover({ + databaseId: '', + targetReplicaId: '' // optional +}); +``` diff --git a/examples/1.9.x/server-nodejs/examples/tablesdb/create.md b/examples/1.9.x/server-nodejs/examples/tablesdb/create.md index cc39ad924..27bf661f2 100644 --- a/examples/1.9.x/server-nodejs/examples/tablesdb/create.md +++ b/examples/1.9.x/server-nodejs/examples/tablesdb/create.md @@ -12,6 +12,7 @@ const result = await tablesDB.create({ databaseId: '', name: '', enabled: false, // optional - dedicatedDatabaseId: '' // optional + specification: 'serverless', // optional + replicas: 0 // optional }); ``` diff --git a/examples/1.9.x/server-nodejs/examples/tablesdb/get-replicas.md b/examples/1.9.x/server-nodejs/examples/tablesdb/get-replicas.md new file mode 100644 index 000000000..ab4029632 --- /dev/null +++ b/examples/1.9.x/server-nodejs/examples/tablesdb/get-replicas.md @@ -0,0 +1,14 @@ +```javascript +const sdk = require('node-appwrite'); + +const client = new sdk.Client() + .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint + .setProject('') // Your project ID + .setKey(''); // Your secret API key + +const tablesDB = new sdk.TablesDB(client); + +const result = await tablesDB.getReplicas({ + databaseId: '' +}); +``` diff --git a/examples/1.9.x/server-nodejs/examples/tablesdb/get-status.md b/examples/1.9.x/server-nodejs/examples/tablesdb/get-status.md new file mode 100644 index 000000000..3b8582199 --- /dev/null +++ b/examples/1.9.x/server-nodejs/examples/tablesdb/get-status.md @@ -0,0 +1,14 @@ +```javascript +const sdk = require('node-appwrite'); + +const client = new sdk.Client() + .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint + .setProject('') // Your project ID + .setKey(''); // Your secret API key + +const tablesDB = new sdk.TablesDB(client); + +const result = await tablesDB.getStatus({ + databaseId: '' +}); +``` diff --git a/examples/1.9.x/server-nodejs/examples/tablesdb/list-specifications.md b/examples/1.9.x/server-nodejs/examples/tablesdb/list-specifications.md new file mode 100644 index 000000000..c5e11ea9b --- /dev/null +++ b/examples/1.9.x/server-nodejs/examples/tablesdb/list-specifications.md @@ -0,0 +1,12 @@ +```javascript +const sdk = require('node-appwrite'); + +const client = new sdk.Client() + .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint + .setProject('') // Your project ID + .setKey(''); // Your secret API key + +const tablesDB = new sdk.TablesDB(client); + +const result = await tablesDB.listSpecifications(); +``` diff --git a/examples/1.9.x/server-nodejs/examples/tablesdb/update.md b/examples/1.9.x/server-nodejs/examples/tablesdb/update.md index 7cbf6f58a..034eb9401 100644 --- a/examples/1.9.x/server-nodejs/examples/tablesdb/update.md +++ b/examples/1.9.x/server-nodejs/examples/tablesdb/update.md @@ -11,6 +11,7 @@ const tablesDB = new sdk.TablesDB(client); const result = await tablesDB.update({ databaseId: '', name: '', // optional - enabled: false // optional + enabled: false, // optional + replicas: 0 // optional }); ``` diff --git a/examples/1.9.x/server-nodejs/examples/usage/list-events.md b/examples/1.9.x/server-nodejs/examples/usage/list-events.md index 59e76eddf..eb58fd43b 100644 --- a/examples/1.9.x/server-nodejs/examples/usage/list-events.md +++ b/examples/1.9.x/server-nodejs/examples/usage/list-events.md @@ -10,8 +10,7 @@ const usage = new sdk.Usage(client); const result = await usage.listEvents({ metrics: [], - resource: '', // optional - resourceId: '', // optional + queries: [], // optional interval: '1m', // optional dimensions: [], // optional startAt: '2020-10-15T06:38:00.000+00:00', // optional diff --git a/examples/1.9.x/server-nodejs/examples/usage/list-gauges.md b/examples/1.9.x/server-nodejs/examples/usage/list-gauges.md index 14609dc4c..8ed4d86f5 100644 --- a/examples/1.9.x/server-nodejs/examples/usage/list-gauges.md +++ b/examples/1.9.x/server-nodejs/examples/usage/list-gauges.md @@ -10,8 +10,7 @@ const usage = new sdk.Usage(client); const result = await usage.listGauges({ metrics: [], - resourceId: '', // optional - teamId: '', // optional + queries: [], // optional interval: '1m', // optional dimensions: [], // optional startAt: '2020-10-15T06:38:00.000+00:00', // optional diff --git a/examples/1.9.x/server-php/examples/account/delete-consent-token.md b/examples/1.9.x/server-php/examples/account/delete-consent-token.md new file mode 100644 index 000000000..1cb8fcce3 --- /dev/null +++ b/examples/1.9.x/server-php/examples/account/delete-consent-token.md @@ -0,0 +1,17 @@ +```php +setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint + ->setProject('') // Your project ID + ->setSession(''); // The user session to authenticate with + +$account = new Account($client); + +$result = $account->deleteConsentToken( + consentId: '', + tokenId: '' +);``` diff --git a/examples/1.9.x/server-php/examples/account/delete-consent.md b/examples/1.9.x/server-php/examples/account/delete-consent.md new file mode 100644 index 000000000..0aebb0a52 --- /dev/null +++ b/examples/1.9.x/server-php/examples/account/delete-consent.md @@ -0,0 +1,16 @@ +```php +setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint + ->setProject('') // Your project ID + ->setSession(''); // The user session to authenticate with + +$account = new Account($client); + +$result = $account->deleteConsent( + consentId: '' +);``` diff --git a/examples/1.9.x/server-php/examples/account/get-consent-token.md b/examples/1.9.x/server-php/examples/account/get-consent-token.md new file mode 100644 index 000000000..dda1a1ca4 --- /dev/null +++ b/examples/1.9.x/server-php/examples/account/get-consent-token.md @@ -0,0 +1,17 @@ +```php +setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint + ->setProject('') // Your project ID + ->setSession(''); // The user session to authenticate with + +$account = new Account($client); + +$result = $account->getConsentToken( + consentId: '', + tokenId: '' +);``` diff --git a/examples/1.9.x/server-php/examples/account/get-consent.md b/examples/1.9.x/server-php/examples/account/get-consent.md new file mode 100644 index 000000000..f6ce59fc0 --- /dev/null +++ b/examples/1.9.x/server-php/examples/account/get-consent.md @@ -0,0 +1,16 @@ +```php +setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint + ->setProject('') // Your project ID + ->setSession(''); // The user session to authenticate with + +$account = new Account($client); + +$result = $account->getConsent( + consentId: '' +);``` diff --git a/examples/1.9.x/server-php/examples/account/list-consent-tokens.md b/examples/1.9.x/server-php/examples/account/list-consent-tokens.md new file mode 100644 index 000000000..0088745cf --- /dev/null +++ b/examples/1.9.x/server-php/examples/account/list-consent-tokens.md @@ -0,0 +1,18 @@ +```php +setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint + ->setProject('') // Your project ID + ->setSession(''); // The user session to authenticate with + +$account = new Account($client); + +$result = $account->listConsentTokens( + consentId: '', + queries: [], // optional + total: false // optional +);``` diff --git a/examples/1.9.x/server-php/examples/account/list-consents.md b/examples/1.9.x/server-php/examples/account/list-consents.md new file mode 100644 index 000000000..b2c63a308 --- /dev/null +++ b/examples/1.9.x/server-php/examples/account/list-consents.md @@ -0,0 +1,17 @@ +```php +setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint + ->setProject('') // Your project ID + ->setSession(''); // The user session to authenticate with + +$account = new Account($client); + +$result = $account->listConsents( + queries: [], // optional + total: false // optional +);``` diff --git a/examples/1.9.x/server-php/examples/functions/get-deployment-download.md b/examples/1.9.x/server-php/examples/functions/get-deployment-download.md index 73842f546..e267d325c 100644 --- a/examples/1.9.x/server-php/examples/functions/get-deployment-download.md +++ b/examples/1.9.x/server-php/examples/functions/get-deployment-download.md @@ -15,5 +15,6 @@ $functions = new Functions($client); $result = $functions->getDeploymentDownload( functionId: '', deploymentId: '', - type: DeploymentDownloadType::SOURCE() // optional + type: DeploymentDownloadType::SOURCE(), // optional + token: '' // optional );``` diff --git a/examples/1.9.x/server-php/examples/health/get-geo-premium.md b/examples/1.9.x/server-php/examples/health/get-geo-premium.md new file mode 100644 index 000000000..30e3c18d7 --- /dev/null +++ b/examples/1.9.x/server-php/examples/health/get-geo-premium.md @@ -0,0 +1,15 @@ +```php +setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint + ->setProject('') // Your project ID + ->setKey(''); // Your secret API key + +$health = new Health($client); + +$result = $health->getGeoPremium(); +``` diff --git a/examples/1.9.x/server-php/examples/health/get-geo.md b/examples/1.9.x/server-php/examples/health/get-geo.md new file mode 100644 index 000000000..b79158394 --- /dev/null +++ b/examples/1.9.x/server-php/examples/health/get-geo.md @@ -0,0 +1,15 @@ +```php +setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint + ->setProject('') // Your project ID + ->setKey(''); // Your secret API key + +$health = new Health($client); + +$result = $health->getGeo(); +``` diff --git a/examples/1.9.x/server-php/examples/health/get-queue-notifications.md b/examples/1.9.x/server-php/examples/health/get-queue-notifications.md new file mode 100644 index 000000000..70fdea2cd --- /dev/null +++ b/examples/1.9.x/server-php/examples/health/get-queue-notifications.md @@ -0,0 +1,16 @@ +```php +setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint + ->setProject('') // Your project ID + ->setKey(''); // Your secret API key + +$health = new Health($client); + +$result = $health->getQueueNotifications( + threshold: null // optional +);``` diff --git a/examples/1.9.x/server-php/examples/organization/create-membership.md b/examples/1.9.x/server-php/examples/organization/create-membership.md new file mode 100644 index 000000000..372c09ccc --- /dev/null +++ b/examples/1.9.x/server-php/examples/organization/create-membership.md @@ -0,0 +1,21 @@ +```php +setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint + ->setProject('') // Your project ID + ->setKey(''); // Your secret API key + +$organization = new Organization($client); + +$result = $organization->createMembership( + roles: [], + email: 'email@example.com', // optional + userId: '', // optional + phone: '+12065550100', // optional + url: 'https://example.com', // optional + name: '' // optional +);``` diff --git a/examples/1.9.x/server-php/examples/organization/delete-membership.md b/examples/1.9.x/server-php/examples/organization/delete-membership.md new file mode 100644 index 000000000..9da3b64f2 --- /dev/null +++ b/examples/1.9.x/server-php/examples/organization/delete-membership.md @@ -0,0 +1,16 @@ +```php +setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint + ->setProject('') // Your project ID + ->setKey(''); // Your secret API key + +$organization = new Organization($client); + +$result = $organization->deleteMembership( + membershipId: '' +);``` diff --git a/examples/1.9.x/server-php/examples/organization/delete.md b/examples/1.9.x/server-php/examples/organization/delete.md new file mode 100644 index 000000000..1160857a9 --- /dev/null +++ b/examples/1.9.x/server-php/examples/organization/delete.md @@ -0,0 +1,15 @@ +```php +setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint + ->setProject('') // Your project ID + ->setKey(''); // Your secret API key + +$organization = new Organization($client); + +$result = $organization->delete(); +``` diff --git a/examples/1.9.x/server-php/examples/organization/get-membership.md b/examples/1.9.x/server-php/examples/organization/get-membership.md new file mode 100644 index 000000000..52e2d17d0 --- /dev/null +++ b/examples/1.9.x/server-php/examples/organization/get-membership.md @@ -0,0 +1,16 @@ +```php +setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint + ->setProject('') // Your project ID + ->setKey(''); // Your secret API key + +$organization = new Organization($client); + +$result = $organization->getMembership( + membershipId: '' +);``` diff --git a/examples/1.9.x/server-php/examples/organization/get.md b/examples/1.9.x/server-php/examples/organization/get.md new file mode 100644 index 000000000..6fb38198f --- /dev/null +++ b/examples/1.9.x/server-php/examples/organization/get.md @@ -0,0 +1,15 @@ +```php +setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint + ->setProject('') // Your project ID + ->setKey(''); // Your secret API key + +$organization = new Organization($client); + +$result = $organization->get(); +``` diff --git a/examples/1.9.x/server-php/examples/organization/list-memberships.md b/examples/1.9.x/server-php/examples/organization/list-memberships.md new file mode 100644 index 000000000..178589969 --- /dev/null +++ b/examples/1.9.x/server-php/examples/organization/list-memberships.md @@ -0,0 +1,18 @@ +```php +setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint + ->setProject('') // Your project ID + ->setKey(''); // Your secret API key + +$organization = new Organization($client); + +$result = $organization->listMemberships( + queries: [], // optional + search: '', // optional + total: false // optional +);``` diff --git a/examples/1.9.x/server-php/examples/organization/update-membership.md b/examples/1.9.x/server-php/examples/organization/update-membership.md new file mode 100644 index 000000000..7097729e5 --- /dev/null +++ b/examples/1.9.x/server-php/examples/organization/update-membership.md @@ -0,0 +1,17 @@ +```php +setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint + ->setProject('') // Your project ID + ->setKey(''); // Your secret API key + +$organization = new Organization($client); + +$result = $organization->updateMembership( + membershipId: '', + roles: [] +);``` diff --git a/examples/1.9.x/server-php/examples/organization/update.md b/examples/1.9.x/server-php/examples/organization/update.md new file mode 100644 index 000000000..45e7f0ff2 --- /dev/null +++ b/examples/1.9.x/server-php/examples/organization/update.md @@ -0,0 +1,16 @@ +```php +setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint + ->setProject('') // Your project ID + ->setKey(''); // Your secret API key + +$organization = new Organization($client); + +$result = $organization->update( + name: '' +);``` diff --git a/examples/1.9.x/server-php/examples/project/update-o-auth-2-appwrite.md b/examples/1.9.x/server-php/examples/project/update-o-auth-2-appwrite.md new file mode 100644 index 000000000..be24abdb1 --- /dev/null +++ b/examples/1.9.x/server-php/examples/project/update-o-auth-2-appwrite.md @@ -0,0 +1,18 @@ +```php +setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint + ->setProject('') // Your project ID + ->setKey(''); // Your secret API key + +$project = new Project($client); + +$result = $project->updateOAuth2Appwrite( + clientId: '', // optional + clientSecret: '', // optional + enabled: false // optional +);``` diff --git a/examples/1.9.x/server-php/examples/project/update-o-auth-2-oidc.md b/examples/1.9.x/server-php/examples/project/update-o-auth-2-oidc.md index 1b9d9b86a..2c06fe89a 100644 --- a/examples/1.9.x/server-php/examples/project/update-o-auth-2-oidc.md +++ b/examples/1.9.x/server-php/examples/project/update-o-auth-2-oidc.md @@ -3,6 +3,7 @@ use Appwrite\Client; use Appwrite\Services\Project; +use Appwrite\Enums\ProjectOAuth2OidcPrompt; $client = (new Client()) ->setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint @@ -18,5 +19,7 @@ $result = $project->updateOAuth2Oidc( authorizationURL: 'https://example.com', // optional tokenURL: 'https://example.com', // optional userInfoURL: 'https://example.com', // optional + prompt: [ProjectOAuth2OidcPrompt::NONE()], // optional + maxAge: 0, // optional enabled: false // optional );``` diff --git a/examples/1.9.x/server-php/examples/project/update-o-auth-2-server.md b/examples/1.9.x/server-php/examples/project/update-o-auth-2-server.md index d89743033..9c3eb9a82 100644 --- a/examples/1.9.x/server-php/examples/project/update-o-auth-2-server.md +++ b/examples/1.9.x/server-php/examples/project/update-o-auth-2-server.md @@ -24,5 +24,6 @@ $result = $project->updateOAuth2Server( verificationUrl: 'https://example.com', // optional userCodeLength: 6, // optional userCodeFormat: 'numeric', // optional - deviceCodeDuration: 60 // optional + deviceCodeDuration: 60, // optional + defaultScopes: [] // optional );``` diff --git a/examples/1.9.x/server-php/examples/sites/get-deployment-download.md b/examples/1.9.x/server-php/examples/sites/get-deployment-download.md index 5582e9642..bfa02f112 100644 --- a/examples/1.9.x/server-php/examples/sites/get-deployment-download.md +++ b/examples/1.9.x/server-php/examples/sites/get-deployment-download.md @@ -15,5 +15,6 @@ $sites = new Sites($client); $result = $sites->getDeploymentDownload( siteId: '', deploymentId: '', - type: DeploymentDownloadType::SOURCE() // optional + type: DeploymentDownloadType::SOURCE(), // optional + token: '' // optional );``` diff --git a/examples/1.9.x/server-php/examples/tablesdb/create-failover.md b/examples/1.9.x/server-php/examples/tablesdb/create-failover.md new file mode 100644 index 000000000..fbd2837b0 --- /dev/null +++ b/examples/1.9.x/server-php/examples/tablesdb/create-failover.md @@ -0,0 +1,17 @@ +```php +setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint + ->setProject('') // Your project ID + ->setKey(''); // Your secret API key + +$tablesDB = new TablesDB($client); + +$result = $tablesDB->createFailover( + databaseId: '', + targetReplicaId: '' // optional +);``` diff --git a/examples/1.9.x/server-php/examples/tablesdb/create.md b/examples/1.9.x/server-php/examples/tablesdb/create.md index 34d305693..87c81dd25 100644 --- a/examples/1.9.x/server-php/examples/tablesdb/create.md +++ b/examples/1.9.x/server-php/examples/tablesdb/create.md @@ -15,5 +15,6 @@ $result = $tablesDB->create( databaseId: '', name: '', enabled: false, // optional - dedicatedDatabaseId: '' // optional + specification: 'serverless', // optional + replicas: 0 // optional );``` diff --git a/examples/1.9.x/server-php/examples/tablesdb/get-replicas.md b/examples/1.9.x/server-php/examples/tablesdb/get-replicas.md new file mode 100644 index 000000000..0bc85769c --- /dev/null +++ b/examples/1.9.x/server-php/examples/tablesdb/get-replicas.md @@ -0,0 +1,16 @@ +```php +setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint + ->setProject('') // Your project ID + ->setKey(''); // Your secret API key + +$tablesDB = new TablesDB($client); + +$result = $tablesDB->getReplicas( + databaseId: '' +);``` diff --git a/examples/1.9.x/server-php/examples/tablesdb/get-status.md b/examples/1.9.x/server-php/examples/tablesdb/get-status.md new file mode 100644 index 000000000..e7a227c5d --- /dev/null +++ b/examples/1.9.x/server-php/examples/tablesdb/get-status.md @@ -0,0 +1,16 @@ +```php +setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint + ->setProject('') // Your project ID + ->setKey(''); // Your secret API key + +$tablesDB = new TablesDB($client); + +$result = $tablesDB->getStatus( + databaseId: '' +);``` diff --git a/examples/1.9.x/server-php/examples/tablesdb/list-specifications.md b/examples/1.9.x/server-php/examples/tablesdb/list-specifications.md new file mode 100644 index 000000000..b4080072b --- /dev/null +++ b/examples/1.9.x/server-php/examples/tablesdb/list-specifications.md @@ -0,0 +1,15 @@ +```php +setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint + ->setProject('') // Your project ID + ->setKey(''); // Your secret API key + +$tablesDB = new TablesDB($client); + +$result = $tablesDB->listSpecifications(); +``` diff --git a/examples/1.9.x/server-php/examples/tablesdb/update.md b/examples/1.9.x/server-php/examples/tablesdb/update.md index 126b3cafe..e6c703afc 100644 --- a/examples/1.9.x/server-php/examples/tablesdb/update.md +++ b/examples/1.9.x/server-php/examples/tablesdb/update.md @@ -14,5 +14,6 @@ $tablesDB = new TablesDB($client); $result = $tablesDB->update( databaseId: '', name: '', // optional - enabled: false // optional + enabled: false, // optional + replicas: 0 // optional );``` diff --git a/examples/1.9.x/server-php/examples/usage/list-events.md b/examples/1.9.x/server-php/examples/usage/list-events.md index 7613702c3..759e2b13c 100644 --- a/examples/1.9.x/server-php/examples/usage/list-events.md +++ b/examples/1.9.x/server-php/examples/usage/list-events.md @@ -13,8 +13,7 @@ $usage = new Usage($client); $result = $usage->listEvents( metrics: [], - resource: '', // optional - resourceId: '', // optional + queries: [], // optional interval: '1m', // optional dimensions: [], // optional startAt: '2020-10-15T06:38:00.000+00:00', // optional diff --git a/examples/1.9.x/server-php/examples/usage/list-gauges.md b/examples/1.9.x/server-php/examples/usage/list-gauges.md index 1fa7d5888..d37e113cb 100644 --- a/examples/1.9.x/server-php/examples/usage/list-gauges.md +++ b/examples/1.9.x/server-php/examples/usage/list-gauges.md @@ -13,8 +13,7 @@ $usage = new Usage($client); $result = $usage->listGauges( metrics: [], - resourceId: '', // optional - teamId: '', // optional + queries: [], // optional interval: '1m', // optional dimensions: [], // optional startAt: '2020-10-15T06:38:00.000+00:00', // optional diff --git a/examples/1.9.x/server-python/examples/account/delete-consent-token.md b/examples/1.9.x/server-python/examples/account/delete-consent-token.md new file mode 100644 index 000000000..614b78ee7 --- /dev/null +++ b/examples/1.9.x/server-python/examples/account/delete-consent-token.md @@ -0,0 +1,16 @@ +```python +from appwrite.client import Client +from appwrite.services.account import Account + +client = Client() +client.set_endpoint('https://.cloud.appwrite.io/v1') # Your API Endpoint +client.set_project('') # Your project ID +client.set_session('') # The user session to authenticate with + +account = Account(client) + +result = account.delete_consent_token( + consent_id = '', + token_id = '' +) +``` diff --git a/examples/1.9.x/server-python/examples/account/delete-consent.md b/examples/1.9.x/server-python/examples/account/delete-consent.md new file mode 100644 index 000000000..8c2c41133 --- /dev/null +++ b/examples/1.9.x/server-python/examples/account/delete-consent.md @@ -0,0 +1,15 @@ +```python +from appwrite.client import Client +from appwrite.services.account import Account + +client = Client() +client.set_endpoint('https://.cloud.appwrite.io/v1') # Your API Endpoint +client.set_project('') # Your project ID +client.set_session('') # The user session to authenticate with + +account = Account(client) + +result = account.delete_consent( + consent_id = '' +) +``` diff --git a/examples/1.9.x/server-python/examples/account/get-consent-token.md b/examples/1.9.x/server-python/examples/account/get-consent-token.md new file mode 100644 index 000000000..a5edd0a70 --- /dev/null +++ b/examples/1.9.x/server-python/examples/account/get-consent-token.md @@ -0,0 +1,19 @@ +```python +from appwrite.client import Client +from appwrite.services.account import Account +from appwrite.models import Oauth2ConsentToken + +client = Client() +client.set_endpoint('https://.cloud.appwrite.io/v1') # Your API Endpoint +client.set_project('') # Your project ID +client.set_session('') # The user session to authenticate with + +account = Account(client) + +result: Oauth2ConsentToken = account.get_consent_token( + consent_id = '', + token_id = '' +) + +print(result.model_dump()) +``` diff --git a/examples/1.9.x/server-python/examples/account/get-consent.md b/examples/1.9.x/server-python/examples/account/get-consent.md new file mode 100644 index 000000000..45ba0a82f --- /dev/null +++ b/examples/1.9.x/server-python/examples/account/get-consent.md @@ -0,0 +1,18 @@ +```python +from appwrite.client import Client +from appwrite.services.account import Account +from appwrite.models import Oauth2Consent + +client = Client() +client.set_endpoint('https://.cloud.appwrite.io/v1') # Your API Endpoint +client.set_project('') # Your project ID +client.set_session('') # The user session to authenticate with + +account = Account(client) + +result: Oauth2Consent = account.get_consent( + consent_id = '' +) + +print(result.model_dump()) +``` diff --git a/examples/1.9.x/server-python/examples/account/list-consent-tokens.md b/examples/1.9.x/server-python/examples/account/list-consent-tokens.md new file mode 100644 index 000000000..3be9fbe34 --- /dev/null +++ b/examples/1.9.x/server-python/examples/account/list-consent-tokens.md @@ -0,0 +1,20 @@ +```python +from appwrite.client import Client +from appwrite.services.account import Account +from appwrite.models import Oauth2ConsentTokenList + +client = Client() +client.set_endpoint('https://.cloud.appwrite.io/v1') # Your API Endpoint +client.set_project('') # Your project ID +client.set_session('') # The user session to authenticate with + +account = Account(client) + +result: Oauth2ConsentTokenList = account.list_consent_tokens( + consent_id = '', + queries = [], # optional + total = False # optional +) + +print(result.model_dump()) +``` diff --git a/examples/1.9.x/server-python/examples/account/list-consents.md b/examples/1.9.x/server-python/examples/account/list-consents.md new file mode 100644 index 000000000..d2b5b69c2 --- /dev/null +++ b/examples/1.9.x/server-python/examples/account/list-consents.md @@ -0,0 +1,19 @@ +```python +from appwrite.client import Client +from appwrite.services.account import Account +from appwrite.models import Oauth2ConsentList + +client = Client() +client.set_endpoint('https://.cloud.appwrite.io/v1') # Your API Endpoint +client.set_project('') # Your project ID +client.set_session('') # The user session to authenticate with + +account = Account(client) + +result: Oauth2ConsentList = account.list_consents( + queries = [], # optional + total = False # optional +) + +print(result.model_dump()) +``` diff --git a/examples/1.9.x/server-python/examples/apps/list-o-auth-2-scopes.md b/examples/1.9.x/server-python/examples/apps/list-o-auth-2-scopes.md new file mode 100644 index 000000000..8720e78c7 --- /dev/null +++ b/examples/1.9.x/server-python/examples/apps/list-o-auth-2-scopes.md @@ -0,0 +1,16 @@ +```python +from appwrite.client import Client +from appwrite.services.apps import Apps +from appwrite.models import AppScopeList + +client = Client() +client.set_endpoint('https://.cloud.appwrite.io/v1') # Your API Endpoint +client.set_project('') # Your project ID +client.set_session('') # The user session to authenticate with + +apps = Apps(client) + +result: AppScopeList = apps.list_o_auth2_scopes() + +print(result.model_dump()) +``` diff --git a/examples/1.9.x/server-python/examples/apps/update-labels.md b/examples/1.9.x/server-python/examples/apps/update-labels.md new file mode 100644 index 000000000..0601df3fd --- /dev/null +++ b/examples/1.9.x/server-python/examples/apps/update-labels.md @@ -0,0 +1,19 @@ +```python +from appwrite.client import Client +from appwrite.services.apps import Apps +from appwrite.models import App + +client = Client() +client.set_endpoint('https://.cloud.appwrite.io/v1') # Your API Endpoint +client.set_project('') # Your project ID +client.set_key('') # Your secret API key + +apps = Apps(client) + +result: App = apps.update_labels( + app_id = '', + labels = [] +) + +print(result.model_dump()) +``` diff --git a/examples/1.9.x/server-python/examples/functions/get-deployment-download.md b/examples/1.9.x/server-python/examples/functions/get-deployment-download.md index 7f6b2f6ba..49df861b2 100644 --- a/examples/1.9.x/server-python/examples/functions/get-deployment-download.md +++ b/examples/1.9.x/server-python/examples/functions/get-deployment-download.md @@ -13,6 +13,7 @@ functions = Functions(client) result: bytes = functions.get_deployment_download( function_id = '', deployment_id = '', - type = DeploymentDownloadType.SOURCE # optional + type = DeploymentDownloadType.SOURCE, # optional + token = '' # optional ) ``` diff --git a/examples/1.9.x/server-python/examples/health/get-geo-premium.md b/examples/1.9.x/server-python/examples/health/get-geo-premium.md new file mode 100644 index 000000000..640197b35 --- /dev/null +++ b/examples/1.9.x/server-python/examples/health/get-geo-premium.md @@ -0,0 +1,16 @@ +```python +from appwrite.client import Client +from appwrite.services.health import Health +from appwrite.models import HealthStatus + +client = Client() +client.set_endpoint('https://.cloud.appwrite.io/v1') # Your API Endpoint +client.set_project('') # Your project ID +client.set_key('') # Your secret API key + +health = Health(client) + +result: HealthStatus = health.get_geo_premium() + +print(result.model_dump()) +``` diff --git a/examples/1.9.x/server-python/examples/health/get-geo.md b/examples/1.9.x/server-python/examples/health/get-geo.md new file mode 100644 index 000000000..0f1ebb5f7 --- /dev/null +++ b/examples/1.9.x/server-python/examples/health/get-geo.md @@ -0,0 +1,16 @@ +```python +from appwrite.client import Client +from appwrite.services.health import Health +from appwrite.models import HealthStatus + +client = Client() +client.set_endpoint('https://.cloud.appwrite.io/v1') # Your API Endpoint +client.set_project('') # Your project ID +client.set_key('') # Your secret API key + +health = Health(client) + +result: HealthStatus = health.get_geo() + +print(result.model_dump()) +``` diff --git a/examples/1.9.x/server-python/examples/health/get-queue-notifications.md b/examples/1.9.x/server-python/examples/health/get-queue-notifications.md new file mode 100644 index 000000000..6f38d337f --- /dev/null +++ b/examples/1.9.x/server-python/examples/health/get-queue-notifications.md @@ -0,0 +1,18 @@ +```python +from appwrite.client import Client +from appwrite.services.health import Health +from appwrite.models import HealthQueue + +client = Client() +client.set_endpoint('https://.cloud.appwrite.io/v1') # Your API Endpoint +client.set_project('') # Your project ID +client.set_key('') # Your secret API key + +health = Health(client) + +result: HealthQueue = health.get_queue_notifications( + threshold = None # optional +) + +print(result.model_dump()) +``` diff --git a/examples/1.9.x/server-python/examples/oauth2/approve.md b/examples/1.9.x/server-python/examples/oauth2/approve.md index b3313599e..12bc9c0d7 100644 --- a/examples/1.9.x/server-python/examples/oauth2/approve.md +++ b/examples/1.9.x/server-python/examples/oauth2/approve.md @@ -12,7 +12,8 @@ oauth2 = Oauth2(client) result: Oauth2Approve = oauth2.approve( grant_id = '', - authorization_details = '' # optional + authorization_details = '', # optional + scope = '' # optional ) print(result.model_dump()) diff --git a/examples/1.9.x/server-python/examples/oauth2/authorize-post.md b/examples/1.9.x/server-python/examples/oauth2/authorize-post.md new file mode 100644 index 000000000..b6dd64493 --- /dev/null +++ b/examples/1.9.x/server-python/examples/oauth2/authorize-post.md @@ -0,0 +1,31 @@ +```python +from appwrite.client import Client +from appwrite.services.oauth2 import Oauth2 +from appwrite.models import Oauth2Authorize + +client = Client() +client.set_endpoint('https://.cloud.appwrite.io/v1') # Your API Endpoint +client.set_session('') # The user session to authenticate with +client.set_project('') # Your project ID + +oauth2 = Oauth2(client) + +result: Oauth2Authorize = oauth2.authorize_post( + 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 +) + +print(result.model_dump()) +``` diff --git a/examples/1.9.x/server-python/examples/oauth2/authorize.md b/examples/1.9.x/server-python/examples/oauth2/authorize.md index 0827f4636..9d7bb4868 100644 --- a/examples/1.9.x/server-python/examples/oauth2/authorize.md +++ b/examples/1.9.x/server-python/examples/oauth2/authorize.md @@ -11,10 +11,10 @@ client.set_project('') # Your project ID oauth2 = Oauth2(client) result: Oauth2Authorize = oauth2.authorize( - client_id = '', - redirect_uri = 'https://example.com', - response_type = 'code', - scope = '', + client_id = '', # optional + redirect_uri = 'https://example.com', # optional + response_type = '', # optional + scope = '', # optional state = '', # optional nonce = '', # optional code_challenge = '', # optional @@ -22,7 +22,9 @@ result: Oauth2Authorize = oauth2.authorize( prompt = '', # optional max_age = 0, # optional authorization_details = '', # optional - resource = '' # optional + resource = '', # optional + audience = '', # optional + request_uri = '' # optional ) print(result.model_dump()) diff --git a/examples/1.9.x/server-python/examples/oauth2/create-device-authorization.md b/examples/1.9.x/server-python/examples/oauth2/create-device-authorization.md index 3b74d1d2b..0fa3852de 100644 --- a/examples/1.9.x/server-python/examples/oauth2/create-device-authorization.md +++ b/examples/1.9.x/server-python/examples/oauth2/create-device-authorization.md @@ -14,7 +14,8 @@ result: Oauth2DeviceAuthorization = oauth2.create_device_authorization( client_id = '', # optional scope = '', # optional authorization_details = '', # optional - resource = '' # optional + resource = '', # optional + audience = '' # optional ) print(result.model_dump()) diff --git a/examples/1.9.x/server-python/examples/oauth2/create-par.md b/examples/1.9.x/server-python/examples/oauth2/create-par.md new file mode 100644 index 000000000..2018794ca --- /dev/null +++ b/examples/1.9.x/server-python/examples/oauth2/create-par.md @@ -0,0 +1,30 @@ +```python +from appwrite.client import Client +from appwrite.services.oauth2 import Oauth2 +from appwrite.models import Oauth2PAR + +client = Client() +client.set_endpoint('https://.cloud.appwrite.io/v1') # Your API Endpoint +client.set_session('') # The user session to authenticate with +client.set_project('') # Your project ID + +oauth2 = Oauth2(client) + +result: Oauth2PAR = oauth2.create_par( + 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 +) + +print(result.model_dump()) +``` diff --git a/examples/1.9.x/server-python/examples/oauth2/create-token.md b/examples/1.9.x/server-python/examples/oauth2/create-token.md index 79607bef6..1d52bbc90 100644 --- a/examples/1.9.x/server-python/examples/oauth2/create-token.md +++ b/examples/1.9.x/server-python/examples/oauth2/create-token.md @@ -19,7 +19,8 @@ result: Oauth2Token = oauth2.create_token( client_secret = '', # optional code_verifier = '', # optional redirect_uri = 'https://example.com', # optional - resource = '' # optional + resource = '', # optional + audience = '' # optional ) print(result.model_dump()) diff --git a/examples/1.9.x/server-python/examples/oauth2/list-organizations.md b/examples/1.9.x/server-python/examples/oauth2/list-organizations.md new file mode 100644 index 000000000..42ece3a8f --- /dev/null +++ b/examples/1.9.x/server-python/examples/oauth2/list-organizations.md @@ -0,0 +1,20 @@ +```python +from appwrite.client import Client +from appwrite.services.oauth2 import Oauth2 +from appwrite.models import Oauth2OrganizationList + +client = Client() +client.set_endpoint('https://.cloud.appwrite.io/v1') # Your API Endpoint +client.set_session('') # The user session to authenticate with +client.set_project('') # Your project ID + +oauth2 = Oauth2(client) + +result: Oauth2OrganizationList = oauth2.list_organizations( + limit = 1, # optional + offset = 0, # optional + search = '' # optional +) + +print(result.model_dump()) +``` diff --git a/examples/1.9.x/server-python/examples/oauth2/list-projects.md b/examples/1.9.x/server-python/examples/oauth2/list-projects.md new file mode 100644 index 000000000..97a58b7b6 --- /dev/null +++ b/examples/1.9.x/server-python/examples/oauth2/list-projects.md @@ -0,0 +1,20 @@ +```python +from appwrite.client import Client +from appwrite.services.oauth2 import Oauth2 +from appwrite.models import Oauth2ProjectList + +client = Client() +client.set_endpoint('https://.cloud.appwrite.io/v1') # Your API Endpoint +client.set_session('') # The user session to authenticate with +client.set_project('') # Your project ID + +oauth2 = Oauth2(client) + +result: Oauth2ProjectList = oauth2.list_projects( + limit = 1, # optional + offset = 0, # optional + search = '' # optional +) + +print(result.model_dump()) +``` diff --git a/examples/1.9.x/server-python/examples/organization/create-membership.md b/examples/1.9.x/server-python/examples/organization/create-membership.md new file mode 100644 index 000000000..0801bdd77 --- /dev/null +++ b/examples/1.9.x/server-python/examples/organization/create-membership.md @@ -0,0 +1,23 @@ +```python +from appwrite.client import Client +from appwrite.services.organization import Organization +from appwrite.models import Membership + +client = Client() +client.set_endpoint('https://.cloud.appwrite.io/v1') # Your API Endpoint +client.set_project('') # Your project ID +client.set_key('') # Your secret API key + +organization = Organization(client) + +result: Membership = organization.create_membership( + roles = [], + email = 'email@example.com', # optional + user_id = '', # optional + phone = '+12065550100', # optional + url = 'https://example.com', # optional + name = '' # optional +) + +print(result.model_dump()) +``` diff --git a/examples/1.9.x/server-python/examples/organization/delete-membership.md b/examples/1.9.x/server-python/examples/organization/delete-membership.md new file mode 100644 index 000000000..dee81d19f --- /dev/null +++ b/examples/1.9.x/server-python/examples/organization/delete-membership.md @@ -0,0 +1,15 @@ +```python +from appwrite.client import Client +from appwrite.services.organization import Organization + +client = Client() +client.set_endpoint('https://.cloud.appwrite.io/v1') # Your API Endpoint +client.set_project('') # Your project ID +client.set_key('') # Your secret API key + +organization = Organization(client) + +result = organization.delete_membership( + membership_id = '' +) +``` diff --git a/examples/1.9.x/server-python/examples/organization/delete.md b/examples/1.9.x/server-python/examples/organization/delete.md new file mode 100644 index 000000000..94b7c2a74 --- /dev/null +++ b/examples/1.9.x/server-python/examples/organization/delete.md @@ -0,0 +1,13 @@ +```python +from appwrite.client import Client +from appwrite.services.organization import Organization + +client = Client() +client.set_endpoint('https://.cloud.appwrite.io/v1') # Your API Endpoint +client.set_project('') # Your project ID +client.set_key('') # Your secret API key + +organization = Organization(client) + +result = organization.delete() +``` diff --git a/examples/1.9.x/server-python/examples/organization/get-membership.md b/examples/1.9.x/server-python/examples/organization/get-membership.md new file mode 100644 index 000000000..b3fcd9de2 --- /dev/null +++ b/examples/1.9.x/server-python/examples/organization/get-membership.md @@ -0,0 +1,18 @@ +```python +from appwrite.client import Client +from appwrite.services.organization import Organization +from appwrite.models import Membership + +client = Client() +client.set_endpoint('https://.cloud.appwrite.io/v1') # Your API Endpoint +client.set_project('') # Your project ID +client.set_key('') # Your secret API key + +organization = Organization(client) + +result: Membership = organization.get_membership( + membership_id = '' +) + +print(result.model_dump()) +``` diff --git a/examples/1.9.x/server-python/examples/organization/get.md b/examples/1.9.x/server-python/examples/organization/get.md new file mode 100644 index 000000000..b99b6a7fd --- /dev/null +++ b/examples/1.9.x/server-python/examples/organization/get.md @@ -0,0 +1,16 @@ +```python +from appwrite.client import Client +from appwrite.services.organization import Organization +from appwrite.models import Organization as OrganizationModel + +client = Client() +client.set_endpoint('https://.cloud.appwrite.io/v1') # Your API Endpoint +client.set_project('') # Your project ID +client.set_key('') # Your secret API key + +organization = Organization(client) + +result: OrganizationModel = organization.get() + +print(result.model_dump()) +``` diff --git a/examples/1.9.x/server-python/examples/organization/list-memberships.md b/examples/1.9.x/server-python/examples/organization/list-memberships.md new file mode 100644 index 000000000..e49e1793e --- /dev/null +++ b/examples/1.9.x/server-python/examples/organization/list-memberships.md @@ -0,0 +1,20 @@ +```python +from appwrite.client import Client +from appwrite.services.organization import Organization +from appwrite.models import MembershipList + +client = Client() +client.set_endpoint('https://.cloud.appwrite.io/v1') # Your API Endpoint +client.set_project('') # Your project ID +client.set_key('') # Your secret API key + +organization = Organization(client) + +result: MembershipList = organization.list_memberships( + queries = [], # optional + search = '', # optional + total = False # optional +) + +print(result.model_dump()) +``` diff --git a/examples/1.9.x/server-python/examples/organization/update-membership.md b/examples/1.9.x/server-python/examples/organization/update-membership.md new file mode 100644 index 000000000..a4f9c5a02 --- /dev/null +++ b/examples/1.9.x/server-python/examples/organization/update-membership.md @@ -0,0 +1,19 @@ +```python +from appwrite.client import Client +from appwrite.services.organization import Organization +from appwrite.models import Membership + +client = Client() +client.set_endpoint('https://.cloud.appwrite.io/v1') # Your API Endpoint +client.set_project('') # Your project ID +client.set_key('') # Your secret API key + +organization = Organization(client) + +result: Membership = organization.update_membership( + membership_id = '', + roles = [] +) + +print(result.model_dump()) +``` diff --git a/examples/1.9.x/server-python/examples/organization/update.md b/examples/1.9.x/server-python/examples/organization/update.md new file mode 100644 index 000000000..6d456c57f --- /dev/null +++ b/examples/1.9.x/server-python/examples/organization/update.md @@ -0,0 +1,18 @@ +```python +from appwrite.client import Client +from appwrite.services.organization import Organization +from appwrite.models import Organization as OrganizationModel + +client = Client() +client.set_endpoint('https://.cloud.appwrite.io/v1') # Your API Endpoint +client.set_project('') # Your project ID +client.set_key('') # Your secret API key + +organization = Organization(client) + +result: OrganizationModel = organization.update( + name = '' +) + +print(result.model_dump()) +``` diff --git a/examples/1.9.x/server-python/examples/project/update-o-auth-2-appwrite.md b/examples/1.9.x/server-python/examples/project/update-o-auth-2-appwrite.md new file mode 100644 index 000000000..7b7659218 --- /dev/null +++ b/examples/1.9.x/server-python/examples/project/update-o-auth-2-appwrite.md @@ -0,0 +1,20 @@ +```python +from appwrite.client import Client +from appwrite.services.project import Project +from appwrite.models import OAuth2Appwrite + +client = Client() +client.set_endpoint('https://.cloud.appwrite.io/v1') # Your API Endpoint +client.set_project('') # Your project ID +client.set_key('') # Your secret API key + +project = Project(client) + +result: OAuth2Appwrite = project.update_o_auth2_appwrite( + client_id = '', # optional + client_secret = '', # optional + enabled = False # optional +) + +print(result.model_dump()) +``` diff --git a/examples/1.9.x/server-python/examples/project/update-o-auth-2-oidc.md b/examples/1.9.x/server-python/examples/project/update-o-auth-2-oidc.md index 3913262de..e2df2e3ca 100644 --- a/examples/1.9.x/server-python/examples/project/update-o-auth-2-oidc.md +++ b/examples/1.9.x/server-python/examples/project/update-o-auth-2-oidc.md @@ -2,6 +2,7 @@ from appwrite.client import Client from appwrite.services.project import Project from appwrite.models import OAuth2Oidc +from appwrite.enums import ProjectOAuth2OidcPrompt client = Client() client.set_endpoint('https://.cloud.appwrite.io/v1') # Your API Endpoint @@ -17,6 +18,8 @@ result: OAuth2Oidc = project.update_o_auth2_oidc( authorization_url = 'https://example.com', # optional token_url = 'https://example.com', # optional user_info_url = 'https://example.com', # optional + prompt = [ProjectOAuth2OidcPrompt.NONE], # optional + max_age = 0, # optional enabled = False # optional ) diff --git a/examples/1.9.x/server-python/examples/project/update-o-auth-2-server.md b/examples/1.9.x/server-python/examples/project/update-o-auth-2-server.md index 6c5b25787..6be24c54a 100644 --- a/examples/1.9.x/server-python/examples/project/update-o-auth-2-server.md +++ b/examples/1.9.x/server-python/examples/project/update-o-auth-2-server.md @@ -23,7 +23,8 @@ result: ProjectModel = project.update_o_auth2_server( verification_url = 'https://example.com', # optional user_code_length = 6, # optional user_code_format = 'numeric', # optional - device_code_duration = 60 # optional + device_code_duration = 60, # optional + default_scopes = [] # optional ) print(result.model_dump()) diff --git a/examples/1.9.x/server-python/examples/sites/get-deployment-download.md b/examples/1.9.x/server-python/examples/sites/get-deployment-download.md index eae2543c4..7d6ae537d 100644 --- a/examples/1.9.x/server-python/examples/sites/get-deployment-download.md +++ b/examples/1.9.x/server-python/examples/sites/get-deployment-download.md @@ -13,6 +13,7 @@ sites = Sites(client) result: bytes = sites.get_deployment_download( site_id = '', deployment_id = '', - type = DeploymentDownloadType.SOURCE # optional + type = DeploymentDownloadType.SOURCE, # optional + token = '' # optional ) ``` diff --git a/examples/1.9.x/server-python/examples/tablesdb/create-failover.md b/examples/1.9.x/server-python/examples/tablesdb/create-failover.md new file mode 100644 index 000000000..839f8bafa --- /dev/null +++ b/examples/1.9.x/server-python/examples/tablesdb/create-failover.md @@ -0,0 +1,19 @@ +```python +from appwrite.client import Client +from appwrite.services.tables_db import TablesDB +from appwrite.models import DedicatedDatabase + +client = Client() +client.set_endpoint('https://.cloud.appwrite.io/v1') # Your API Endpoint +client.set_project('') # Your project ID +client.set_key('') # Your secret API key + +tables_db = TablesDB(client) + +result: DedicatedDatabase = tables_db.create_failover( + database_id = '', + target_replica_id = '' # optional +) + +print(result.model_dump()) +``` diff --git a/examples/1.9.x/server-python/examples/tablesdb/create.md b/examples/1.9.x/server-python/examples/tablesdb/create.md index c50f28e71..0c5260cf2 100644 --- a/examples/1.9.x/server-python/examples/tablesdb/create.md +++ b/examples/1.9.x/server-python/examples/tablesdb/create.md @@ -14,7 +14,8 @@ result: Database = tables_db.create( database_id = '', name = '', enabled = False, # optional - dedicated_database_id = '' # optional + specification = 'serverless', # optional + replicas = 0 # optional ) print(result.model_dump()) diff --git a/examples/1.9.x/server-python/examples/tablesdb/get-replicas.md b/examples/1.9.x/server-python/examples/tablesdb/get-replicas.md new file mode 100644 index 000000000..abd5df1b4 --- /dev/null +++ b/examples/1.9.x/server-python/examples/tablesdb/get-replicas.md @@ -0,0 +1,18 @@ +```python +from appwrite.client import Client +from appwrite.services.tables_db import TablesDB +from appwrite.models import DedicatedDatabaseReplicas + +client = Client() +client.set_endpoint('https://.cloud.appwrite.io/v1') # Your API Endpoint +client.set_project('') # Your project ID +client.set_key('') # Your secret API key + +tables_db = TablesDB(client) + +result: DedicatedDatabaseReplicas = tables_db.get_replicas( + database_id = '' +) + +print(result.model_dump()) +``` diff --git a/examples/1.9.x/server-python/examples/tablesdb/get-status.md b/examples/1.9.x/server-python/examples/tablesdb/get-status.md new file mode 100644 index 000000000..0695da1fd --- /dev/null +++ b/examples/1.9.x/server-python/examples/tablesdb/get-status.md @@ -0,0 +1,18 @@ +```python +from appwrite.client import Client +from appwrite.services.tables_db import TablesDB +from appwrite.models import DatabaseStatus + +client = Client() +client.set_endpoint('https://.cloud.appwrite.io/v1') # Your API Endpoint +client.set_project('') # Your project ID +client.set_key('') # Your secret API key + +tables_db = TablesDB(client) + +result: DatabaseStatus = tables_db.get_status( + database_id = '' +) + +print(result.model_dump()) +``` diff --git a/examples/1.9.x/server-python/examples/tablesdb/list-specifications.md b/examples/1.9.x/server-python/examples/tablesdb/list-specifications.md new file mode 100644 index 000000000..c0fc0f8bc --- /dev/null +++ b/examples/1.9.x/server-python/examples/tablesdb/list-specifications.md @@ -0,0 +1,16 @@ +```python +from appwrite.client import Client +from appwrite.services.tables_db import TablesDB +from appwrite.models import DedicatedDatabaseSpecificationList + +client = Client() +client.set_endpoint('https://.cloud.appwrite.io/v1') # Your API Endpoint +client.set_project('') # Your project ID +client.set_key('') # Your secret API key + +tables_db = TablesDB(client) + +result: DedicatedDatabaseSpecificationList = tables_db.list_specifications() + +print(result.model_dump()) +``` diff --git a/examples/1.9.x/server-python/examples/tablesdb/update.md b/examples/1.9.x/server-python/examples/tablesdb/update.md index aea548588..8609072ea 100644 --- a/examples/1.9.x/server-python/examples/tablesdb/update.md +++ b/examples/1.9.x/server-python/examples/tablesdb/update.md @@ -13,7 +13,8 @@ tables_db = TablesDB(client) result: Database = tables_db.update( database_id = '', name = '', # optional - enabled = False # optional + enabled = False, # optional + replicas = 0 # optional ) print(result.model_dump()) diff --git a/examples/1.9.x/server-python/examples/usage/list-events.md b/examples/1.9.x/server-python/examples/usage/list-events.md index 83f8d725c..399ee6790 100644 --- a/examples/1.9.x/server-python/examples/usage/list-events.md +++ b/examples/1.9.x/server-python/examples/usage/list-events.md @@ -12,8 +12,7 @@ usage = Usage(client) result: UsageEventList = usage.list_events( metrics = [], - resource = '', # optional - resource_id = '', # optional + queries = [], # optional interval = '1m', # optional dimensions = [], # optional start_at = '2020-10-15T06:38:00.000+00:00', # optional diff --git a/examples/1.9.x/server-python/examples/usage/list-gauges.md b/examples/1.9.x/server-python/examples/usage/list-gauges.md index fb221f9ac..8da0efd8d 100644 --- a/examples/1.9.x/server-python/examples/usage/list-gauges.md +++ b/examples/1.9.x/server-python/examples/usage/list-gauges.md @@ -12,8 +12,7 @@ usage = Usage(client) result: UsageGaugeList = usage.list_gauges( metrics = [], - resource_id = '', # optional - team_id = '', # optional + queries = [], # optional interval = '1m', # optional dimensions = [], # optional start_at = '2020-10-15T06:38:00.000+00:00', # optional diff --git a/examples/1.9.x/server-python/examples/waf/create-bypass-rule.md b/examples/1.9.x/server-python/examples/waf/create-bypass-rule.md new file mode 100644 index 000000000..4bd6b26d8 --- /dev/null +++ b/examples/1.9.x/server-python/examples/waf/create-bypass-rule.md @@ -0,0 +1,25 @@ +```python +from appwrite.client import Client +from appwrite.services.waf import Waf +from appwrite.models import WafRuleBypass + +client = Client() +client.set_endpoint('https://.cloud.appwrite.io/v1') # Your API Endpoint +client.set_project('') # Your project ID +client.set_key('') # Your secret API key + +waf = Waf(client) + +result: WafRuleBypass = waf.create_bypass_rule( + rule_id = '', + resource_type = 'api', + name = '', + resource_id = '', # optional + description = '', # optional + priority = -100000, # optional + enabled = False, # optional + conditions = '' # optional +) + +print(result.model_dump()) +``` diff --git a/examples/1.9.x/server-python/examples/waf/create-deny-rule.md b/examples/1.9.x/server-python/examples/waf/create-deny-rule.md new file mode 100644 index 000000000..fb5d9a6a1 --- /dev/null +++ b/examples/1.9.x/server-python/examples/waf/create-deny-rule.md @@ -0,0 +1,25 @@ +```python +from appwrite.client import Client +from appwrite.services.waf import Waf +from appwrite.models import WafRuleDeny + +client = Client() +client.set_endpoint('https://.cloud.appwrite.io/v1') # Your API Endpoint +client.set_project('') # Your project ID +client.set_key('') # Your secret API key + +waf = Waf(client) + +result: WafRuleDeny = waf.create_deny_rule( + rule_id = '', + resource_type = 'api', + name = '', + resource_id = '', # optional + description = '', # optional + priority = -100000, # optional + enabled = False, # optional + conditions = '' # optional +) + +print(result.model_dump()) +``` diff --git a/examples/1.9.x/server-python/examples/waf/create-rate-limit-rule.md b/examples/1.9.x/server-python/examples/waf/create-rate-limit-rule.md new file mode 100644 index 000000000..1d9d90825 --- /dev/null +++ b/examples/1.9.x/server-python/examples/waf/create-rate-limit-rule.md @@ -0,0 +1,27 @@ +```python +from appwrite.client import Client +from appwrite.services.waf import Waf +from appwrite.models import WafRuleRateLimit + +client = Client() +client.set_endpoint('https://.cloud.appwrite.io/v1') # Your API Endpoint +client.set_project('') # Your project ID +client.set_key('') # Your secret API key + +waf = Waf(client) + +result: WafRuleRateLimit = waf.create_rate_limit_rule( + rule_id = '', + resource_type = 'api', + name = '', + limit = 1, + interval = 1, + resource_id = '', # optional + description = '', # optional + priority = -100000, # optional + enabled = False, # optional + conditions = '' # optional +) + +print(result.model_dump()) +``` diff --git a/examples/1.9.x/server-python/examples/waf/create-redirect-rule.md b/examples/1.9.x/server-python/examples/waf/create-redirect-rule.md new file mode 100644 index 000000000..ed88bf840 --- /dev/null +++ b/examples/1.9.x/server-python/examples/waf/create-redirect-rule.md @@ -0,0 +1,27 @@ +```python +from appwrite.client import Client +from appwrite.services.waf import Waf +from appwrite.models import WafRuleRedirect + +client = Client() +client.set_endpoint('https://.cloud.appwrite.io/v1') # Your API Endpoint +client.set_project('') # Your project ID +client.set_key('') # Your secret API key + +waf = Waf(client) + +result: WafRuleRedirect = waf.create_redirect_rule( + rule_id = '', + resource_type = 'api', + name = '', + location = '', + status_code = 300, + resource_id = '', # optional + description = '', # optional + priority = -100000, # optional + enabled = False, # optional + conditions = '' # optional +) + +print(result.model_dump()) +``` diff --git a/examples/1.9.x/server-python/examples/waf/delete-rule.md b/examples/1.9.x/server-python/examples/waf/delete-rule.md new file mode 100644 index 000000000..a2fbe6d86 --- /dev/null +++ b/examples/1.9.x/server-python/examples/waf/delete-rule.md @@ -0,0 +1,15 @@ +```python +from appwrite.client import Client +from appwrite.services.waf import Waf + +client = Client() +client.set_endpoint('https://.cloud.appwrite.io/v1') # Your API Endpoint +client.set_project('') # Your project ID +client.set_key('') # Your secret API key + +waf = Waf(client) + +result = waf.delete_rule( + rule_id = '' +) +``` diff --git a/examples/1.9.x/server-python/examples/waf/get-rule.md b/examples/1.9.x/server-python/examples/waf/get-rule.md new file mode 100644 index 000000000..c4f56f302 --- /dev/null +++ b/examples/1.9.x/server-python/examples/waf/get-rule.md @@ -0,0 +1,18 @@ +```python +from appwrite.client import Client +from appwrite.services.waf import Waf +from appwrite.models import WafRule + +client = Client() +client.set_endpoint('https://.cloud.appwrite.io/v1') # Your API Endpoint +client.set_project('') # Your project ID +client.set_key('') # Your secret API key + +waf = Waf(client) + +result: WafRule = waf.get_rule( + rule_id = '' +) + +print(result.model_dump()) +``` diff --git a/examples/1.9.x/server-python/examples/waf/list-rules.md b/examples/1.9.x/server-python/examples/waf/list-rules.md new file mode 100644 index 000000000..d06a509e3 --- /dev/null +++ b/examples/1.9.x/server-python/examples/waf/list-rules.md @@ -0,0 +1,20 @@ +```python +from appwrite.client import Client +from appwrite.services.waf import Waf +from appwrite.models import WafRuleList + +client = Client() +client.set_endpoint('https://.cloud.appwrite.io/v1') # Your API Endpoint +client.set_project('') # Your project ID +client.set_key('') # Your secret API key + +waf = Waf(client) + +result: WafRuleList = waf.list_rules( + queries = [], # optional + search = '', # optional + total = False # optional +) + +print(result.model_dump()) +``` diff --git a/examples/1.9.x/server-python/examples/waf/update-bypass-rule.md b/examples/1.9.x/server-python/examples/waf/update-bypass-rule.md new file mode 100644 index 000000000..9dae178cb --- /dev/null +++ b/examples/1.9.x/server-python/examples/waf/update-bypass-rule.md @@ -0,0 +1,25 @@ +```python +from appwrite.client import Client +from appwrite.services.waf import Waf +from appwrite.models import WafRuleBypass + +client = Client() +client.set_endpoint('https://.cloud.appwrite.io/v1') # Your API Endpoint +client.set_project('') # Your project ID +client.set_key('') # Your secret API key + +waf = Waf(client) + +result: WafRuleBypass = waf.update_bypass_rule( + rule_id = '', + resource_type = 'api', # optional + resource_id = '', # optional + name = '', # optional + description = '', # optional + priority = -100000, # optional + enabled = False, # optional + conditions = '' # optional +) + +print(result.model_dump()) +``` diff --git a/examples/1.9.x/server-python/examples/waf/update-deny-rule.md b/examples/1.9.x/server-python/examples/waf/update-deny-rule.md new file mode 100644 index 000000000..483f7b3bb --- /dev/null +++ b/examples/1.9.x/server-python/examples/waf/update-deny-rule.md @@ -0,0 +1,25 @@ +```python +from appwrite.client import Client +from appwrite.services.waf import Waf +from appwrite.models import WafRuleDeny + +client = Client() +client.set_endpoint('https://.cloud.appwrite.io/v1') # Your API Endpoint +client.set_project('') # Your project ID +client.set_key('') # Your secret API key + +waf = Waf(client) + +result: WafRuleDeny = waf.update_deny_rule( + rule_id = '', + resource_type = 'api', # optional + resource_id = '', # optional + name = '', # optional + description = '', # optional + priority = -100000, # optional + enabled = False, # optional + conditions = '' # optional +) + +print(result.model_dump()) +``` diff --git a/examples/1.9.x/server-python/examples/waf/update-rate-limit-rule.md b/examples/1.9.x/server-python/examples/waf/update-rate-limit-rule.md new file mode 100644 index 000000000..19446ca1b --- /dev/null +++ b/examples/1.9.x/server-python/examples/waf/update-rate-limit-rule.md @@ -0,0 +1,27 @@ +```python +from appwrite.client import Client +from appwrite.services.waf import Waf +from appwrite.models import WafRuleRateLimit + +client = Client() +client.set_endpoint('https://.cloud.appwrite.io/v1') # Your API Endpoint +client.set_project('') # Your project ID +client.set_key('') # Your secret API key + +waf = Waf(client) + +result: WafRuleRateLimit = waf.update_rate_limit_rule( + rule_id = '', + resource_type = 'api', # optional + resource_id = '', # optional + name = '', # optional + description = '', # optional + limit = 1, # optional + interval = 1, # optional + priority = -100000, # optional + enabled = False, # optional + conditions = '' # optional +) + +print(result.model_dump()) +``` diff --git a/examples/1.9.x/server-python/examples/waf/update-redirect-rule.md b/examples/1.9.x/server-python/examples/waf/update-redirect-rule.md new file mode 100644 index 000000000..401a0d764 --- /dev/null +++ b/examples/1.9.x/server-python/examples/waf/update-redirect-rule.md @@ -0,0 +1,27 @@ +```python +from appwrite.client import Client +from appwrite.services.waf import Waf +from appwrite.models import WafRuleRedirect + +client = Client() +client.set_endpoint('https://.cloud.appwrite.io/v1') # Your API Endpoint +client.set_project('') # Your project ID +client.set_key('') # Your secret API key + +waf = Waf(client) + +result: WafRuleRedirect = waf.update_redirect_rule( + rule_id = '', + resource_type = 'api', # optional + resource_id = '', # optional + name = '', # optional + description = '', # optional + location = '', # optional + status_code = 300, # optional + priority = -100000, # optional + enabled = False, # optional + conditions = '' # optional +) + +print(result.model_dump()) +``` diff --git a/examples/1.9.x/server-rest/examples/account/delete-consent-token.md b/examples/1.9.x/server-rest/examples/account/delete-consent-token.md new file mode 100644 index 000000000..3fde857c6 --- /dev/null +++ b/examples/1.9.x/server-rest/examples/account/delete-consent-token.md @@ -0,0 +1,10 @@ +```http +DELETE /v1/account/consents/{consentId}/tokens/{tokenId} HTTP/1.1 +Host: cloud.appwrite.io +Content-Type: application/json +Accept: application/json +X-Appwrite-Response-Format: 1.9.5 +X-Appwrite-Project: + + +``` diff --git a/examples/1.9.x/server-rest/examples/account/delete-consent.md b/examples/1.9.x/server-rest/examples/account/delete-consent.md new file mode 100644 index 000000000..eee55beca --- /dev/null +++ b/examples/1.9.x/server-rest/examples/account/delete-consent.md @@ -0,0 +1,10 @@ +```http +DELETE /v1/account/consents/{consentId} HTTP/1.1 +Host: cloud.appwrite.io +Content-Type: application/json +Accept: application/json +X-Appwrite-Response-Format: 1.9.5 +X-Appwrite-Project: + + +``` diff --git a/examples/1.9.x/server-rest/examples/account/get-consent-token.md b/examples/1.9.x/server-rest/examples/account/get-consent-token.md new file mode 100644 index 000000000..50d0ff350 --- /dev/null +++ b/examples/1.9.x/server-rest/examples/account/get-consent-token.md @@ -0,0 +1,8 @@ +```http +GET /v1/account/consents/{consentId}/tokens/{tokenId} HTTP/1.1 +Host: cloud.appwrite.io +Accept: application/json +X-Appwrite-Response-Format: 1.9.5 +X-Appwrite-Project: + +``` diff --git a/examples/1.9.x/server-rest/examples/account/get-consent.md b/examples/1.9.x/server-rest/examples/account/get-consent.md new file mode 100644 index 000000000..a7d632b5a --- /dev/null +++ b/examples/1.9.x/server-rest/examples/account/get-consent.md @@ -0,0 +1,8 @@ +```http +GET /v1/account/consents/{consentId} HTTP/1.1 +Host: cloud.appwrite.io +Accept: application/json +X-Appwrite-Response-Format: 1.9.5 +X-Appwrite-Project: + +``` diff --git a/examples/1.9.x/server-rest/examples/account/list-consent-tokens.md b/examples/1.9.x/server-rest/examples/account/list-consent-tokens.md new file mode 100644 index 000000000..7a0e0648d --- /dev/null +++ b/examples/1.9.x/server-rest/examples/account/list-consent-tokens.md @@ -0,0 +1,8 @@ +```http +GET /v1/account/consents/{consentId}/tokens HTTP/1.1 +Host: cloud.appwrite.io +Accept: application/json +X-Appwrite-Response-Format: 1.9.5 +X-Appwrite-Project: + +``` diff --git a/examples/1.9.x/server-rest/examples/account/list-consents.md b/examples/1.9.x/server-rest/examples/account/list-consents.md new file mode 100644 index 000000000..1bb05629c --- /dev/null +++ b/examples/1.9.x/server-rest/examples/account/list-consents.md @@ -0,0 +1,8 @@ +```http +GET /v1/account/consents HTTP/1.1 +Host: cloud.appwrite.io +Accept: application/json +X-Appwrite-Response-Format: 1.9.5 +X-Appwrite-Project: + +``` diff --git a/examples/1.9.x/server-rest/examples/health/get-geo-premium.md b/examples/1.9.x/server-rest/examples/health/get-geo-premium.md new file mode 100644 index 000000000..35fee5517 --- /dev/null +++ b/examples/1.9.x/server-rest/examples/health/get-geo-premium.md @@ -0,0 +1,8 @@ +```http +GET /v1/health/geo-premium HTTP/1.1 +Host: cloud.appwrite.io +Accept: application/json +X-Appwrite-Response-Format: 1.9.5 +X-Appwrite-Project: + +``` diff --git a/examples/1.9.x/server-rest/examples/health/get-geo.md b/examples/1.9.x/server-rest/examples/health/get-geo.md new file mode 100644 index 000000000..d0761eb18 --- /dev/null +++ b/examples/1.9.x/server-rest/examples/health/get-geo.md @@ -0,0 +1,8 @@ +```http +GET /v1/health/geo HTTP/1.1 +Host: cloud.appwrite.io +Accept: application/json +X-Appwrite-Response-Format: 1.9.5 +X-Appwrite-Project: + +``` diff --git a/examples/1.9.x/server-rest/examples/health/get-queue-notifications.md b/examples/1.9.x/server-rest/examples/health/get-queue-notifications.md new file mode 100644 index 000000000..e59d7596a --- /dev/null +++ b/examples/1.9.x/server-rest/examples/health/get-queue-notifications.md @@ -0,0 +1,8 @@ +```http +GET /v1/health/queue/notifications HTTP/1.1 +Host: cloud.appwrite.io +Accept: application/json +X-Appwrite-Response-Format: 1.9.5 +X-Appwrite-Project: + +``` diff --git a/examples/1.9.x/server-rest/examples/organization/create-membership.md b/examples/1.9.x/server-rest/examples/organization/create-membership.md new file mode 100644 index 000000000..3a2896ea6 --- /dev/null +++ b/examples/1.9.x/server-rest/examples/organization/create-membership.md @@ -0,0 +1,26 @@ +```http +POST /v1/organization/memberships HTTP/1.1 +Host: cloud.appwrite.io +Content-Type: application/json +Accept: application/json +X-Appwrite-Response-Format: 1.9.5 +X-Appwrite-Project: + +{ + "email": "email@example.com", + "userId": "", + "phone": "+12065550100", + "roles": [], + "url": "https://example.com", + "name": "" +} + +{ + "email": "email@example.com", + "userId": "", + "phone": "+12065550100", + "roles": [], + "url": "https://example.com", + "name": "" +} +``` diff --git a/examples/1.9.x/server-rest/examples/organization/delete-membership.md b/examples/1.9.x/server-rest/examples/organization/delete-membership.md new file mode 100644 index 000000000..f278baa74 --- /dev/null +++ b/examples/1.9.x/server-rest/examples/organization/delete-membership.md @@ -0,0 +1,8 @@ +```http +DELETE /v1/organization/memberships/{membershipId} HTTP/1.1 +Host: cloud.appwrite.io +Content-Type: application/json +X-Appwrite-Response-Format: 1.9.5 +X-Appwrite-Project: + +``` diff --git a/examples/1.9.x/server-rest/examples/organization/delete.md b/examples/1.9.x/server-rest/examples/organization/delete.md new file mode 100644 index 000000000..5a647773f --- /dev/null +++ b/examples/1.9.x/server-rest/examples/organization/delete.md @@ -0,0 +1,8 @@ +```http +DELETE /v1/organization HTTP/1.1 +Host: cloud.appwrite.io +Content-Type: application/json +X-Appwrite-Response-Format: 1.9.5 +X-Appwrite-Project: + +``` diff --git a/examples/1.9.x/server-rest/examples/organization/get-membership.md b/examples/1.9.x/server-rest/examples/organization/get-membership.md new file mode 100644 index 000000000..3fcb996ab --- /dev/null +++ b/examples/1.9.x/server-rest/examples/organization/get-membership.md @@ -0,0 +1,8 @@ +```http +GET /v1/organization/memberships/{membershipId} HTTP/1.1 +Host: cloud.appwrite.io +Accept: application/json +X-Appwrite-Response-Format: 1.9.5 +X-Appwrite-Project: + +``` diff --git a/examples/1.9.x/server-rest/examples/organization/get.md b/examples/1.9.x/server-rest/examples/organization/get.md new file mode 100644 index 000000000..35a90f575 --- /dev/null +++ b/examples/1.9.x/server-rest/examples/organization/get.md @@ -0,0 +1,8 @@ +```http +GET /v1/organization HTTP/1.1 +Host: cloud.appwrite.io +Accept: application/json +X-Appwrite-Response-Format: 1.9.5 +X-Appwrite-Project: + +``` diff --git a/examples/1.9.x/server-rest/examples/organization/list-memberships.md b/examples/1.9.x/server-rest/examples/organization/list-memberships.md new file mode 100644 index 000000000..15445743f --- /dev/null +++ b/examples/1.9.x/server-rest/examples/organization/list-memberships.md @@ -0,0 +1,8 @@ +```http +GET /v1/organization/memberships HTTP/1.1 +Host: cloud.appwrite.io +Accept: application/json +X-Appwrite-Response-Format: 1.9.5 +X-Appwrite-Project: + +``` diff --git a/examples/1.9.x/server-rest/examples/organization/update-membership.md b/examples/1.9.x/server-rest/examples/organization/update-membership.md new file mode 100644 index 000000000..68c566b75 --- /dev/null +++ b/examples/1.9.x/server-rest/examples/organization/update-membership.md @@ -0,0 +1,16 @@ +```http +PATCH /v1/organization/memberships/{membershipId} HTTP/1.1 +Host: cloud.appwrite.io +Content-Type: application/json +Accept: application/json +X-Appwrite-Response-Format: 1.9.5 +X-Appwrite-Project: + +{ + "roles": [] +} + +{ + "roles": [] +} +``` diff --git a/examples/1.9.x/server-rest/examples/organization/update.md b/examples/1.9.x/server-rest/examples/organization/update.md new file mode 100644 index 000000000..2b5ab8f96 --- /dev/null +++ b/examples/1.9.x/server-rest/examples/organization/update.md @@ -0,0 +1,16 @@ +```http +PUT /v1/organization HTTP/1.1 +Host: cloud.appwrite.io +Content-Type: application/json +Accept: application/json +X-Appwrite-Response-Format: 1.9.5 +X-Appwrite-Project: + +{ + "name": "" +} + +{ + "name": "" +} +``` diff --git a/examples/1.9.x/server-rest/examples/project/update-o-auth-2-appwrite.md b/examples/1.9.x/server-rest/examples/project/update-o-auth-2-appwrite.md new file mode 100644 index 000000000..40ed7fca6 --- /dev/null +++ b/examples/1.9.x/server-rest/examples/project/update-o-auth-2-appwrite.md @@ -0,0 +1,20 @@ +```http +PATCH /v1/project/oauth2/appwrite HTTP/1.1 +Host: cloud.appwrite.io +Content-Type: application/json +Accept: application/json +X-Appwrite-Response-Format: 1.9.5 +X-Appwrite-Project: + +{ + "clientId": "", + "clientSecret": "", + "enabled": false +} + +{ + "clientId": "", + "clientSecret": "", + "enabled": false +} +``` diff --git a/examples/1.9.x/server-rest/examples/project/update-o-auth-2-oidc.md b/examples/1.9.x/server-rest/examples/project/update-o-auth-2-oidc.md index 5b24f5435..9f405396a 100644 --- a/examples/1.9.x/server-rest/examples/project/update-o-auth-2-oidc.md +++ b/examples/1.9.x/server-rest/examples/project/update-o-auth-2-oidc.md @@ -13,6 +13,8 @@ X-Appwrite-Project: "authorizationURL": "https://example.com", "tokenURL": "https://example.com", "userInfoURL": "https://example.com", + "prompt": [], + "maxAge": 0, "enabled": false } @@ -23,6 +25,8 @@ X-Appwrite-Project: "authorizationURL": "https://example.com", "tokenURL": "https://example.com", "userInfoURL": "https://example.com", + "prompt": [], + "maxAge": 0, "enabled": false } ``` diff --git a/examples/1.9.x/server-rest/examples/project/update-o-auth-2-server.md b/examples/1.9.x/server-rest/examples/project/update-o-auth-2-server.md index 8e06460ad..3cb4eb800 100644 --- a/examples/1.9.x/server-rest/examples/project/update-o-auth-2-server.md +++ b/examples/1.9.x/server-rest/examples/project/update-o-auth-2-server.md @@ -19,7 +19,8 @@ X-Appwrite-Project: "verificationUrl": "https://example.com", "userCodeLength": 6, "userCodeFormat": "numeric", - "deviceCodeDuration": 60 + "deviceCodeDuration": 60, + "defaultScopes": [] } { @@ -35,6 +36,7 @@ X-Appwrite-Project: "verificationUrl": "https://example.com", "userCodeLength": 6, "userCodeFormat": "numeric", - "deviceCodeDuration": 60 + "deviceCodeDuration": 60, + "defaultScopes": [] } ``` diff --git a/examples/1.9.x/server-rest/examples/tablesdb/create-failover.md b/examples/1.9.x/server-rest/examples/tablesdb/create-failover.md new file mode 100644 index 000000000..c508fe83d --- /dev/null +++ b/examples/1.9.x/server-rest/examples/tablesdb/create-failover.md @@ -0,0 +1,16 @@ +```http +POST /v1/tablesdb/{databaseId}/failovers HTTP/1.1 +Host: cloud.appwrite.io +Content-Type: application/json +Accept: application/json +X-Appwrite-Response-Format: 1.9.5 +X-Appwrite-Project: + +{ + "targetReplicaId": "" +} + +{ + "targetReplicaId": "" +} +``` diff --git a/examples/1.9.x/server-rest/examples/tablesdb/create.md b/examples/1.9.x/server-rest/examples/tablesdb/create.md index 1be043d2b..2bf81ba87 100644 --- a/examples/1.9.x/server-rest/examples/tablesdb/create.md +++ b/examples/1.9.x/server-rest/examples/tablesdb/create.md @@ -10,13 +10,15 @@ X-Appwrite-Project: "databaseId": "", "name": "", "enabled": false, - "dedicatedDatabaseId": "" + "specification": "serverless", + "replicas": 0 } { "databaseId": "", "name": "", "enabled": false, - "dedicatedDatabaseId": "" + "specification": "serverless", + "replicas": 0 } ``` diff --git a/examples/1.9.x/server-rest/examples/tablesdb/get-replicas.md b/examples/1.9.x/server-rest/examples/tablesdb/get-replicas.md new file mode 100644 index 000000000..90f6bfedc --- /dev/null +++ b/examples/1.9.x/server-rest/examples/tablesdb/get-replicas.md @@ -0,0 +1,8 @@ +```http +GET /v1/tablesdb/{databaseId}/replicas HTTP/1.1 +Host: cloud.appwrite.io +Accept: application/json +X-Appwrite-Response-Format: 1.9.5 +X-Appwrite-Project: + +``` diff --git a/examples/1.9.x/server-rest/examples/tablesdb/get-status.md b/examples/1.9.x/server-rest/examples/tablesdb/get-status.md new file mode 100644 index 000000000..abe0cb6d8 --- /dev/null +++ b/examples/1.9.x/server-rest/examples/tablesdb/get-status.md @@ -0,0 +1,8 @@ +```http +GET /v1/tablesdb/{databaseId}/status HTTP/1.1 +Host: cloud.appwrite.io +Accept: application/json +X-Appwrite-Response-Format: 1.9.5 +X-Appwrite-Project: + +``` diff --git a/examples/1.9.x/server-rest/examples/tablesdb/list-specifications.md b/examples/1.9.x/server-rest/examples/tablesdb/list-specifications.md new file mode 100644 index 000000000..7cd6a2b9c --- /dev/null +++ b/examples/1.9.x/server-rest/examples/tablesdb/list-specifications.md @@ -0,0 +1,8 @@ +```http +GET /v1/tablesdb/specifications HTTP/1.1 +Host: cloud.appwrite.io +Accept: application/json +X-Appwrite-Response-Format: 1.9.5 +X-Appwrite-Project: + +``` diff --git a/examples/1.9.x/server-rest/examples/tablesdb/update.md b/examples/1.9.x/server-rest/examples/tablesdb/update.md index 7b394a93a..5de8ac7ad 100644 --- a/examples/1.9.x/server-rest/examples/tablesdb/update.md +++ b/examples/1.9.x/server-rest/examples/tablesdb/update.md @@ -8,11 +8,13 @@ X-Appwrite-Project: { "name": "", - "enabled": false + "enabled": false, + "replicas": 0 } { "name": "", - "enabled": false + "enabled": false, + "replicas": 0 } ``` diff --git a/examples/1.9.x/server-ruby/examples/account/delete-consent-token.md b/examples/1.9.x/server-ruby/examples/account/delete-consent-token.md new file mode 100644 index 000000000..3e3c11e5f --- /dev/null +++ b/examples/1.9.x/server-ruby/examples/account/delete-consent-token.md @@ -0,0 +1,17 @@ +```ruby +require 'appwrite' + +include Appwrite + +client = Client.new + .set_endpoint('https://.cloud.appwrite.io/v1') # Your API Endpoint + .set_project('') # Your project ID + .set_session('') # The user session to authenticate with + +account = Account.new(client) + +result = account.delete_consent_token( + consent_id: '', + token_id: '' +) +``` diff --git a/examples/1.9.x/server-ruby/examples/account/delete-consent.md b/examples/1.9.x/server-ruby/examples/account/delete-consent.md new file mode 100644 index 000000000..b673c2047 --- /dev/null +++ b/examples/1.9.x/server-ruby/examples/account/delete-consent.md @@ -0,0 +1,16 @@ +```ruby +require 'appwrite' + +include Appwrite + +client = Client.new + .set_endpoint('https://.cloud.appwrite.io/v1') # Your API Endpoint + .set_project('') # Your project ID + .set_session('') # The user session to authenticate with + +account = Account.new(client) + +result = account.delete_consent( + consent_id: '' +) +``` diff --git a/examples/1.9.x/server-ruby/examples/account/get-consent-token.md b/examples/1.9.x/server-ruby/examples/account/get-consent-token.md new file mode 100644 index 000000000..d65e22ddd --- /dev/null +++ b/examples/1.9.x/server-ruby/examples/account/get-consent-token.md @@ -0,0 +1,17 @@ +```ruby +require 'appwrite' + +include Appwrite + +client = Client.new + .set_endpoint('https://.cloud.appwrite.io/v1') # Your API Endpoint + .set_project('') # Your project ID + .set_session('') # The user session to authenticate with + +account = Account.new(client) + +result = account.get_consent_token( + consent_id: '', + token_id: '' +) +``` diff --git a/examples/1.9.x/server-ruby/examples/account/get-consent.md b/examples/1.9.x/server-ruby/examples/account/get-consent.md new file mode 100644 index 000000000..8fe59764d --- /dev/null +++ b/examples/1.9.x/server-ruby/examples/account/get-consent.md @@ -0,0 +1,16 @@ +```ruby +require 'appwrite' + +include Appwrite + +client = Client.new + .set_endpoint('https://.cloud.appwrite.io/v1') # Your API Endpoint + .set_project('') # Your project ID + .set_session('') # The user session to authenticate with + +account = Account.new(client) + +result = account.get_consent( + consent_id: '' +) +``` diff --git a/examples/1.9.x/server-ruby/examples/account/list-consent-tokens.md b/examples/1.9.x/server-ruby/examples/account/list-consent-tokens.md new file mode 100644 index 000000000..1d7f6049f --- /dev/null +++ b/examples/1.9.x/server-ruby/examples/account/list-consent-tokens.md @@ -0,0 +1,18 @@ +```ruby +require 'appwrite' + +include Appwrite + +client = Client.new + .set_endpoint('https://.cloud.appwrite.io/v1') # Your API Endpoint + .set_project('') # Your project ID + .set_session('') # The user session to authenticate with + +account = Account.new(client) + +result = account.list_consent_tokens( + consent_id: '', + queries: [], # optional + total: false # optional +) +``` diff --git a/examples/1.9.x/server-ruby/examples/account/list-consents.md b/examples/1.9.x/server-ruby/examples/account/list-consents.md new file mode 100644 index 000000000..968c1e55a --- /dev/null +++ b/examples/1.9.x/server-ruby/examples/account/list-consents.md @@ -0,0 +1,17 @@ +```ruby +require 'appwrite' + +include Appwrite + +client = Client.new + .set_endpoint('https://.cloud.appwrite.io/v1') # Your API Endpoint + .set_project('') # Your project ID + .set_session('') # The user session to authenticate with + +account = Account.new(client) + +result = account.list_consents( + queries: [], # optional + total: false # optional +) +``` diff --git a/examples/1.9.x/server-ruby/examples/functions/get-deployment-download.md b/examples/1.9.x/server-ruby/examples/functions/get-deployment-download.md index 728cfca6b..dd7547af0 100644 --- a/examples/1.9.x/server-ruby/examples/functions/get-deployment-download.md +++ b/examples/1.9.x/server-ruby/examples/functions/get-deployment-download.md @@ -14,6 +14,7 @@ functions = Functions.new(client) result = functions.get_deployment_download( function_id: '', deployment_id: '', - type: DeploymentDownloadType::SOURCE # optional + type: DeploymentDownloadType::SOURCE, # optional + token: '' # optional ) ``` diff --git a/examples/1.9.x/server-ruby/examples/health/get-geo-premium.md b/examples/1.9.x/server-ruby/examples/health/get-geo-premium.md new file mode 100644 index 000000000..343b8020e --- /dev/null +++ b/examples/1.9.x/server-ruby/examples/health/get-geo-premium.md @@ -0,0 +1,14 @@ +```ruby +require 'appwrite' + +include Appwrite + +client = Client.new + .set_endpoint('https://.cloud.appwrite.io/v1') # Your API Endpoint + .set_project('') # Your project ID + .set_key('') # Your secret API key + +health = Health.new(client) + +result = health.get_geo_premium() +``` diff --git a/examples/1.9.x/server-ruby/examples/health/get-geo.md b/examples/1.9.x/server-ruby/examples/health/get-geo.md new file mode 100644 index 000000000..e6d8bd265 --- /dev/null +++ b/examples/1.9.x/server-ruby/examples/health/get-geo.md @@ -0,0 +1,14 @@ +```ruby +require 'appwrite' + +include Appwrite + +client = Client.new + .set_endpoint('https://.cloud.appwrite.io/v1') # Your API Endpoint + .set_project('') # Your project ID + .set_key('') # Your secret API key + +health = Health.new(client) + +result = health.get_geo() +``` diff --git a/examples/1.9.x/server-ruby/examples/health/get-queue-notifications.md b/examples/1.9.x/server-ruby/examples/health/get-queue-notifications.md new file mode 100644 index 000000000..2326e27b4 --- /dev/null +++ b/examples/1.9.x/server-ruby/examples/health/get-queue-notifications.md @@ -0,0 +1,16 @@ +```ruby +require 'appwrite' + +include Appwrite + +client = Client.new + .set_endpoint('https://.cloud.appwrite.io/v1') # Your API Endpoint + .set_project('') # Your project ID + .set_key('') # Your secret API key + +health = Health.new(client) + +result = health.get_queue_notifications( + threshold: null # optional +) +``` diff --git a/examples/1.9.x/server-ruby/examples/organization/create-membership.md b/examples/1.9.x/server-ruby/examples/organization/create-membership.md new file mode 100644 index 000000000..b49780c80 --- /dev/null +++ b/examples/1.9.x/server-ruby/examples/organization/create-membership.md @@ -0,0 +1,21 @@ +```ruby +require 'appwrite' + +include Appwrite + +client = Client.new + .set_endpoint('https://.cloud.appwrite.io/v1') # Your API Endpoint + .set_project('') # Your project ID + .set_key('') # Your secret API key + +organization = Organization.new(client) + +result = organization.create_membership( + roles: [], + email: 'email@example.com', # optional + user_id: '', # optional + phone: '+12065550100', # optional + url: 'https://example.com', # optional + name: '' # optional +) +``` diff --git a/examples/1.9.x/server-ruby/examples/organization/delete-membership.md b/examples/1.9.x/server-ruby/examples/organization/delete-membership.md new file mode 100644 index 000000000..8130e2225 --- /dev/null +++ b/examples/1.9.x/server-ruby/examples/organization/delete-membership.md @@ -0,0 +1,16 @@ +```ruby +require 'appwrite' + +include Appwrite + +client = Client.new + .set_endpoint('https://.cloud.appwrite.io/v1') # Your API Endpoint + .set_project('') # Your project ID + .set_key('') # Your secret API key + +organization = Organization.new(client) + +result = organization.delete_membership( + membership_id: '' +) +``` diff --git a/examples/1.9.x/server-ruby/examples/organization/delete.md b/examples/1.9.x/server-ruby/examples/organization/delete.md new file mode 100644 index 000000000..c70d53dbc --- /dev/null +++ b/examples/1.9.x/server-ruby/examples/organization/delete.md @@ -0,0 +1,14 @@ +```ruby +require 'appwrite' + +include Appwrite + +client = Client.new + .set_endpoint('https://.cloud.appwrite.io/v1') # Your API Endpoint + .set_project('') # Your project ID + .set_key('') # Your secret API key + +organization = Organization.new(client) + +result = organization.delete() +``` diff --git a/examples/1.9.x/server-ruby/examples/organization/get-membership.md b/examples/1.9.x/server-ruby/examples/organization/get-membership.md new file mode 100644 index 000000000..85db10085 --- /dev/null +++ b/examples/1.9.x/server-ruby/examples/organization/get-membership.md @@ -0,0 +1,16 @@ +```ruby +require 'appwrite' + +include Appwrite + +client = Client.new + .set_endpoint('https://.cloud.appwrite.io/v1') # Your API Endpoint + .set_project('') # Your project ID + .set_key('') # Your secret API key + +organization = Organization.new(client) + +result = organization.get_membership( + membership_id: '' +) +``` diff --git a/examples/1.9.x/server-ruby/examples/organization/get.md b/examples/1.9.x/server-ruby/examples/organization/get.md new file mode 100644 index 000000000..e39c77646 --- /dev/null +++ b/examples/1.9.x/server-ruby/examples/organization/get.md @@ -0,0 +1,14 @@ +```ruby +require 'appwrite' + +include Appwrite + +client = Client.new + .set_endpoint('https://.cloud.appwrite.io/v1') # Your API Endpoint + .set_project('') # Your project ID + .set_key('') # Your secret API key + +organization = Organization.new(client) + +result = organization.get() +``` diff --git a/examples/1.9.x/server-ruby/examples/organization/list-memberships.md b/examples/1.9.x/server-ruby/examples/organization/list-memberships.md new file mode 100644 index 000000000..ea03bef42 --- /dev/null +++ b/examples/1.9.x/server-ruby/examples/organization/list-memberships.md @@ -0,0 +1,18 @@ +```ruby +require 'appwrite' + +include Appwrite + +client = Client.new + .set_endpoint('https://.cloud.appwrite.io/v1') # Your API Endpoint + .set_project('') # Your project ID + .set_key('') # Your secret API key + +organization = Organization.new(client) + +result = organization.list_memberships( + queries: [], # optional + search: '', # optional + total: false # optional +) +``` diff --git a/examples/1.9.x/server-ruby/examples/organization/update-membership.md b/examples/1.9.x/server-ruby/examples/organization/update-membership.md new file mode 100644 index 000000000..f4b5ac27a --- /dev/null +++ b/examples/1.9.x/server-ruby/examples/organization/update-membership.md @@ -0,0 +1,17 @@ +```ruby +require 'appwrite' + +include Appwrite + +client = Client.new + .set_endpoint('https://.cloud.appwrite.io/v1') # Your API Endpoint + .set_project('') # Your project ID + .set_key('') # Your secret API key + +organization = Organization.new(client) + +result = organization.update_membership( + membership_id: '', + roles: [] +) +``` diff --git a/examples/1.9.x/server-ruby/examples/organization/update.md b/examples/1.9.x/server-ruby/examples/organization/update.md new file mode 100644 index 000000000..5c0cda425 --- /dev/null +++ b/examples/1.9.x/server-ruby/examples/organization/update.md @@ -0,0 +1,16 @@ +```ruby +require 'appwrite' + +include Appwrite + +client = Client.new + .set_endpoint('https://.cloud.appwrite.io/v1') # Your API Endpoint + .set_project('') # Your project ID + .set_key('') # Your secret API key + +organization = Organization.new(client) + +result = organization.update( + name: '' +) +``` diff --git a/examples/1.9.x/server-ruby/examples/project/update-o-auth-2-appwrite.md b/examples/1.9.x/server-ruby/examples/project/update-o-auth-2-appwrite.md new file mode 100644 index 000000000..1d8e92edf --- /dev/null +++ b/examples/1.9.x/server-ruby/examples/project/update-o-auth-2-appwrite.md @@ -0,0 +1,18 @@ +```ruby +require 'appwrite' + +include Appwrite + +client = Client.new + .set_endpoint('https://.cloud.appwrite.io/v1') # Your API Endpoint + .set_project('') # Your project ID + .set_key('') # Your secret API key + +project = Project.new(client) + +result = project.update_o_auth2_appwrite( + client_id: '', # optional + client_secret: '', # optional + enabled: false # optional +) +``` diff --git a/examples/1.9.x/server-ruby/examples/project/update-o-auth-2-oidc.md b/examples/1.9.x/server-ruby/examples/project/update-o-auth-2-oidc.md index 44e48c726..f090e96ae 100644 --- a/examples/1.9.x/server-ruby/examples/project/update-o-auth-2-oidc.md +++ b/examples/1.9.x/server-ruby/examples/project/update-o-auth-2-oidc.md @@ -2,6 +2,7 @@ require 'appwrite' include Appwrite +include Appwrite::Enums client = Client.new .set_endpoint('https://.cloud.appwrite.io/v1') # Your API Endpoint @@ -17,6 +18,8 @@ result = project.update_o_auth2_oidc( authorization_url: 'https://example.com', # optional token_url: 'https://example.com', # optional user_info_url: 'https://example.com', # optional + prompt: [ProjectOAuth2OidcPrompt::NONE], # optional + max_age: 0, # optional enabled: false # optional ) ``` diff --git a/examples/1.9.x/server-ruby/examples/project/update-o-auth-2-server.md b/examples/1.9.x/server-ruby/examples/project/update-o-auth-2-server.md index 6bdc13410..b3ab33993 100644 --- a/examples/1.9.x/server-ruby/examples/project/update-o-auth-2-server.md +++ b/examples/1.9.x/server-ruby/examples/project/update-o-auth-2-server.md @@ -23,6 +23,7 @@ result = project.update_o_auth2_server( verification_url: 'https://example.com', # optional user_code_length: 6, # optional user_code_format: 'numeric', # optional - device_code_duration: 60 # optional + device_code_duration: 60, # optional + default_scopes: [] # optional ) ``` diff --git a/examples/1.9.x/server-ruby/examples/sites/get-deployment-download.md b/examples/1.9.x/server-ruby/examples/sites/get-deployment-download.md index 0fe19a3c4..55206b431 100644 --- a/examples/1.9.x/server-ruby/examples/sites/get-deployment-download.md +++ b/examples/1.9.x/server-ruby/examples/sites/get-deployment-download.md @@ -14,6 +14,7 @@ sites = Sites.new(client) result = sites.get_deployment_download( site_id: '', deployment_id: '', - type: DeploymentDownloadType::SOURCE # optional + type: DeploymentDownloadType::SOURCE, # optional + token: '' # optional ) ``` diff --git a/examples/1.9.x/server-ruby/examples/tablesdb/create-failover.md b/examples/1.9.x/server-ruby/examples/tablesdb/create-failover.md new file mode 100644 index 000000000..4935f32de --- /dev/null +++ b/examples/1.9.x/server-ruby/examples/tablesdb/create-failover.md @@ -0,0 +1,17 @@ +```ruby +require 'appwrite' + +include Appwrite + +client = Client.new + .set_endpoint('https://.cloud.appwrite.io/v1') # Your API Endpoint + .set_project('') # Your project ID + .set_key('') # Your secret API key + +tables_db = TablesDB.new(client) + +result = tables_db.create_failover( + database_id: '', + target_replica_id: '' # optional +) +``` diff --git a/examples/1.9.x/server-ruby/examples/tablesdb/create.md b/examples/1.9.x/server-ruby/examples/tablesdb/create.md index fd73173f5..433b5b72a 100644 --- a/examples/1.9.x/server-ruby/examples/tablesdb/create.md +++ b/examples/1.9.x/server-ruby/examples/tablesdb/create.md @@ -14,6 +14,7 @@ result = tables_db.create( database_id: '', name: '', enabled: false, # optional - dedicated_database_id: '' # optional + specification: 'serverless', # optional + replicas: 0 # optional ) ``` diff --git a/examples/1.9.x/server-ruby/examples/tablesdb/get-replicas.md b/examples/1.9.x/server-ruby/examples/tablesdb/get-replicas.md new file mode 100644 index 000000000..a8fb122c6 --- /dev/null +++ b/examples/1.9.x/server-ruby/examples/tablesdb/get-replicas.md @@ -0,0 +1,16 @@ +```ruby +require 'appwrite' + +include Appwrite + +client = Client.new + .set_endpoint('https://.cloud.appwrite.io/v1') # Your API Endpoint + .set_project('') # Your project ID + .set_key('') # Your secret API key + +tables_db = TablesDB.new(client) + +result = tables_db.get_replicas( + database_id: '' +) +``` diff --git a/examples/1.9.x/server-ruby/examples/tablesdb/get-status.md b/examples/1.9.x/server-ruby/examples/tablesdb/get-status.md new file mode 100644 index 000000000..c0b68e563 --- /dev/null +++ b/examples/1.9.x/server-ruby/examples/tablesdb/get-status.md @@ -0,0 +1,16 @@ +```ruby +require 'appwrite' + +include Appwrite + +client = Client.new + .set_endpoint('https://.cloud.appwrite.io/v1') # Your API Endpoint + .set_project('') # Your project ID + .set_key('') # Your secret API key + +tables_db = TablesDB.new(client) + +result = tables_db.get_status( + database_id: '' +) +``` diff --git a/examples/1.9.x/server-ruby/examples/tablesdb/list-specifications.md b/examples/1.9.x/server-ruby/examples/tablesdb/list-specifications.md new file mode 100644 index 000000000..8aa6987b0 --- /dev/null +++ b/examples/1.9.x/server-ruby/examples/tablesdb/list-specifications.md @@ -0,0 +1,14 @@ +```ruby +require 'appwrite' + +include Appwrite + +client = Client.new + .set_endpoint('https://.cloud.appwrite.io/v1') # Your API Endpoint + .set_project('') # Your project ID + .set_key('') # Your secret API key + +tables_db = TablesDB.new(client) + +result = tables_db.list_specifications() +``` diff --git a/examples/1.9.x/server-ruby/examples/tablesdb/update.md b/examples/1.9.x/server-ruby/examples/tablesdb/update.md index 28377a61d..4257090ac 100644 --- a/examples/1.9.x/server-ruby/examples/tablesdb/update.md +++ b/examples/1.9.x/server-ruby/examples/tablesdb/update.md @@ -13,6 +13,7 @@ tables_db = TablesDB.new(client) result = tables_db.update( database_id: '', name: '', # optional - enabled: false # optional + enabled: false, # optional + replicas: 0 # optional ) ``` diff --git a/examples/1.9.x/server-ruby/examples/usage/list-events.md b/examples/1.9.x/server-ruby/examples/usage/list-events.md index 45810f843..3bb7a542a 100644 --- a/examples/1.9.x/server-ruby/examples/usage/list-events.md +++ b/examples/1.9.x/server-ruby/examples/usage/list-events.md @@ -12,8 +12,7 @@ usage = Usage.new(client) result = usage.list_events( metrics: [], - resource: '', # optional - resource_id: '', # optional + queries: [], # optional interval: '1m', # optional dimensions: [], # optional start_at: '2020-10-15T06:38:00.000+00:00', # optional diff --git a/examples/1.9.x/server-ruby/examples/usage/list-gauges.md b/examples/1.9.x/server-ruby/examples/usage/list-gauges.md index a3c54a5c9..8bd230cc3 100644 --- a/examples/1.9.x/server-ruby/examples/usage/list-gauges.md +++ b/examples/1.9.x/server-ruby/examples/usage/list-gauges.md @@ -12,8 +12,7 @@ usage = Usage.new(client) result = usage.list_gauges( metrics: [], - resource_id: '', # optional - team_id: '', # optional + queries: [], # optional interval: '1m', # optional dimensions: [], # optional start_at: '2020-10-15T06:38:00.000+00:00', # optional diff --git a/examples/1.9.x/server-rust/examples/account/delete-consent-token.md b/examples/1.9.x/server-rust/examples/account/delete-consent-token.md new file mode 100644 index 000000000..a6f2987bd --- /dev/null +++ b/examples/1.9.x/server-rust/examples/account/delete-consent-token.md @@ -0,0 +1,23 @@ +```rust +use appwrite::Client; +use appwrite::services::Account; + +#[tokio::main] +async fn main() -> Result<(), Box> { + let client = Client::new(); + client.set_endpoint("https://.cloud.appwrite.io/v1"); // Your API Endpoint + client.set_project(""); // Your project ID + client.set_session(""); // The user session to authenticate with + + let account = Account::new(&client); + + let result = account.delete_consent_token( + "", + "" + ).await?; + + let _ = result; + + Ok(()) +} +``` diff --git a/examples/1.9.x/server-rust/examples/account/delete-consent.md b/examples/1.9.x/server-rust/examples/account/delete-consent.md new file mode 100644 index 000000000..084f1c6f4 --- /dev/null +++ b/examples/1.9.x/server-rust/examples/account/delete-consent.md @@ -0,0 +1,22 @@ +```rust +use appwrite::Client; +use appwrite::services::Account; + +#[tokio::main] +async fn main() -> Result<(), Box> { + let client = Client::new(); + client.set_endpoint("https://.cloud.appwrite.io/v1"); // Your API Endpoint + client.set_project(""); // Your project ID + client.set_session(""); // The user session to authenticate with + + let account = Account::new(&client); + + let result = account.delete_consent( + "" + ).await?; + + let _ = result; + + Ok(()) +} +``` diff --git a/examples/1.9.x/server-rust/examples/account/get-consent-token.md b/examples/1.9.x/server-rust/examples/account/get-consent-token.md new file mode 100644 index 000000000..d59b022a2 --- /dev/null +++ b/examples/1.9.x/server-rust/examples/account/get-consent-token.md @@ -0,0 +1,23 @@ +```rust +use appwrite::Client; +use appwrite::services::Account; + +#[tokio::main] +async fn main() -> Result<(), Box> { + let client = Client::new(); + client.set_endpoint("https://.cloud.appwrite.io/v1"); // Your API Endpoint + client.set_project(""); // Your project ID + client.set_session(""); // The user session to authenticate with + + let account = Account::new(&client); + + let result = account.get_consent_token( + "", + "" + ).await?; + + let _ = result; + + Ok(()) +} +``` diff --git a/examples/1.9.x/server-rust/examples/account/get-consent.md b/examples/1.9.x/server-rust/examples/account/get-consent.md new file mode 100644 index 000000000..bcfa12ce5 --- /dev/null +++ b/examples/1.9.x/server-rust/examples/account/get-consent.md @@ -0,0 +1,22 @@ +```rust +use appwrite::Client; +use appwrite::services::Account; + +#[tokio::main] +async fn main() -> Result<(), Box> { + let client = Client::new(); + client.set_endpoint("https://.cloud.appwrite.io/v1"); // Your API Endpoint + client.set_project(""); // Your project ID + client.set_session(""); // The user session to authenticate with + + let account = Account::new(&client); + + let result = account.get_consent( + "" + ).await?; + + let _ = result; + + Ok(()) +} +``` diff --git a/examples/1.9.x/server-rust/examples/account/list-consent-tokens.md b/examples/1.9.x/server-rust/examples/account/list-consent-tokens.md new file mode 100644 index 000000000..d2de6d0a5 --- /dev/null +++ b/examples/1.9.x/server-rust/examples/account/list-consent-tokens.md @@ -0,0 +1,24 @@ +```rust +use appwrite::Client; +use appwrite::services::Account; + +#[tokio::main] +async fn main() -> Result<(), Box> { + let client = Client::new(); + client.set_endpoint("https://.cloud.appwrite.io/v1"); // Your API Endpoint + client.set_project(""); // Your project ID + client.set_session(""); // The user session to authenticate with + + let account = Account::new(&client); + + let result = account.list_consent_tokens( + "", + Some(vec![]), // optional + Some(false) // optional + ).await?; + + let _ = result; + + Ok(()) +} +``` diff --git a/examples/1.9.x/server-rust/examples/account/list-consents.md b/examples/1.9.x/server-rust/examples/account/list-consents.md new file mode 100644 index 000000000..34196160c --- /dev/null +++ b/examples/1.9.x/server-rust/examples/account/list-consents.md @@ -0,0 +1,23 @@ +```rust +use appwrite::Client; +use appwrite::services::Account; + +#[tokio::main] +async fn main() -> Result<(), Box> { + let client = Client::new(); + client.set_endpoint("https://.cloud.appwrite.io/v1"); // Your API Endpoint + client.set_project(""); // Your project ID + client.set_session(""); // The user session to authenticate with + + let account = Account::new(&client); + + let result = account.list_consents( + Some(vec![]), // optional + Some(false) // optional + ).await?; + + let _ = result; + + Ok(()) +} +``` diff --git a/examples/1.9.x/server-rust/examples/functions/get-deployment-download.md b/examples/1.9.x/server-rust/examples/functions/get-deployment-download.md index 9ff7cb83e..69e5e391e 100644 --- a/examples/1.9.x/server-rust/examples/functions/get-deployment-download.md +++ b/examples/1.9.x/server-rust/examples/functions/get-deployment-download.md @@ -14,7 +14,8 @@ async fn main() -> Result<(), Box> { let result = functions.get_deployment_download( "", "", - Some(appwrite::enums::DeploymentDownloadType::Source) // optional + Some(appwrite::enums::DeploymentDownloadType::Source), // optional + Some("") // optional ).await?; let _ = result; diff --git a/examples/1.9.x/server-rust/examples/health/get-geo-premium.md b/examples/1.9.x/server-rust/examples/health/get-geo-premium.md new file mode 100644 index 000000000..2417cb4c0 --- /dev/null +++ b/examples/1.9.x/server-rust/examples/health/get-geo-premium.md @@ -0,0 +1,20 @@ +```rust +use appwrite::Client; +use appwrite::services::Health; + +#[tokio::main] +async fn main() -> Result<(), Box> { + let client = Client::new(); + client.set_endpoint("https://.cloud.appwrite.io/v1"); // Your API Endpoint + client.set_project(""); // Your project ID + client.set_key(""); // Your secret API key + + let health = Health::new(&client); + + let result = health.get_geo_premium().await?; + + let _ = result; + + Ok(()) +} +``` diff --git a/examples/1.9.x/server-rust/examples/health/get-geo.md b/examples/1.9.x/server-rust/examples/health/get-geo.md new file mode 100644 index 000000000..b954666a8 --- /dev/null +++ b/examples/1.9.x/server-rust/examples/health/get-geo.md @@ -0,0 +1,20 @@ +```rust +use appwrite::Client; +use appwrite::services::Health; + +#[tokio::main] +async fn main() -> Result<(), Box> { + let client = Client::new(); + client.set_endpoint("https://.cloud.appwrite.io/v1"); // Your API Endpoint + client.set_project(""); // Your project ID + client.set_key(""); // Your secret API key + + let health = Health::new(&client); + + let result = health.get_geo().await?; + + let _ = result; + + Ok(()) +} +``` diff --git a/examples/1.9.x/server-rust/examples/health/get-queue-notifications.md b/examples/1.9.x/server-rust/examples/health/get-queue-notifications.md new file mode 100644 index 000000000..c0e1df218 --- /dev/null +++ b/examples/1.9.x/server-rust/examples/health/get-queue-notifications.md @@ -0,0 +1,22 @@ +```rust +use appwrite::Client; +use appwrite::services::Health; + +#[tokio::main] +async fn main() -> Result<(), Box> { + let client = Client::new(); + client.set_endpoint("https://.cloud.appwrite.io/v1"); // Your API Endpoint + client.set_project(""); // Your project ID + client.set_key(""); // Your secret API key + + let health = Health::new(&client); + + let result = health.get_queue_notifications( + Some(0) // optional + ).await?; + + let _ = result; + + Ok(()) +} +``` diff --git a/examples/1.9.x/server-rust/examples/organization/create-membership.md b/examples/1.9.x/server-rust/examples/organization/create-membership.md new file mode 100644 index 000000000..7088bebab --- /dev/null +++ b/examples/1.9.x/server-rust/examples/organization/create-membership.md @@ -0,0 +1,27 @@ +```rust +use appwrite::Client; +use appwrite::services::Organization; + +#[tokio::main] +async fn main() -> Result<(), Box> { + let client = Client::new(); + client.set_endpoint("https://.cloud.appwrite.io/v1"); // Your API Endpoint + client.set_project(""); // Your project ID + client.set_key(""); // Your secret API key + + let organization = Organization::new(&client); + + let result = organization.create_membership( + vec![], + Some("email@example.com"), // optional + Some(""), // optional + Some("+12065550100"), // optional + Some("https://example.com"), // optional + Some("") // optional + ).await?; + + let _ = result; + + Ok(()) +} +``` diff --git a/examples/1.9.x/server-rust/examples/organization/delete-membership.md b/examples/1.9.x/server-rust/examples/organization/delete-membership.md new file mode 100644 index 000000000..22dd3bed6 --- /dev/null +++ b/examples/1.9.x/server-rust/examples/organization/delete-membership.md @@ -0,0 +1,20 @@ +```rust +use appwrite::Client; +use appwrite::services::Organization; + +#[tokio::main] +async fn main() -> Result<(), Box> { + let client = Client::new(); + client.set_endpoint("https://.cloud.appwrite.io/v1"); // Your API Endpoint + client.set_project(""); // Your project ID + client.set_key(""); // Your secret API key + + let organization = Organization::new(&client); + + organization.delete_membership( + "" + ).await?; + + Ok(()) +} +``` diff --git a/examples/1.9.x/server-rust/examples/organization/delete.md b/examples/1.9.x/server-rust/examples/organization/delete.md new file mode 100644 index 000000000..8f0de2de4 --- /dev/null +++ b/examples/1.9.x/server-rust/examples/organization/delete.md @@ -0,0 +1,18 @@ +```rust +use appwrite::Client; +use appwrite::services::Organization; + +#[tokio::main] +async fn main() -> Result<(), Box> { + let client = Client::new(); + client.set_endpoint("https://.cloud.appwrite.io/v1"); // Your API Endpoint + client.set_project(""); // Your project ID + client.set_key(""); // Your secret API key + + let organization = Organization::new(&client); + + organization.delete().await?; + + Ok(()) +} +``` diff --git a/examples/1.9.x/server-rust/examples/organization/get-membership.md b/examples/1.9.x/server-rust/examples/organization/get-membership.md new file mode 100644 index 000000000..8b9bf8704 --- /dev/null +++ b/examples/1.9.x/server-rust/examples/organization/get-membership.md @@ -0,0 +1,22 @@ +```rust +use appwrite::Client; +use appwrite::services::Organization; + +#[tokio::main] +async fn main() -> Result<(), Box> { + let client = Client::new(); + client.set_endpoint("https://.cloud.appwrite.io/v1"); // Your API Endpoint + client.set_project(""); // Your project ID + client.set_key(""); // Your secret API key + + let organization = Organization::new(&client); + + let result = organization.get_membership( + "" + ).await?; + + let _ = result; + + Ok(()) +} +``` diff --git a/examples/1.9.x/server-rust/examples/organization/get.md b/examples/1.9.x/server-rust/examples/organization/get.md new file mode 100644 index 000000000..20091c7c2 --- /dev/null +++ b/examples/1.9.x/server-rust/examples/organization/get.md @@ -0,0 +1,20 @@ +```rust +use appwrite::Client; +use appwrite::services::Organization; + +#[tokio::main] +async fn main() -> Result<(), Box> { + let client = Client::new(); + client.set_endpoint("https://.cloud.appwrite.io/v1"); // Your API Endpoint + client.set_project(""); // Your project ID + client.set_key(""); // Your secret API key + + let organization = Organization::new(&client); + + let result = organization.get().await?; + + let _ = result; + + Ok(()) +} +``` diff --git a/examples/1.9.x/server-rust/examples/organization/list-memberships.md b/examples/1.9.x/server-rust/examples/organization/list-memberships.md new file mode 100644 index 000000000..cfd2363f4 --- /dev/null +++ b/examples/1.9.x/server-rust/examples/organization/list-memberships.md @@ -0,0 +1,24 @@ +```rust +use appwrite::Client; +use appwrite::services::Organization; + +#[tokio::main] +async fn main() -> Result<(), Box> { + let client = Client::new(); + client.set_endpoint("https://.cloud.appwrite.io/v1"); // Your API Endpoint + client.set_project(""); // Your project ID + client.set_key(""); // Your secret API key + + let organization = Organization::new(&client); + + let result = organization.list_memberships( + Some(vec![]), // optional + Some(""), // optional + Some(false) // optional + ).await?; + + let _ = result; + + Ok(()) +} +``` diff --git a/examples/1.9.x/server-rust/examples/organization/update-membership.md b/examples/1.9.x/server-rust/examples/organization/update-membership.md new file mode 100644 index 000000000..9d757562a --- /dev/null +++ b/examples/1.9.x/server-rust/examples/organization/update-membership.md @@ -0,0 +1,23 @@ +```rust +use appwrite::Client; +use appwrite::services::Organization; + +#[tokio::main] +async fn main() -> Result<(), Box> { + let client = Client::new(); + client.set_endpoint("https://.cloud.appwrite.io/v1"); // Your API Endpoint + client.set_project(""); // Your project ID + client.set_key(""); // Your secret API key + + let organization = Organization::new(&client); + + let result = organization.update_membership( + "", + vec![] + ).await?; + + let _ = result; + + Ok(()) +} +``` diff --git a/examples/1.9.x/server-rust/examples/organization/update.md b/examples/1.9.x/server-rust/examples/organization/update.md new file mode 100644 index 000000000..4d6e9dd0b --- /dev/null +++ b/examples/1.9.x/server-rust/examples/organization/update.md @@ -0,0 +1,22 @@ +```rust +use appwrite::Client; +use appwrite::services::Organization; + +#[tokio::main] +async fn main() -> Result<(), Box> { + let client = Client::new(); + client.set_endpoint("https://.cloud.appwrite.io/v1"); // Your API Endpoint + client.set_project(""); // Your project ID + client.set_key(""); // Your secret API key + + let organization = Organization::new(&client); + + let result = organization.update( + "" + ).await?; + + let _ = result; + + Ok(()) +} +``` diff --git a/examples/1.9.x/server-rust/examples/project/update-o-auth-2-appwrite.md b/examples/1.9.x/server-rust/examples/project/update-o-auth-2-appwrite.md new file mode 100644 index 000000000..0ed17eb65 --- /dev/null +++ b/examples/1.9.x/server-rust/examples/project/update-o-auth-2-appwrite.md @@ -0,0 +1,24 @@ +```rust +use appwrite::Client; +use appwrite::services::Project; + +#[tokio::main] +async fn main() -> Result<(), Box> { + let client = Client::new(); + client.set_endpoint("https://.cloud.appwrite.io/v1"); // Your API Endpoint + client.set_project(""); // Your project ID + client.set_key(""); // Your secret API key + + let project = Project::new(&client); + + let result = project.update_o_auth2_appwrite( + Some(""), // optional + Some(""), // optional + Some(false) // optional + ).await?; + + let _ = result; + + Ok(()) +} +``` diff --git a/examples/1.9.x/server-rust/examples/project/update-o-auth-2-oidc.md b/examples/1.9.x/server-rust/examples/project/update-o-auth-2-oidc.md index f37d38775..bc607cea4 100644 --- a/examples/1.9.x/server-rust/examples/project/update-o-auth-2-oidc.md +++ b/examples/1.9.x/server-rust/examples/project/update-o-auth-2-oidc.md @@ -18,6 +18,8 @@ async fn main() -> Result<(), Box> { Some("https://example.com"), // optional Some("https://example.com"), // optional Some("https://example.com"), // optional + Some(vec![appwrite::enums::ProjectOAuth2OidcPrompt::None]), // optional + Some(0), // optional Some(false) // optional ).await?; diff --git a/examples/1.9.x/server-rust/examples/project/update-o-auth-2-server.md b/examples/1.9.x/server-rust/examples/project/update-o-auth-2-server.md index 7dceea83d..81d9db8d7 100644 --- a/examples/1.9.x/server-rust/examples/project/update-o-auth-2-server.md +++ b/examples/1.9.x/server-rust/examples/project/update-o-auth-2-server.md @@ -24,7 +24,8 @@ async fn main() -> Result<(), Box> { Some("https://example.com"), // optional Some(6), // optional Some("numeric"), // optional - Some(60) // optional + Some(60), // optional + Some(vec![]) // optional ).await?; let _ = result; diff --git a/examples/1.9.x/server-rust/examples/sites/get-deployment-download.md b/examples/1.9.x/server-rust/examples/sites/get-deployment-download.md index da8b45ad4..925c03507 100644 --- a/examples/1.9.x/server-rust/examples/sites/get-deployment-download.md +++ b/examples/1.9.x/server-rust/examples/sites/get-deployment-download.md @@ -14,7 +14,8 @@ async fn main() -> Result<(), Box> { let result = sites.get_deployment_download( "", "", - Some(appwrite::enums::DeploymentDownloadType::Source) // optional + Some(appwrite::enums::DeploymentDownloadType::Source), // optional + Some("") // optional ).await?; let _ = result; diff --git a/examples/1.9.x/server-rust/examples/tablesdb/create-failover.md b/examples/1.9.x/server-rust/examples/tablesdb/create-failover.md new file mode 100644 index 000000000..dfe48ef9a --- /dev/null +++ b/examples/1.9.x/server-rust/examples/tablesdb/create-failover.md @@ -0,0 +1,23 @@ +```rust +use appwrite::Client; +use appwrite::services::TablesDB; + +#[tokio::main] +async fn main() -> Result<(), Box> { + let client = Client::new(); + client.set_endpoint("https://.cloud.appwrite.io/v1"); // Your API Endpoint + client.set_project(""); // Your project ID + client.set_key(""); // Your secret API key + + let tables_db = TablesDB::new(&client); + + let result = tables_db.create_failover( + "", + Some("") // optional + ).await?; + + let _ = result; + + Ok(()) +} +``` diff --git a/examples/1.9.x/server-rust/examples/tablesdb/create.md b/examples/1.9.x/server-rust/examples/tablesdb/create.md index ce76bfe0b..3af960919 100644 --- a/examples/1.9.x/server-rust/examples/tablesdb/create.md +++ b/examples/1.9.x/server-rust/examples/tablesdb/create.md @@ -15,7 +15,8 @@ async fn main() -> Result<(), Box> { "", "", Some(false), // optional - Some("") // optional + Some("serverless"), // optional + Some(0) // optional ).await?; let _ = result; diff --git a/examples/1.9.x/server-rust/examples/tablesdb/get-replicas.md b/examples/1.9.x/server-rust/examples/tablesdb/get-replicas.md new file mode 100644 index 000000000..b1bf4e30c --- /dev/null +++ b/examples/1.9.x/server-rust/examples/tablesdb/get-replicas.md @@ -0,0 +1,22 @@ +```rust +use appwrite::Client; +use appwrite::services::TablesDB; + +#[tokio::main] +async fn main() -> Result<(), Box> { + let client = Client::new(); + client.set_endpoint("https://.cloud.appwrite.io/v1"); // Your API Endpoint + client.set_project(""); // Your project ID + client.set_key(""); // Your secret API key + + let tables_db = TablesDB::new(&client); + + let result = tables_db.get_replicas( + "" + ).await?; + + let _ = result; + + Ok(()) +} +``` diff --git a/examples/1.9.x/server-rust/examples/tablesdb/get-status.md b/examples/1.9.x/server-rust/examples/tablesdb/get-status.md new file mode 100644 index 000000000..e81607226 --- /dev/null +++ b/examples/1.9.x/server-rust/examples/tablesdb/get-status.md @@ -0,0 +1,22 @@ +```rust +use appwrite::Client; +use appwrite::services::TablesDB; + +#[tokio::main] +async fn main() -> Result<(), Box> { + let client = Client::new(); + client.set_endpoint("https://.cloud.appwrite.io/v1"); // Your API Endpoint + client.set_project(""); // Your project ID + client.set_key(""); // Your secret API key + + let tables_db = TablesDB::new(&client); + + let result = tables_db.get_status( + "" + ).await?; + + let _ = result; + + Ok(()) +} +``` diff --git a/examples/1.9.x/server-rust/examples/tablesdb/list-specifications.md b/examples/1.9.x/server-rust/examples/tablesdb/list-specifications.md new file mode 100644 index 000000000..20e7e344a --- /dev/null +++ b/examples/1.9.x/server-rust/examples/tablesdb/list-specifications.md @@ -0,0 +1,20 @@ +```rust +use appwrite::Client; +use appwrite::services::TablesDB; + +#[tokio::main] +async fn main() -> Result<(), Box> { + let client = Client::new(); + client.set_endpoint("https://.cloud.appwrite.io/v1"); // Your API Endpoint + client.set_project(""); // Your project ID + client.set_key(""); // Your secret API key + + let tables_db = TablesDB::new(&client); + + let result = tables_db.list_specifications().await?; + + let _ = result; + + Ok(()) +} +``` diff --git a/examples/1.9.x/server-rust/examples/tablesdb/update.md b/examples/1.9.x/server-rust/examples/tablesdb/update.md index 13251f035..be80e0855 100644 --- a/examples/1.9.x/server-rust/examples/tablesdb/update.md +++ b/examples/1.9.x/server-rust/examples/tablesdb/update.md @@ -14,7 +14,8 @@ async fn main() -> Result<(), Box> { let result = tables_db.update( "", Some(""), // optional - Some(false) // optional + Some(false), // optional + Some(0) // optional ).await?; let _ = result; diff --git a/examples/1.9.x/server-rust/examples/usage/list-events.md b/examples/1.9.x/server-rust/examples/usage/list-events.md index 4cba57048..1632c60c6 100644 --- a/examples/1.9.x/server-rust/examples/usage/list-events.md +++ b/examples/1.9.x/server-rust/examples/usage/list-events.md @@ -13,8 +13,7 @@ async fn main() -> Result<(), Box> { let result = usage.list_events( vec![], - Some(""), // optional - Some(""), // optional + Some(vec![]), // optional Some("1m"), // optional Some(vec![]), // optional Some("2020-10-15T06:38:00.000+00:00"), // optional diff --git a/examples/1.9.x/server-rust/examples/usage/list-gauges.md b/examples/1.9.x/server-rust/examples/usage/list-gauges.md index d4204496c..7775bbd3f 100644 --- a/examples/1.9.x/server-rust/examples/usage/list-gauges.md +++ b/examples/1.9.x/server-rust/examples/usage/list-gauges.md @@ -13,8 +13,7 @@ async fn main() -> Result<(), Box> { let result = usage.list_gauges( vec![], - Some(""), // optional - Some(""), // optional + Some(vec![]), // optional Some("1m"), // optional Some(vec![]), // optional Some("2020-10-15T06:38:00.000+00:00"), // optional diff --git a/examples/1.9.x/server-swift/examples/account/delete-consent-token.md b/examples/1.9.x/server-swift/examples/account/delete-consent-token.md new file mode 100644 index 000000000..60f94ca3f --- /dev/null +++ b/examples/1.9.x/server-swift/examples/account/delete-consent-token.md @@ -0,0 +1,16 @@ +```swift +import Appwrite + +let client = Client() + .setEndpoint("https://.cloud.appwrite.io/v1") // Your API Endpoint + .setProject("") // Your project ID + .setSession("") // The user session to authenticate with + +let account = Account(client) + +let result = try await account.deleteConsentToken( + consentId: "", + tokenId: "" +) + +``` diff --git a/examples/1.9.x/server-swift/examples/account/delete-consent.md b/examples/1.9.x/server-swift/examples/account/delete-consent.md new file mode 100644 index 000000000..0168d06e0 --- /dev/null +++ b/examples/1.9.x/server-swift/examples/account/delete-consent.md @@ -0,0 +1,15 @@ +```swift +import Appwrite + +let client = Client() + .setEndpoint("https://.cloud.appwrite.io/v1") // Your API Endpoint + .setProject("") // Your project ID + .setSession("") // The user session to authenticate with + +let account = Account(client) + +let result = try await account.deleteConsent( + consentId: "" +) + +``` diff --git a/examples/1.9.x/server-swift/examples/account/get-consent-token.md b/examples/1.9.x/server-swift/examples/account/get-consent-token.md new file mode 100644 index 000000000..2785a2846 --- /dev/null +++ b/examples/1.9.x/server-swift/examples/account/get-consent-token.md @@ -0,0 +1,16 @@ +```swift +import Appwrite + +let client = Client() + .setEndpoint("https://.cloud.appwrite.io/v1") // Your API Endpoint + .setProject("") // Your project ID + .setSession("") // The user session to authenticate with + +let account = Account(client) + +let oauth2ConsentToken = try await account.getConsentToken( + consentId: "", + tokenId: "" +) + +``` diff --git a/examples/1.9.x/server-swift/examples/account/get-consent.md b/examples/1.9.x/server-swift/examples/account/get-consent.md new file mode 100644 index 000000000..4a0a5fa82 --- /dev/null +++ b/examples/1.9.x/server-swift/examples/account/get-consent.md @@ -0,0 +1,15 @@ +```swift +import Appwrite + +let client = Client() + .setEndpoint("https://.cloud.appwrite.io/v1") // Your API Endpoint + .setProject("") // Your project ID + .setSession("") // The user session to authenticate with + +let account = Account(client) + +let oauth2Consent = try await account.getConsent( + consentId: "" +) + +``` diff --git a/examples/1.9.x/server-swift/examples/account/list-consent-tokens.md b/examples/1.9.x/server-swift/examples/account/list-consent-tokens.md new file mode 100644 index 000000000..832bc12c8 --- /dev/null +++ b/examples/1.9.x/server-swift/examples/account/list-consent-tokens.md @@ -0,0 +1,17 @@ +```swift +import Appwrite + +let client = Client() + .setEndpoint("https://.cloud.appwrite.io/v1") // Your API Endpoint + .setProject("") // Your project ID + .setSession("") // The user session to authenticate with + +let account = Account(client) + +let oauth2ConsentTokenList = try await account.listConsentTokens( + consentId: "", + queries: [], // optional + total: false // optional +) + +``` diff --git a/examples/1.9.x/server-swift/examples/account/list-consents.md b/examples/1.9.x/server-swift/examples/account/list-consents.md new file mode 100644 index 000000000..68ba060a2 --- /dev/null +++ b/examples/1.9.x/server-swift/examples/account/list-consents.md @@ -0,0 +1,16 @@ +```swift +import Appwrite + +let client = Client() + .setEndpoint("https://.cloud.appwrite.io/v1") // Your API Endpoint + .setProject("") // Your project ID + .setSession("") // The user session to authenticate with + +let account = Account(client) + +let oauth2ConsentList = try await account.listConsents( + queries: [], // optional + total: false // optional +) + +``` diff --git a/examples/1.9.x/server-swift/examples/functions/get-deployment-download.md b/examples/1.9.x/server-swift/examples/functions/get-deployment-download.md index cbef3a215..6d3674e3f 100644 --- a/examples/1.9.x/server-swift/examples/functions/get-deployment-download.md +++ b/examples/1.9.x/server-swift/examples/functions/get-deployment-download.md @@ -12,7 +12,8 @@ let functions = Functions(client) let bytes = try await functions.getDeploymentDownload( functionId: "", deploymentId: "", - type: .source // optional + type: .source, // optional + token: "" // optional ) ``` diff --git a/examples/1.9.x/server-swift/examples/health/get-geo-premium.md b/examples/1.9.x/server-swift/examples/health/get-geo-premium.md new file mode 100644 index 000000000..ebacfd9e6 --- /dev/null +++ b/examples/1.9.x/server-swift/examples/health/get-geo-premium.md @@ -0,0 +1,13 @@ +```swift +import Appwrite + +let client = Client() + .setEndpoint("https://.cloud.appwrite.io/v1") // Your API Endpoint + .setProject("") // Your project ID + .setKey("") // Your secret API key + +let health = Health(client) + +let healthStatus = try await health.getGeoPremium() + +``` diff --git a/examples/1.9.x/server-swift/examples/health/get-geo.md b/examples/1.9.x/server-swift/examples/health/get-geo.md new file mode 100644 index 000000000..44a246f91 --- /dev/null +++ b/examples/1.9.x/server-swift/examples/health/get-geo.md @@ -0,0 +1,13 @@ +```swift +import Appwrite + +let client = Client() + .setEndpoint("https://.cloud.appwrite.io/v1") // Your API Endpoint + .setProject("") // Your project ID + .setKey("") // Your secret API key + +let health = Health(client) + +let healthStatus = try await health.getGeo() + +``` diff --git a/examples/1.9.x/server-swift/examples/health/get-queue-notifications.md b/examples/1.9.x/server-swift/examples/health/get-queue-notifications.md new file mode 100644 index 000000000..bb813c24a --- /dev/null +++ b/examples/1.9.x/server-swift/examples/health/get-queue-notifications.md @@ -0,0 +1,15 @@ +```swift +import Appwrite + +let client = Client() + .setEndpoint("https://.cloud.appwrite.io/v1") // Your API Endpoint + .setProject("") // Your project ID + .setKey("") // Your secret API key + +let health = Health(client) + +let healthQueue = try await health.getQueueNotifications( + threshold: 0 // optional +) + +``` diff --git a/examples/1.9.x/server-swift/examples/organization/create-membership.md b/examples/1.9.x/server-swift/examples/organization/create-membership.md new file mode 100644 index 000000000..61f0d91e9 --- /dev/null +++ b/examples/1.9.x/server-swift/examples/organization/create-membership.md @@ -0,0 +1,20 @@ +```swift +import Appwrite + +let client = Client() + .setEndpoint("https://.cloud.appwrite.io/v1") // Your API Endpoint + .setProject("") // Your project ID + .setKey("") // Your secret API key + +let organization = Organization(client) + +let membership = try await organization.createMembership( + roles: [], + email: "email@example.com", // optional + userId: "", // optional + phone: "+12065550100", // optional + url: "https://example.com", // optional + name: "" // optional +) + +``` diff --git a/examples/1.9.x/server-swift/examples/organization/delete-membership.md b/examples/1.9.x/server-swift/examples/organization/delete-membership.md new file mode 100644 index 000000000..a35000cf5 --- /dev/null +++ b/examples/1.9.x/server-swift/examples/organization/delete-membership.md @@ -0,0 +1,15 @@ +```swift +import Appwrite + +let client = Client() + .setEndpoint("https://.cloud.appwrite.io/v1") // Your API Endpoint + .setProject("") // Your project ID + .setKey("") // Your secret API key + +let organization = Organization(client) + +let result = try await organization.deleteMembership( + membershipId: "" +) + +``` diff --git a/examples/1.9.x/server-swift/examples/organization/delete.md b/examples/1.9.x/server-swift/examples/organization/delete.md new file mode 100644 index 000000000..5ed7a9faa --- /dev/null +++ b/examples/1.9.x/server-swift/examples/organization/delete.md @@ -0,0 +1,13 @@ +```swift +import Appwrite + +let client = Client() + .setEndpoint("https://.cloud.appwrite.io/v1") // Your API Endpoint + .setProject("") // Your project ID + .setKey("") // Your secret API key + +let organization = Organization(client) + +let result = try await organization.delete() + +``` diff --git a/examples/1.9.x/server-swift/examples/organization/get-membership.md b/examples/1.9.x/server-swift/examples/organization/get-membership.md new file mode 100644 index 000000000..49be24adc --- /dev/null +++ b/examples/1.9.x/server-swift/examples/organization/get-membership.md @@ -0,0 +1,15 @@ +```swift +import Appwrite + +let client = Client() + .setEndpoint("https://.cloud.appwrite.io/v1") // Your API Endpoint + .setProject("") // Your project ID + .setKey("") // Your secret API key + +let organization = Organization(client) + +let membership = try await organization.getMembership( + membershipId: "" +) + +``` diff --git a/examples/1.9.x/server-swift/examples/organization/get.md b/examples/1.9.x/server-swift/examples/organization/get.md new file mode 100644 index 000000000..c2cfbcd7e --- /dev/null +++ b/examples/1.9.x/server-swift/examples/organization/get.md @@ -0,0 +1,13 @@ +```swift +import Appwrite + +let client = Client() + .setEndpoint("https://.cloud.appwrite.io/v1") // Your API Endpoint + .setProject("") // Your project ID + .setKey("") // Your secret API key + +let organization = Organization(client) + +let organization = try await organization.get() + +``` diff --git a/examples/1.9.x/server-swift/examples/organization/list-memberships.md b/examples/1.9.x/server-swift/examples/organization/list-memberships.md new file mode 100644 index 000000000..f7402bc4e --- /dev/null +++ b/examples/1.9.x/server-swift/examples/organization/list-memberships.md @@ -0,0 +1,17 @@ +```swift +import Appwrite + +let client = Client() + .setEndpoint("https://.cloud.appwrite.io/v1") // Your API Endpoint + .setProject("") // Your project ID + .setKey("") // Your secret API key + +let organization = Organization(client) + +let membershipList = try await organization.listMemberships( + queries: [], // optional + search: "", // optional + total: false // optional +) + +``` diff --git a/examples/1.9.x/server-swift/examples/organization/update-membership.md b/examples/1.9.x/server-swift/examples/organization/update-membership.md new file mode 100644 index 000000000..c2cb9e01b --- /dev/null +++ b/examples/1.9.x/server-swift/examples/organization/update-membership.md @@ -0,0 +1,16 @@ +```swift +import Appwrite + +let client = Client() + .setEndpoint("https://.cloud.appwrite.io/v1") // Your API Endpoint + .setProject("") // Your project ID + .setKey("") // Your secret API key + +let organization = Organization(client) + +let membership = try await organization.updateMembership( + membershipId: "", + roles: [] +) + +``` diff --git a/examples/1.9.x/server-swift/examples/organization/update.md b/examples/1.9.x/server-swift/examples/organization/update.md new file mode 100644 index 000000000..353c266e6 --- /dev/null +++ b/examples/1.9.x/server-swift/examples/organization/update.md @@ -0,0 +1,15 @@ +```swift +import Appwrite + +let client = Client() + .setEndpoint("https://.cloud.appwrite.io/v1") // Your API Endpoint + .setProject("") // Your project ID + .setKey("") // Your secret API key + +let organization = Organization(client) + +let organization = try await organization.update( + name: "" +) + +``` diff --git a/examples/1.9.x/server-swift/examples/project/update-o-auth-2-appwrite.md b/examples/1.9.x/server-swift/examples/project/update-o-auth-2-appwrite.md new file mode 100644 index 000000000..6af65dfd3 --- /dev/null +++ b/examples/1.9.x/server-swift/examples/project/update-o-auth-2-appwrite.md @@ -0,0 +1,17 @@ +```swift +import Appwrite + +let client = Client() + .setEndpoint("https://.cloud.appwrite.io/v1") // Your API Endpoint + .setProject("") // Your project ID + .setKey("") // Your secret API key + +let project = Project(client) + +let oAuth2Appwrite = try await project.updateOAuth2Appwrite( + clientId: "", // optional + clientSecret: "", // optional + enabled: false // optional +) + +``` diff --git a/examples/1.9.x/server-swift/examples/project/update-o-auth-2-oidc.md b/examples/1.9.x/server-swift/examples/project/update-o-auth-2-oidc.md index 38599490e..8fe0ed2c3 100644 --- a/examples/1.9.x/server-swift/examples/project/update-o-auth-2-oidc.md +++ b/examples/1.9.x/server-swift/examples/project/update-o-auth-2-oidc.md @@ -1,5 +1,6 @@ ```swift import Appwrite +import AppwriteEnums let client = Client() .setEndpoint("https://.cloud.appwrite.io/v1") // Your API Endpoint @@ -15,6 +16,8 @@ let oAuth2Oidc = try await project.updateOAuth2Oidc( authorizationURL: "https://example.com", // optional tokenURL: "https://example.com", // optional userInfoURL: "https://example.com", // optional + prompt: [.none], // optional + maxAge: 0, // optional enabled: false // optional ) diff --git a/examples/1.9.x/server-swift/examples/project/update-o-auth-2-server.md b/examples/1.9.x/server-swift/examples/project/update-o-auth-2-server.md index 4361a1a08..f30d89f43 100644 --- a/examples/1.9.x/server-swift/examples/project/update-o-auth-2-server.md +++ b/examples/1.9.x/server-swift/examples/project/update-o-auth-2-server.md @@ -21,7 +21,8 @@ let project = try await project.updateOAuth2Server( verificationUrl: "https://example.com", // optional userCodeLength: 6, // optional userCodeFormat: "numeric", // optional - deviceCodeDuration: 60 // optional + deviceCodeDuration: 60, // optional + defaultScopes: [] // optional ) ``` diff --git a/examples/1.9.x/server-swift/examples/sites/get-deployment-download.md b/examples/1.9.x/server-swift/examples/sites/get-deployment-download.md index 4c11b91cc..d3e391ccd 100644 --- a/examples/1.9.x/server-swift/examples/sites/get-deployment-download.md +++ b/examples/1.9.x/server-swift/examples/sites/get-deployment-download.md @@ -12,7 +12,8 @@ let sites = Sites(client) let bytes = try await sites.getDeploymentDownload( siteId: "", deploymentId: "", - type: .source // optional + type: .source, // optional + token: "" // optional ) ``` diff --git a/examples/1.9.x/server-swift/examples/tablesdb/create-failover.md b/examples/1.9.x/server-swift/examples/tablesdb/create-failover.md new file mode 100644 index 000000000..b8ee06b7f --- /dev/null +++ b/examples/1.9.x/server-swift/examples/tablesdb/create-failover.md @@ -0,0 +1,16 @@ +```swift +import Appwrite + +let client = Client() + .setEndpoint("https://.cloud.appwrite.io/v1") // Your API Endpoint + .setProject("") // Your project ID + .setKey("") // Your secret API key + +let tablesDB = TablesDB(client) + +let dedicatedDatabase = try await tablesDB.createFailover( + databaseId: "", + targetReplicaId: "" // optional +) + +``` diff --git a/examples/1.9.x/server-swift/examples/tablesdb/create.md b/examples/1.9.x/server-swift/examples/tablesdb/create.md index 8b3e94646..e17e2d36c 100644 --- a/examples/1.9.x/server-swift/examples/tablesdb/create.md +++ b/examples/1.9.x/server-swift/examples/tablesdb/create.md @@ -12,7 +12,8 @@ let database = try await tablesDB.create( databaseId: "", name: "", enabled: false, // optional - dedicatedDatabaseId: "" // optional + specification: "serverless", // optional + replicas: 0 // optional ) ``` diff --git a/examples/1.9.x/server-swift/examples/tablesdb/get-replicas.md b/examples/1.9.x/server-swift/examples/tablesdb/get-replicas.md new file mode 100644 index 000000000..7a9d8c101 --- /dev/null +++ b/examples/1.9.x/server-swift/examples/tablesdb/get-replicas.md @@ -0,0 +1,15 @@ +```swift +import Appwrite + +let client = Client() + .setEndpoint("https://.cloud.appwrite.io/v1") // Your API Endpoint + .setProject("") // Your project ID + .setKey("") // Your secret API key + +let tablesDB = TablesDB(client) + +let dedicatedDatabaseReplicas = try await tablesDB.getReplicas( + databaseId: "" +) + +``` diff --git a/examples/1.9.x/server-swift/examples/tablesdb/get-status.md b/examples/1.9.x/server-swift/examples/tablesdb/get-status.md new file mode 100644 index 000000000..6705823f7 --- /dev/null +++ b/examples/1.9.x/server-swift/examples/tablesdb/get-status.md @@ -0,0 +1,15 @@ +```swift +import Appwrite + +let client = Client() + .setEndpoint("https://.cloud.appwrite.io/v1") // Your API Endpoint + .setProject("") // Your project ID + .setKey("") // Your secret API key + +let tablesDB = TablesDB(client) + +let databaseStatus = try await tablesDB.getStatus( + databaseId: "" +) + +``` diff --git a/examples/1.9.x/server-swift/examples/tablesdb/list-specifications.md b/examples/1.9.x/server-swift/examples/tablesdb/list-specifications.md new file mode 100644 index 000000000..9b228a9ba --- /dev/null +++ b/examples/1.9.x/server-swift/examples/tablesdb/list-specifications.md @@ -0,0 +1,13 @@ +```swift +import Appwrite + +let client = Client() + .setEndpoint("https://.cloud.appwrite.io/v1") // Your API Endpoint + .setProject("") // Your project ID + .setKey("") // Your secret API key + +let tablesDB = TablesDB(client) + +let dedicatedDatabaseSpecificationList = try await tablesDB.listSpecifications() + +``` diff --git a/examples/1.9.x/server-swift/examples/tablesdb/update.md b/examples/1.9.x/server-swift/examples/tablesdb/update.md index b1c2c665b..ed73c57a6 100644 --- a/examples/1.9.x/server-swift/examples/tablesdb/update.md +++ b/examples/1.9.x/server-swift/examples/tablesdb/update.md @@ -11,7 +11,8 @@ let tablesDB = TablesDB(client) let database = try await tablesDB.update( databaseId: "", name: "", // optional - enabled: false // optional + enabled: false, // optional + replicas: 0 // optional ) ``` diff --git a/examples/1.9.x/server-swift/examples/usage/list-events.md b/examples/1.9.x/server-swift/examples/usage/list-events.md index 59cf7b401..9af2c63b7 100644 --- a/examples/1.9.x/server-swift/examples/usage/list-events.md +++ b/examples/1.9.x/server-swift/examples/usage/list-events.md @@ -10,8 +10,7 @@ let usage = Usage(client) let usageEventList = try await usage.listEvents( metrics: [], - resource: "", // optional - resourceId: "", // optional + queries: [], // optional interval: "1m", // optional dimensions: [], // optional startAt: "2020-10-15T06:38:00.000+00:00", // optional diff --git a/examples/1.9.x/server-swift/examples/usage/list-gauges.md b/examples/1.9.x/server-swift/examples/usage/list-gauges.md index b78f7b4a2..df0f90280 100644 --- a/examples/1.9.x/server-swift/examples/usage/list-gauges.md +++ b/examples/1.9.x/server-swift/examples/usage/list-gauges.md @@ -10,8 +10,7 @@ let usage = Usage(client) let usageGaugeList = try await usage.listGauges( metrics: [], - resourceId: "", // optional - teamId: "", // optional + queries: [], // optional interval: "1m", // optional dimensions: [], // optional startAt: "2020-10-15T06:38:00.000+00:00", // optional diff --git a/specs/1.9.x/open-api3-1.9.x-client.json b/specs/1.9.x/open-api3-1.9.x-client.json index 9cc9992ed..1787befed 100644 --- a/specs/1.9.x/open-api3-1.9.x-client.json +++ b/specs/1.9.x/open-api3-1.9.x-client.json @@ -176,6 +176,430 @@ } } }, + "\/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": { + "method": "listConsents", + "group": "consents", + "cookies": false, + "type": "", + "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", + "x-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": { + "method": "getConsent", + "group": "consents", + "cookies": false, + "type": "", + "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", + "x-example": "" + }, + "in": "path" + } + ] + }, + "delete": { + "summary": "Delete consent", + "operationId": "accountDeleteConsent", + "tags": [ + "account" + ], + "description": "Delete an OAuth2 consent by its unique ID. All token families issued under the consent are revoked, and the app must ask for consent again to regain access.", + "responses": { + "204": { + "description": "No content" + } + }, + "deprecated": false, + "x-appwrite": { + "method": "deleteConsent", + "group": "consents", + "cookies": false, + "type": "", + "demo": "account\/delete-consent.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "account", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "produces": [ + "application\/json" + ], + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "consentId", + "description": "Consent unique ID.", + "required": true, + "schema": { + "type": "string", + "x-example": "" + }, + "in": "path" + } + ] + } + }, + "\/account\/consents\/{consentId}\/tokens": { + "get": { + "summary": "List consent tokens", + "operationId": "accountListConsentTokens", + "tags": [ + "account" + ], + "description": "Get a list of the token families issued under an OAuth2 consent. Each entry represents one authorized device or session; the token secrets themselves are never returned.", + "responses": { + "200": { + "description": "OAuth2 consent tokens list", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/oauth2ConsentTokenList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "method": "listConsentTokens", + "group": "consents", + "cookies": false, + "type": "", + "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", + "x-example": "" + }, + "in": "path" + }, + { + "name": "queries", + "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/queries). Maximum of 100 queries are allowed, each 4096 characters long.", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string" + }, + "default": [] + }, + "in": "query" + }, + { + "name": "total", + "description": "When set to false, the total count returned will be 0 and will not be calculated.", + "required": false, + "schema": { + "type": "boolean", + "x-example": false, + "default": true + }, + "in": "query" + } + ] + } + }, + "\/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": { + "method": "getConsentToken", + "group": "consents", + "cookies": false, + "type": "", + "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", + "x-example": "" + }, + "in": "path" + }, + { + "name": "tokenId", + "description": "Token unique ID.", + "required": true, + "schema": { + "type": "string", + "x-example": "" + }, + "in": "path" + } + ] + }, + "delete": { + "summary": "Delete consent token", + "operationId": "accountDeleteConsentToken", + "tags": [ + "account" + ], + "description": "Delete a token family issued under an OAuth2 consent by its unique ID. The access and refresh tokens of the family stop working immediately; other token families and the consent itself are unaffected.", + "responses": { + "204": { + "description": "No content" + } + }, + "deprecated": false, + "x-appwrite": { + "method": "deleteConsentToken", + "group": "consents", + "cookies": false, + "type": "", + "demo": "account\/delete-consent-token.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "account", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "produces": [ + "application\/json" + ], + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "consentId", + "description": "Consent unique ID.", + "required": true, + "schema": { + "type": "string", + "x-example": "" + }, + "in": "path" + }, + { + "name": "tokenId", + "description": "Token unique ID.", + "required": true, + "schema": { + "type": "string", + "x-example": "" + }, + "in": "path" + } + ] + } + }, "\/account\/email": { "patch": { "summary": "Update email", @@ -2550,7 +2974,7 @@ "parameters": [ { "name": "provider", - "description": "OAuth2 Provider. Currently, supported providers are: amazon, apple, auth0, authentik, autodesk, bitbucket, bitly, box, dailymotion, discord, disqus, dropbox, etsy, facebook, figma, fusionauth, github, gitlab, google, keycloak, kick, linkedin, microsoft, notion, oidc, okta, paypal, paypalSandbox, podio, salesforce, slack, spotify, stripe, tradeshift, tradeshiftBox, twitch, wordpress, x, yahoo, yammer, yandex, zoho, zoom.", + "description": "OAuth2 Provider. Currently, supported providers are: amazon, apple, appwrite, auth0, authentik, autodesk, bitbucket, bitly, box, dailymotion, discord, disqus, dropbox, etsy, facebook, figma, fusionauth, github, gitlab, google, keycloak, kick, linkedin, microsoft, notion, oidc, okta, paypal, paypalSandbox, podio, salesforce, slack, spotify, stripe, tradeshift, tradeshiftBox, twitch, wordpress, x, yahoo, yammer, yandex, zoho, zoom.", "required": true, "schema": { "type": "string", @@ -2558,6 +2982,7 @@ "enum": [ "amazon", "apple", + "appwrite", "auth0", "authentik", "autodesk", @@ -2604,6 +3029,7 @@ "x-enum-keys": [ "amazon", "apple", + "appwrite", "auth0", "authentik", "autodesk", @@ -3545,7 +3971,7 @@ "parameters": [ { "name": "provider", - "description": "OAuth2 Provider. Currently, supported providers are: amazon, apple, auth0, authentik, autodesk, bitbucket, bitly, box, dailymotion, discord, disqus, dropbox, etsy, facebook, figma, fusionauth, github, gitlab, google, keycloak, kick, linkedin, microsoft, notion, oidc, okta, paypal, paypalSandbox, podio, salesforce, slack, spotify, stripe, tradeshift, tradeshiftBox, twitch, wordpress, x, yahoo, yammer, yandex, zoho, zoom.", + "description": "OAuth2 Provider. Currently, supported providers are: amazon, apple, appwrite, auth0, authentik, autodesk, bitbucket, bitly, box, dailymotion, discord, disqus, dropbox, etsy, facebook, figma, fusionauth, github, gitlab, google, keycloak, kick, linkedin, microsoft, notion, oidc, okta, paypal, paypalSandbox, podio, salesforce, slack, spotify, stripe, tradeshift, tradeshiftBox, twitch, wordpress, x, yahoo, yammer, yandex, zoho, zoom.", "required": true, "schema": { "type": "string", @@ -3553,6 +3979,7 @@ "enum": [ "amazon", "apple", + "appwrite", "auth0", "authentik", "autodesk", @@ -3599,6 +4026,7 @@ "x-enum-keys": [ "amazon", "apple", + "appwrite", "auth0", "authentik", "autodesk", @@ -4176,7 +4604,7 @@ "deprecated": false, "x-appwrite": { "method": "list", - "group": null, + "group": "apps", "cookies": false, "type": "", "demo": "apps\/list.md", @@ -4251,7 +4679,7 @@ "deprecated": false, "x-appwrite": { "method": "create", - "group": null, + "group": "apps", "cookies": false, "type": "", "demo": "apps\/create.md", @@ -4379,7 +4807,7 @@ }, "redirectUris": { "type": "array", - "description": "Redirect URIs (array of valid URLs).", + "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.", "x-example": null, "items": { "type": "string" @@ -4387,7 +4815,7 @@ }, "postLogoutRedirectUris": { "type": "array", - "description": "Post-logout redirect URIs for OpenID Connect RP-Initiated Logout (array of valid URLs). After ending the user session, the logout endpoint only redirects to URIs in this list.", + "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.", "default": [], "x-example": null, "items": { @@ -4430,6 +4858,57 @@ } } }, + "\/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": { + "method": "listOAuth2Scopes", + "group": "scopes", + "cookies": false, + "type": "", + "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", @@ -4453,7 +4932,7 @@ "deprecated": false, "x-appwrite": { "method": "get", - "group": null, + "group": "apps", "cookies": false, "type": "", "demo": "apps\/get.md", @@ -4482,7 +4961,7 @@ "parameters": [ { "name": "appId", - "description": "Application unique ID.", + "description": "Application unique ID or HTTPS client ID metadata document URL.", "required": true, "schema": { "type": "string", @@ -4514,7 +4993,7 @@ "deprecated": false, "x-appwrite": { "method": "update", - "group": null, + "group": "apps", "cookies": false, "type": "", "demo": "apps\/update.md", @@ -4652,7 +5131,7 @@ }, "redirectUris": { "type": "array", - "description": "Redirect URIs (array of valid URLs).", + "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.", "default": [], "x-example": null, "items": { @@ -4661,7 +5140,7 @@ }, "postLogoutRedirectUris": { "type": "array", - "description": "Post-logout redirect URIs for OpenID Connect RP-Initiated Logout (array of valid URLs). After ending the user session, the logout endpoint only redirects to URIs in this list.", + "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.", "default": [], "x-example": null, "items": { @@ -4704,7 +5183,7 @@ "deprecated": false, "x-appwrite": { "method": "delete", - "group": null, + "group": "apps", "cookies": false, "type": "", "demo": "apps\/delete.md", @@ -4770,7 +5249,7 @@ "deprecated": false, "x-appwrite": { "method": "listSecrets", - "group": null, + "group": "secrets", "cookies": false, "type": "", "demo": "apps\/list-secrets.md", @@ -4855,7 +5334,7 @@ "deprecated": false, "x-appwrite": { "method": "createSecret", - "group": null, + "group": "secrets", "cookies": false, "type": "", "demo": "apps\/create-secret.md", @@ -4918,7 +5397,7 @@ "deprecated": false, "x-appwrite": { "method": "getSecret", - "group": null, + "group": "secrets", "cookies": false, "type": "", "demo": "apps\/get-secret.md", @@ -4982,7 +5461,7 @@ "deprecated": false, "x-appwrite": { "method": "deleteSecret", - "group": null, + "group": "secrets", "cookies": false, "type": "", "demo": "apps\/delete-secret.md", @@ -5058,7 +5537,7 @@ "deprecated": false, "x-appwrite": { "method": "updateTeam", - "group": null, + "group": "apps", "cookies": false, "type": "", "demo": "apps\/update-team.md", @@ -5133,7 +5612,7 @@ "deprecated": false, "x-appwrite": { "method": "deleteTokens", - "group": null, + "group": "apps", "cookies": false, "type": "", "demo": "apps\/delete-tokens.md", @@ -8211,7 +8690,6 @@ "documentId": { "type": "string", "description": "Document ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.", - "default": "", "x-example": "", "x-appwrite": { "idGenerator": "ID.unique" @@ -8220,7 +8698,7 @@ "data": { "type": "object", "description": "Document data as JSON object.", - "default": [], + "default": {}, "x-example": "{\"username\":\"walter.obrien\",\"email\":\"walter.obrien@example.com\",\"fullName\":\"Walter O'Brien\",\"age\":30,\"isAdmin\":false}" }, "permissions": { @@ -8247,7 +8725,11 @@ "x-example": "", "x-nullable": true } - } + }, + "required": [ + "documentId", + "data" + ] } } } @@ -9665,7 +10147,6 @@ "documentId": { "type": "string", "description": "Document ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.", - "default": "", "x-example": "", "x-appwrite": { "idGenerator": "ID.unique" @@ -9674,7 +10155,7 @@ "data": { "type": "object", "description": "Document data as JSON object.", - "default": [], + "default": {}, "x-example": "{\"username\":\"walter.obrien\",\"email\":\"walter.obrien@example.com\",\"fullName\":\"Walter O'Brien\",\"age\":30,\"isAdmin\":false}" }, "permissions": { @@ -9699,7 +10180,11 @@ "description": "Transaction ID for staging the operation.", "x-example": "" } - } + }, + "required": [ + "documentId", + "data" + ] } } } @@ -10852,7 +11337,7 @@ "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/cloudLocale" + "$ref": "#\/components\/schemas\/locale" } } } @@ -11436,7 +11921,7 @@ "deprecated": false, "x-appwrite": { "method": "approve", - "group": null, + "group": "authorization", "cookies": false, "type": "", "demo": "oauth2\/approve.md", @@ -11510,7 +11995,7 @@ "\/oauth2\/{project_id}\/authorize": { "get": { "summary": "OAuth2 Authorize", - "operationId": "oauth2Authorize", + "operationId": "oauth2AuthorizeGet", "tags": [ "oauth2" ], @@ -11530,7 +12015,7 @@ "deprecated": false, "x-appwrite": { "method": "authorize", - "group": null, + "group": "authorization", "cookies": false, "type": "", "demo": "oauth2\/authorize.md", @@ -11569,7 +12054,7 @@ }, { "name": "client_id", - "description": "OAuth2 client ID.", + "description": "OAuth2 client ID. Either a registered app ID or an HTTPS client ID metadata document URL.", "required": false, "schema": { "type": "string", @@ -11699,6 +12184,17 @@ }, "in": "query" }, + { + "name": "audience", + "description": "Compatibility alias for a single OAuth2 resource indicator URI.", + "required": false, + "schema": { + "type": "string", + "x-example": "", + "default": "" + }, + "in": "query" + }, { "name": "request_uri", "description": "OAuth2 authorization request handle returned by the pushed authorization request endpoint.", @@ -11710,7 +12206,165 @@ }, "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": { + "method": "authorizePost", + "group": "authorization", + "cookies": false, + "type": "", + "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, + "auth": { + "ProjectPath": [] + } + }, + "security": [ + { + "ProjectPath": [], + "Session": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "project_id", + "description": "Project ID in which OAuth2 client exists.", + "required": true, + "schema": { + "type": "string", + "x-example": "" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "client_id": { + "type": "string", + "description": "OAuth2 client ID. Either a registered app ID or an HTTPS client ID metadata document URL.", + "default": "", + "x-example": "" + }, + "redirect_uri": { + "type": "string", + "description": "Redirect URI where visitor will be redirected after authorization, whether successful or not.", + "default": "", + "x-example": "https:\/\/example.com", + "format": "url" + }, + "response_type": { + "type": "string", + "description": "OAuth2 \/ OIDC response type. One of `code` (Authorization Code Flow), `id_token` (Implicit Flow, OIDC login only), or `code id_token` (Hybrid Flow).", + "default": "", + "x-example": "" + }, + "scope": { + "type": "string", + "description": "Space-separated OAuth2 scopes. Can include project scopes, and built-in scopes: `openid`, `email`, `profile`, `phone`.", + "default": "", + "x-example": "" + }, + "state": { + "type": "string", + "description": "OAuth2 state. You receive this back in the redirect URI.", + "default": "", + "x-example": "" + }, + "nonce": { + "type": "string", + "description": "OIDC nonce parameter to prevent replay attacks. Required when response_type includes `id_token`.", + "default": "", + "x-example": "" + }, + "code_challenge": { + "type": "string", + "description": "PKCE code challenge. Required when OAuth2 app is public.", + "default": "", + "x-example": "" + }, + "code_challenge_method": { + "type": "string", + "description": "PKCE code challenge method. Required when OAuth2 app is public.", + "default": "", + "x-example": "s256" + }, + "prompt": { + "type": "string", + "description": "OIDC prompt parameter for customization of consent screen. Space-separated list of: none, login, consent, select_account.", + "default": "", + "x-example": "" + }, + "max_age": { + "type": "integer", + "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.", + "x-example": 0, + "format": "int32", + "x-nullable": true + }, + "authorization_details": { + "type": "string", + "description": "Rich authorization request. JSON array of objects, each with a `type` and project-defined fields", + "default": "", + "x-example": "" + }, + "resource": { + "type": "string", + "description": "RFC 8707 resource indicator URI or URI list. Each value must be an absolute URI without a fragment.", + "default": [], + "x-example": null + }, + "audience": { + "type": "string", + "description": "Compatibility alias for a single OAuth2 resource indicator URI.", + "default": "", + "x-example": "" + }, + "request_uri": { + "type": "string", + "description": "OAuth2 authorization request handle returned by the pushed authorization request endpoint.", + "default": "", + "x-example": "" + } + } + } + } + } + } } }, "\/oauth2\/{project_id}\/device_authorization": { @@ -11736,7 +12390,7 @@ "deprecated": false, "x-appwrite": { "method": "createDeviceAuthorization", - "group": null, + "group": "authorization", "cookies": false, "type": "", "demo": "oauth2\/create-device-authorization.md", @@ -11782,7 +12436,7 @@ "properties": { "client_id": { "type": "string", - "description": "OAuth2 client ID.", + "description": "OAuth2 client ID. Either a registered app ID or an HTTPS client ID metadata document URL.", "default": "", "x-example": "" }, @@ -11803,6 +12457,12 @@ "description": "RFC 8707 resource indicator URI or URI list. Each value must be an absolute URI without a fragment.", "default": [], "x-example": null + }, + "audience": { + "type": "string", + "description": "Compatibility alias for a single OAuth2 resource indicator URI.", + "default": "", + "x-example": "" } } } @@ -11834,7 +12494,7 @@ "deprecated": false, "x-appwrite": { "method": "createGrant", - "group": null, + "group": "grants", "cookies": false, "type": "", "demo": "oauth2\/create-grant.md", @@ -11916,7 +12576,7 @@ "deprecated": false, "x-appwrite": { "method": "getGrant", - "group": null, + "group": "grants", "cookies": false, "type": "", "demo": "oauth2\/get-grant.md", @@ -11969,7 +12629,7 @@ "\/oauth2\/{project_id}\/logout": { "get": { "summary": "OAuth2 Logout", - "operationId": "oauth2Logout", + "operationId": "oauth2LogoutGet", "tags": [ "oauth2" ], @@ -11982,7 +12642,7 @@ "deprecated": false, "x-appwrite": { "method": "logout", - "group": null, + "group": "tokens", "cookies": false, "type": "", "demo": "oauth2\/logout.md", @@ -12088,6 +12748,109 @@ "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": { + "method": "logoutPost", + "group": "tokens", + "cookies": false, + "type": "", + "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, + "produces": [ + "application\/json" + ], + "auth": { + "ProjectPath": [] + } + }, + "security": [ + { + "ProjectPath": [], + "Session": [] + } + ], + "parameters": [ + { + "name": "project_id", + "description": "Project ID in which OAuth2 client exists.", + "required": true, + "schema": { + "type": "string", + "x-example": "" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "id_token_hint": { + "type": "string", + "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.", + "default": "", + "x-example": "" + }, + "logout_hint": { + "type": "string", + "description": "Hint about the user that is logging out. Accepted for OIDC compatibility.", + "default": "", + "x-example": "" + }, + "client_id": { + "type": "string", + "description": "OAuth2 client ID. When both `client_id` and `id_token_hint` are provided, they must identify the same app.", + "default": "", + "x-example": "" + }, + "post_logout_redirect_uri": { + "type": "string", + "description": "URI to redirect the user to after logout. Must exactly match a URI registered in the app's `postLogoutRedirectUris`.", + "default": "", + "x-example": "https:\/\/example.com", + "format": "url" + }, + "state": { + "type": "string", + "description": "Opaque value passed back unchanged in the `state` query param of the post-logout redirect.", + "default": "", + "x-example": "" + }, + "ui_locales": { + "type": "string", + "description": "Preferred languages for any logout UI, as space-separated BCP47 tags. Accepted for OIDC compatibility.", + "default": "", + "x-example": "" + } + } + } + } + } + } } }, "\/oauth2\/{project_id}\/organizations": { @@ -12113,7 +12876,7 @@ "deprecated": false, "x-appwrite": { "method": "listOrganizations", - "group": null, + "group": "platform", "cookies": false, "type": "", "demo": "oauth2\/list-organizations.md", @@ -12211,7 +12974,7 @@ "deprecated": false, "x-appwrite": { "method": "createPAR", - "group": null, + "group": "authorization", "cookies": false, "type": "", "demo": "oauth2\/create-par.md", @@ -12257,7 +13020,7 @@ "properties": { "client_id": { "type": "string", - "description": "OAuth2 client ID.", + "description": "OAuth2 client ID. Either a registered app ID or an HTTPS client ID metadata document URL.", "x-example": "" }, "redirect_uri": { @@ -12274,6 +13037,7 @@ "scope": { "type": "string", "description": "Space-separated OAuth2 scopes. Can include project scopes, and built-in scopes: `openid`, `email`, `profile`, `phone`.", + "default": "", "x-example": "" }, "state": { @@ -12324,13 +13088,18 @@ "description": "RFC 8707 resource indicator URI or URI list. Each value must be an absolute URI without a fragment.", "default": [], "x-example": null + }, + "audience": { + "type": "string", + "description": "Compatibility alias for a single OAuth2 resource indicator URI.", + "default": "", + "x-example": "" } }, "required": [ "client_id", "redirect_uri", - "response_type", - "scope" + "response_type" ] } } @@ -12361,7 +13130,7 @@ "deprecated": false, "x-appwrite": { "method": "listProjects", - "group": null, + "group": "platform", "cookies": false, "type": "", "demo": "oauth2\/list-projects.md", @@ -12459,7 +13228,7 @@ "deprecated": false, "x-appwrite": { "method": "reject", - "group": null, + "group": "authorization", "cookies": false, "type": "", "demo": "oauth2\/reject.md", @@ -12542,7 +13311,7 @@ "deprecated": false, "x-appwrite": { "method": "revoke", - "group": null, + "group": "tokens", "cookies": false, "type": "", "demo": "oauth2\/revoke.md", @@ -12599,7 +13368,7 @@ }, "client_id": { "type": "string", - "description": "OAuth2 client ID.", + "description": "OAuth2 client ID. Either a registered app ID or an HTTPS client ID metadata document URL.", "default": "", "x-example": "" }, @@ -12642,7 +13411,7 @@ "deprecated": false, "x-appwrite": { "method": "createToken", - "group": null, + "group": "tokens", "cookies": false, "type": "", "demo": "oauth2\/create-token.md", @@ -12711,7 +13480,7 @@ }, "client_id": { "type": "string", - "description": "OAuth2 client ID.", + "description": "OAuth2 client ID. Either a registered app ID or an HTTPS client ID metadata document URL.", "default": "", "x-example": "" }, @@ -12739,6 +13508,12 @@ "description": "RFC 8707 resource indicator URI or URI list. Each value must be an absolute URI without a fragment.", "default": [], "x-example": null + }, + "audience": { + "type": "string", + "description": "Compatibility alias for a single OAuth2 resource indicator URI.", + "default": "", + "x-example": "" } }, "required": [ @@ -14827,7 +15602,6 @@ "rowId": { "type": "string", "description": "Row ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.", - "default": "", "x-example": "", "x-appwrite": { "idGenerator": "ID.unique" @@ -14836,7 +15610,7 @@ "data": { "type": "object", "description": "Row data as JSON object.", - "default": [], + "default": {}, "x-example": "{\"username\":\"walter.obrien\",\"email\":\"walter.obrien@example.com\",\"fullName\":\"Walter O'Brien\",\"age\":30,\"isAdmin\":false}" }, "permissions": { @@ -14863,7 +15637,11 @@ "x-example": "", "x-nullable": true } - } + }, + "required": [ + "rowId", + "data" + ] } } } @@ -17314,7 +18092,6 @@ "documentId": { "type": "string", "description": "Document ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.", - "default": "", "x-example": "", "x-appwrite": { "idGenerator": "ID.unique" @@ -17323,7 +18100,7 @@ "data": { "type": "object", "description": "Document data as JSON object.", - "default": [], + "default": {}, "x-example": "{\"embeddings\": [0.12, -0.55, 0.88, 1.02], \"metadata\": {\"key\":\"value\"} }" }, "permissions": { @@ -17348,7 +18125,11 @@ "description": "Transaction ID for staging the operation.", "x-example": "" } - } + }, + "required": [ + "documentId", + "data" + ] } } } @@ -17828,10 +18609,6 @@ "name": "locale", "description": "The Locale service allows you to customize your app based on your users' location." }, - { - "name": "health", - "description": "The Health service allows you to both validate and monitor your Appwrite server's health." - }, { "name": "projects", "description": "The Project service allows you to manage all the projects in your Appwrite server." @@ -19529,64 +20306,202 @@ "description": "Token ID.", "x-example": "bb8ea5c16897e" }, - "$createdAt": { + "$createdAt": { + "type": "string", + "description": "Token creation date in ISO 8601 format.", + "x-example": "2020-10-15T06:38:00.000+00:00" + }, + "userId": { + "type": "string", + "description": "User ID.", + "x-example": "5e5ea5c168bb8" + }, + "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.", + "x-example": "" + }, + "expire": { + "type": "string", + "description": "Token expiration date in ISO 8601 format.", + "x-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.", + "x-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.", + "x-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.", + "x-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", + "x-example": "US" + }, + "country": { + "type": "string", + "description": "Country name. This field support localization.", + "x-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.", + "x-example": "NA" + }, + "continent": { + "type": "string", + "description": "Continent name. This field support localization.", + "x-example": "North America" + }, + "eu": { + "type": "boolean", + "description": "True if country is part of the European Union.", + "x-example": false + }, + "currency": { + "type": "string", + "description": "Currency code in [ISO 4217-1](http:\/\/en.wikipedia.org\/wiki\/ISO_4217) three-character format", + "x-example": "USD" + }, + "city": { + "type": "string", + "description": "City", + "x-example": "Kathmandu", + "nullable": true + }, + "timeZone": { + "type": "string", + "description": "Name of timezone", + "x-example": "Asia\/Kathmandu", + "nullable": true + }, + "postalCode": { + "type": "string", + "description": "Postal code", + "x-example": "44600", + "nullable": true + }, + "latitude": { + "type": "number", + "description": "Latitude", + "x-example": "82.345", + "format": "double", + "nullable": true + }, + "longitude": { + "type": "number", + "description": "Longitude", + "x-example": "82.345", + "format": "double", + "nullable": true + }, + "autonomousSystemNumber": { "type": "string", - "description": "Token creation date in ISO 8601 format.", - "x-example": "2020-10-15T06:38:00.000+00:00" + "description": "Autonomous System Number (ASN) of the IP", + "x-example": "15169", + "nullable": true }, - "userId": { + "autonomousSystemOrganization": { "type": "string", - "description": "User ID.", - "x-example": "5e5ea5c168bb8" + "description": "Organization that owns the ASN", + "x-example": "GOOGLE", + "nullable": true }, - "secret": { + "isp": { "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.", - "x-example": "" + "description": "Internet service provider of the IP", + "x-example": "Google", + "nullable": true }, - "expire": { + "connectionType": { "type": "string", - "description": "Token expiration date in ISO 8601 format.", - "x-example": "2020-10-15T06:38:00.000+00:00" + "description": "Connection type of the IP (e.g. cable, cellular, corporate)", + "x-example": "cable", + "nullable": true }, - "phrase": { + "connectionUsageType": { "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.", - "x-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": { + "description": "User type classification of the IP (e.g. residential, business, hosting)", + "x-example": "residential", + "nullable": true + }, + "connectionOrganization": { "type": "string", - "description": "JWT encoded string.", - "x-example": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c" + "description": "Registered organization of the IP", + "x-example": "Google LLC", + "nullable": true } }, "required": [ - "jwt" + "ip", + "countryCode", + "country", + "continentCode", + "continent", + "eu", + "currency" ], "example": { - "jwt": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c" + "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": { @@ -20640,144 +21555,6 @@ "expired": false } }, - "cloudLocale": { - "description": "Locale", - "type": "object", - "properties": { - "ip": { - "type": "string", - "description": "User IP address.", - "x-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", - "x-example": "US" - }, - "country": { - "type": "string", - "description": "Country name. This field support localization.", - "x-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.", - "x-example": "NA" - }, - "continent": { - "type": "string", - "description": "Continent name. This field support localization.", - "x-example": "North America" - }, - "eu": { - "type": "boolean", - "description": "True if country is part of the European Union.", - "x-example": false - }, - "currency": { - "type": "string", - "description": "Currency code in [ISO 4217-1](http:\/\/en.wikipedia.org\/wiki\/ISO_4217) three-character format", - "x-example": "USD" - }, - "city": { - "type": "string", - "description": "City", - "x-example": "Kathmandu", - "nullable": true - }, - "timeZone": { - "type": "string", - "description": "Name of timezone", - "x-example": "Asia\/Kathmandu", - "nullable": true - }, - "postalCode": { - "type": "string", - "description": "Postal code", - "x-example": "44600", - "nullable": true - }, - "latitude": { - "type": "number", - "description": "Latitude", - "x-example": "82.345", - "format": "double", - "nullable": true - }, - "longitude": { - "type": "number", - "description": "Longitude", - "x-example": "82.345", - "format": "double", - "nullable": true - }, - "autonomousSystemNumber": { - "type": "string", - "description": "Autonomous System Number (ASN) of the IP", - "x-example": "15169", - "nullable": true - }, - "autonomousSystemOrganization": { - "type": "string", - "description": "Organization that owns the ASN", - "x-example": "GOOGLE", - "nullable": true - }, - "isp": { - "type": "string", - "description": "Internet service provider of the IP", - "x-example": "Google", - "nullable": true - }, - "connectionType": { - "type": "string", - "description": "Connection type of the IP (e.g. cable, cellular, corporate)", - "x-example": "cable", - "nullable": true - }, - "connectionUsageType": { - "type": "string", - "description": "User type classification of the IP (e.g. residential, business, hosting)", - "x-example": "residential", - "nullable": true - }, - "connectionOrganization": { - "type": "string", - "description": "Registered organization of the IP", - "x-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" - } - }, "app": { "description": "App", "type": "object", @@ -20853,6 +21630,16 @@ "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" + }, + "x-example": [ + "featured" + ] + }, "images": { "type": "array", "description": "Application image URLs shown to users during OAuth2 consent.", @@ -20940,6 +21727,7 @@ "contacts", "tagline", "tags", + "labels", "images", "supportUrl", "dataDeletionUrl", @@ -20970,6 +21758,9 @@ "productivity", "automation" ], + "labels": [ + "featured" + ], "images": [ "https:\/\/example.com\/screenshot.png" ], @@ -21015,8 +21806,8 @@ }, "secret": { "type": "string", - "description": "Hashed application client secret.", - "x-example": "$argon2i$v=19$m=16,t=2,p=1$MTIzMTIzMTIzMTIzMQ$3\/ZUl3IWERBO2RIm5rHltg" + "description": "Always empty. The application client secret is returned only once, in the response of the createSecret method.", + "x-example": "" }, "hint": { "type": "string", @@ -21055,7 +21846,7 @@ "$createdAt": "2020-10-15T06:38:00.000+00:00", "$updatedAt": "2020-10-15T06:38:00.000+00:00", "appId": "5e5ea5c16897e", - "secret": "$argon2i$v=19$m=16,t=2,p=1$MTIzMTIzMTIzMTIzMQ$3\/ZUl3IWERBO2RIm5rHltg", + "secret": "", "hint": "f5c6c7", "createdById": "5e5ea5c16897e", "createdByName": "Walter White", @@ -21088,7 +21879,7 @@ }, "secret": { "type": "string", - "description": "Application client secret. Returned in full only when the secret is created; subsequent reads return a masked value.", + "description": "Application client secret. Returned only when the secret is created; subsequent reads always return an empty value.", "x-example": "5f3c8d2a1b9e4f7a6c8b2d1e9f4a7b3c5d8e1f2a9b4c7d6e3f5a8b1c4d7e2f9a" }, "hint": { @@ -21135,6 +21926,51 @@ "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.", + "x-example": "organization:organization.read" + }, + "description": { + "type": "string", + "description": "Human-readable description of what the scope grants.", + "x-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.", + "x-example": "organization" + }, + "category": { + "type": "string", + "description": "Scope category, used to group scopes on consent and installation screens.", + "x-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.", + "x-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 + } + }, "oauth2Authorize": { "description": "OAuth2 Authorize", "type": "object", @@ -21445,6 +22281,209 @@ "id_token": "eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiJ9..." } }, + "oauth2Consent": { + "description": "OAuth2 Consent", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "Consent ID.", + "x-example": "5e5ea5c16897e" + }, + "$createdAt": { + "type": "string", + "description": "Consent creation time in ISO 8601 format.", + "x-example": "2020-10-15T06:38:00.000+00:00" + }, + "$updatedAt": { + "type": "string", + "description": "Consent update date in ISO 8601 format.", + "x-example": "2020-10-15T06:38:00.000+00:00" + }, + "userId": { + "type": "string", + "description": "ID of the user the consent belongs to.", + "x-example": "5e5ea5c16897e" + }, + "appId": { + "type": "string", + "description": "ID of the registered app the consent was given to. Empty for URL-form (CIMD) clients.", + "x-example": "5e5ea5c16897e" + }, + "cimdUrl": { + "type": "string", + "description": "Client ID metadata document URL of the client the consent was given to. Empty for registered apps.", + "x-example": "https:\/\/example.com\/.well-known\/client-metadata.json" + }, + "scopes": { + "type": "array", + "description": "OAuth2 scopes the user consented to.", + "items": { + "type": "string" + }, + "x-example": [ + "openid", + "email", + "profile" + ] + }, + "resources": { + "type": "array", + "description": "RFC 8707 resource indicators the user consented to.", + "items": { + "type": "string" + }, + "x-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.", + "x-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.", + "x-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.", + "x-example": "5e5ea5c16897e" + }, + "$createdAt": { + "type": "string", + "description": "Token creation time in ISO 8601 format.", + "x-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.", + "x-example": "2020-10-15T06:38:00.000+00:00" + }, + "consentId": { + "type": "string", + "description": "ID of the consent the token family was issued under.", + "x-example": "5e5ea5c16897e" + }, + "userId": { + "type": "string", + "description": "ID of the user the token family belongs to.", + "x-example": "5e5ea5c16897e" + }, + "appId": { + "type": "string", + "description": "ID of the registered app the token family was issued to. Empty for URL-form (CIMD) clients.", + "x-example": "5e5ea5c16897e" + }, + "cimdUrl": { + "type": "string", + "description": "Client ID metadata document URL of the client the token family was issued to. Empty for registered apps.", + "x-example": "https:\/\/example.com\/.well-known\/client-metadata.json" + }, + "scopes": { + "type": "array", + "description": "OAuth2 scopes granted on the token family.", + "items": { + "type": "string" + }, + "x-example": [ + "openid", + "email", + "profile" + ] + }, + "resources": { + "type": "array", + "description": "RFC 8707 resource indicators granted on the token family.", + "items": { + "type": "string" + }, + "x-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.", + "x-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.", + "x-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", @@ -21549,6 +22588,62 @@ "organizations": "" } }, + "oauth2ConsentList": { + "description": "OAuth2 consents list", + "type": "object", + "properties": { + "total": { + "type": "integer", + "description": "Total number of consents that matched your query.", + "x-example": 5, + "format": "int32" + }, + "consents": { + "type": "array", + "description": "List of consents.", + "items": { + "$ref": "#\/components\/schemas\/oauth2Consent" + }, + "x-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.", + "x-example": 5, + "format": "int32" + }, + "tokens": { + "type": "array", + "description": "List of tokens.", + "items": { + "$ref": "#\/components\/schemas\/oauth2ConsentToken" + }, + "x-example": "" + } + }, + "required": [ + "total", + "tokens" + ], + "example": { + "total": 5, + "tokens": "" + } + }, "appsList": { "description": "Apps list", "type": "object", @@ -21604,6 +22699,34 @@ "total": 5, "secrets": "" } + }, + "appScopeList": { + "description": "App scopes list", + "type": "object", + "properties": { + "total": { + "type": "integer", + "description": "Total number of scopes that matched your query.", + "x-example": 5, + "format": "int32" + }, + "scopes": { + "type": "array", + "description": "List of scopes.", + "items": { + "$ref": "#\/components\/schemas\/appScope" + }, + "x-example": "" + } + }, + "required": [ + "total", + "scopes" + ], + "example": { + "total": 5, + "scopes": "" + } } }, "securitySchemes": { diff --git a/specs/1.9.x/open-api3-1.9.x-console.json b/specs/1.9.x/open-api3-1.9.x-console.json index c3e7f5cdd..1799d813f 100644 --- a/specs/1.9.x/open-api3-1.9.x-console.json +++ b/specs/1.9.x/open-api3-1.9.x-console.json @@ -594,6 +594,430 @@ ] } }, + "\/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": { + "method": "listConsents", + "group": "consents", + "cookies": false, + "type": "", + "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", + "x-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": { + "method": "getConsent", + "group": "consents", + "cookies": false, + "type": "", + "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", + "x-example": "" + }, + "in": "path" + } + ] + }, + "delete": { + "summary": "Delete consent", + "operationId": "accountDeleteConsent", + "tags": [ + "account" + ], + "description": "Delete an OAuth2 consent by its unique ID. All token families issued under the consent are revoked, and the app must ask for consent again to regain access.", + "responses": { + "204": { + "description": "No content" + } + }, + "deprecated": false, + "x-appwrite": { + "method": "deleteConsent", + "group": "consents", + "cookies": false, + "type": "", + "demo": "account\/delete-consent.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "account", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "produces": [ + "application\/json" + ], + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "consentId", + "description": "Consent unique ID.", + "required": true, + "schema": { + "type": "string", + "x-example": "" + }, + "in": "path" + } + ] + } + }, + "\/account\/consents\/{consentId}\/tokens": { + "get": { + "summary": "List consent tokens", + "operationId": "accountListConsentTokens", + "tags": [ + "account" + ], + "description": "Get a list of the token families issued under an OAuth2 consent. Each entry represents one authorized device or session; the token secrets themselves are never returned.", + "responses": { + "200": { + "description": "OAuth2 consent tokens list", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/oauth2ConsentTokenList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "method": "listConsentTokens", + "group": "consents", + "cookies": false, + "type": "", + "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", + "x-example": "" + }, + "in": "path" + }, + { + "name": "queries", + "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/queries). Maximum of 100 queries are allowed, each 4096 characters long.", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string" + }, + "default": [] + }, + "in": "query" + }, + { + "name": "total", + "description": "When set to false, the total count returned will be 0 and will not be calculated.", + "required": false, + "schema": { + "type": "boolean", + "x-example": false, + "default": true + }, + "in": "query" + } + ] + } + }, + "\/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": { + "method": "getConsentToken", + "group": "consents", + "cookies": false, + "type": "", + "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", + "x-example": "" + }, + "in": "path" + }, + { + "name": "tokenId", + "description": "Token unique ID.", + "required": true, + "schema": { + "type": "string", + "x-example": "" + }, + "in": "path" + } + ] + }, + "delete": { + "summary": "Delete consent token", + "operationId": "accountDeleteConsentToken", + "tags": [ + "account" + ], + "description": "Delete a token family issued under an OAuth2 consent by its unique ID. The access and refresh tokens of the family stop working immediately; other token families and the consent itself are unaffected.", + "responses": { + "204": { + "description": "No content" + } + }, + "deprecated": false, + "x-appwrite": { + "method": "deleteConsentToken", + "group": "consents", + "cookies": false, + "type": "", + "demo": "account\/delete-consent-token.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "account", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "produces": [ + "application\/json" + ], + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "consentId", + "description": "Consent unique ID.", + "required": true, + "schema": { + "type": "string", + "x-example": "" + }, + "in": "path" + }, + { + "name": "tokenId", + "description": "Token unique ID.", + "required": true, + "schema": { + "type": "string", + "x-example": "" + }, + "in": "path" + } + ] + } + }, "\/account\/coupons\/{couponId}": { "get": { "summary": "Get coupon details", @@ -3921,7 +4345,7 @@ "parameters": [ { "name": "provider", - "description": "OAuth2 Provider. Currently, supported providers are: amazon, apple, auth0, authentik, autodesk, bitbucket, bitly, box, dailymotion, discord, disqus, dropbox, etsy, facebook, figma, fusionauth, github, gitlab, google, keycloak, kick, linkedin, microsoft, notion, oidc, okta, paypal, paypalSandbox, podio, salesforce, slack, spotify, stripe, tradeshift, tradeshiftBox, twitch, wordpress, x, yahoo, yammer, yandex, zoho, zoom.", + "description": "OAuth2 Provider. Currently, supported providers are: amazon, apple, appwrite, auth0, authentik, autodesk, bitbucket, bitly, box, dailymotion, discord, disqus, dropbox, etsy, facebook, figma, fusionauth, github, gitlab, google, keycloak, kick, linkedin, microsoft, notion, oidc, okta, paypal, paypalSandbox, podio, salesforce, slack, spotify, stripe, tradeshift, tradeshiftBox, twitch, wordpress, x, yahoo, yammer, yandex, zoho, zoom.", "required": true, "schema": { "type": "string", @@ -3929,6 +4353,7 @@ "enum": [ "amazon", "apple", + "appwrite", "auth0", "authentik", "autodesk", @@ -3975,6 +4400,7 @@ "x-enum-keys": [ "amazon", "apple", + "appwrite", "auth0", "authentik", "autodesk", @@ -4916,7 +5342,7 @@ "parameters": [ { "name": "provider", - "description": "OAuth2 Provider. Currently, supported providers are: amazon, apple, auth0, authentik, autodesk, bitbucket, bitly, box, dailymotion, discord, disqus, dropbox, etsy, facebook, figma, fusionauth, github, gitlab, google, keycloak, kick, linkedin, microsoft, notion, oidc, okta, paypal, paypalSandbox, podio, salesforce, slack, spotify, stripe, tradeshift, tradeshiftBox, twitch, wordpress, x, yahoo, yammer, yandex, zoho, zoom.", + "description": "OAuth2 Provider. Currently, supported providers are: amazon, apple, appwrite, auth0, authentik, autodesk, bitbucket, bitly, box, dailymotion, discord, disqus, dropbox, etsy, facebook, figma, fusionauth, github, gitlab, google, keycloak, kick, linkedin, microsoft, notion, oidc, okta, paypal, paypalSandbox, podio, salesforce, slack, spotify, stripe, tradeshift, tradeshiftBox, twitch, wordpress, x, yahoo, yammer, yandex, zoho, zoom.", "required": true, "schema": { "type": "string", @@ -4924,6 +5350,7 @@ "enum": [ "amazon", "apple", + "appwrite", "auth0", "authentik", "autodesk", @@ -4970,6 +5397,7 @@ "x-enum-keys": [ "amazon", "apple", + "appwrite", "auth0", "authentik", "autodesk", @@ -5671,7 +6099,7 @@ "deprecated": false, "x-appwrite": { "method": "list", - "group": null, + "group": "apps", "cookies": false, "type": "", "demo": "apps\/list.md", @@ -5747,7 +6175,7 @@ "deprecated": false, "x-appwrite": { "method": "create", - "group": null, + "group": "apps", "cookies": false, "type": "", "demo": "apps\/create.md", @@ -5876,7 +6304,7 @@ }, "redirectUris": { "type": "array", - "description": "Redirect URIs (array of valid URLs).", + "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.", "x-example": null, "items": { "type": "string" @@ -5884,7 +6312,7 @@ }, "postLogoutRedirectUris": { "type": "array", - "description": "Post-logout redirect URIs for OpenID Connect RP-Initiated Logout (array of valid URLs). After ending the user session, the logout endpoint only redirects to URIs in this list.", + "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.", "default": [], "x-example": null, "items": { @@ -5927,21 +6355,21 @@ } } }, - "\/apps\/{appId}": { + "\/apps\/scopes\/oauth2": { "get": { - "summary": "Get Application", - "operationId": "appsGet", + "summary": "List OAuth2 Scopes", + "operationId": "appsListOAuth2Scopes", "tags": [ "apps" ], - "description": "Get an application by its unique ID.", + "description": "List scopes an application can request during the OAuth2 flow.", "responses": { "200": { - "description": "App", + "description": "App scopes list", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/app" + "$ref": "#\/components\/schemas\/appScopeList" } } } @@ -5949,11 +6377,11 @@ }, "deprecated": false, "x-appwrite": { - "method": "get", - "group": null, + "method": "listOAuth2Scopes", + "group": "scopes", "cookies": false, "type": "", - "demo": "apps\/get.md", + "demo": "apps\/list-o-auth-2-scopes.md", "rate-limit": 120, "rate-time": 60, "rate-key": "ip:{ip},userId:{userId}", @@ -5976,27 +6404,17 @@ "Key": [], "JWT": [] } - ], - "parameters": [ - { - "name": "appId", - "description": "Application unique ID.", - "required": true, - "schema": { - "type": "string", - "x-example": "" - }, - "in": "path" - } ] - }, - "put": { - "summary": "Update Application", - "operationId": "appsUpdate", + } + }, + "\/apps\/{appId}": { + "get": { + "summary": "Get Application", + "operationId": "appsGet", "tags": [ "apps" ], - "description": "Update an application by its unique ID.", + "description": "Get an application by its unique ID.", "responses": { "200": { "description": "App", @@ -6011,206 +6429,15 @@ }, "deprecated": false, "x-appwrite": { - "method": "update", - "group": null, - "cookies": false, - "type": "", - "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", - "x-example": "" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "name": { - "type": "string", - "description": "Application name.", - "x-example": "" - }, - "description": { - "type": "string", - "description": "Application description shown to users during OAuth2 consent.", - "default": "", - "x-example": "" - }, - "clientUri": { - "type": "string", - "description": "Application homepage URL shown to users during OAuth2 consent.", - "default": "", - "x-example": "https:\/\/example.com", - "format": "url" - }, - "logoUri": { - "type": "string", - "description": "Application logo URL shown to users during OAuth2 consent.", - "default": "", - "x-example": "https:\/\/example.com", - "format": "url" - }, - "privacyPolicyUrl": { - "type": "string", - "description": "Application privacy policy URL shown to users during OAuth2 consent.", - "default": "", - "x-example": "https:\/\/example.com", - "format": "url" - }, - "termsUrl": { - "type": "string", - "description": "Application terms of service URL shown to users during OAuth2 consent.", - "default": "", - "x-example": "https:\/\/example.com", - "format": "url" - }, - "contacts": { - "type": "array", - "description": "Application support or security contact emails. Maximum of 100 contacts are allowed.", - "default": [], - "x-example": null, - "items": { - "type": "string" - } - }, - "tagline": { - "type": "string", - "description": "Application tagline shown to users during OAuth2 consent.", - "default": "", - "x-example": "" - }, - "tags": { - "type": "array", - "description": "Application tags shown to users during OAuth2 consent. Maximum of 100 tags are allowed, each up to 64 characters long.", - "default": [], - "x-example": null, - "items": { - "type": "string" - } - }, - "images": { - "type": "array", - "description": "Application image URLs shown to users during OAuth2 consent. Maximum of 100 images are allowed.", - "default": [], - "x-example": null, - "items": { - "type": "string" - } - }, - "supportUrl": { - "type": "string", - "description": "Application support URL shown to users during OAuth2 consent.", - "default": "", - "x-example": "https:\/\/example.com", - "format": "url" - }, - "dataDeletionUrl": { - "type": "string", - "description": "Application data deletion URL shown to users during OAuth2 consent.", - "default": "", - "x-example": "https:\/\/example.com", - "format": "url" - }, - "enabled": { - "type": "boolean", - "description": "Is application enabled?", - "default": true, - "x-example": false - }, - "redirectUris": { - "type": "array", - "description": "Redirect URIs (array of valid URLs).", - "default": [], - "x-example": null, - "items": { - "type": "string" - } - }, - "postLogoutRedirectUris": { - "type": "array", - "description": "Post-logout redirect URIs for OpenID Connect RP-Initiated Logout (array of valid URLs). After ending the user session, the logout endpoint only redirects to URIs in this list.", - "default": [], - "x-example": null, - "items": { - "type": "string" - } - }, - "type": { - "type": "string", - "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`.", - "default": "confidential", - "x-example": "public" - }, - "deviceFlow": { - "type": "boolean", - "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.", - "default": false, - "x-example": false - } - }, - "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": { - "method": "delete", - "group": null, + "method": "get", + "group": "apps", "cookies": false, "type": "", - "demo": "apps\/delete.md", - "rate-limit": 60, + "demo": "apps\/get.md", + "rate-limit": 120, "rate-time": 60, "rate-key": "ip:{ip},userId:{userId}", - "scope": "apps.write", + "scope": "apps.read", "platforms": [ "console", "client", @@ -6218,9 +6445,6 @@ ], "packaging": false, "public": true, - "produces": [ - "application\/json" - ], "auth": { "Project": [] } @@ -6236,7 +6460,7 @@ "parameters": [ { "name": "appId", - "description": "Application unique ID.", + "description": "Application unique ID or HTTPS client ID metadata document URL.", "required": true, "schema": { "type": "string", @@ -6245,23 +6469,21 @@ "in": "path" } ] - } - }, - "\/apps\/{appId}\/secrets": { - "get": { - "summary": "List Secrets", - "operationId": "appsListSecrets", + }, + "put": { + "summary": "Update Application", + "operationId": "appsUpdate", "tags": [ "apps" ], - "description": "List client secrets for an application.", + "description": "Update an application by its unique ID.", "responses": { "200": { - "description": "App secrets list", + "description": "App", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/appSecretList" + "$ref": "#\/components\/schemas\/app" } } } @@ -6269,15 +6491,356 @@ }, "deprecated": false, "x-appwrite": { - "method": "listSecrets", - "group": null, + "method": "update", + "group": "apps", "cookies": false, "type": "", - "demo": "apps\/list-secrets.md", - "rate-limit": 120, + "demo": "apps\/update.md", + "rate-limit": 60, "rate-time": 60, "rate-key": "ip:{ip},userId:{userId}", - "scope": "apps.read", + "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", + "x-example": "" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "Application name.", + "x-example": "" + }, + "description": { + "type": "string", + "description": "Application description shown to users during OAuth2 consent.", + "default": "", + "x-example": "" + }, + "clientUri": { + "type": "string", + "description": "Application homepage URL shown to users during OAuth2 consent.", + "default": "", + "x-example": "https:\/\/example.com", + "format": "url" + }, + "logoUri": { + "type": "string", + "description": "Application logo URL shown to users during OAuth2 consent.", + "default": "", + "x-example": "https:\/\/example.com", + "format": "url" + }, + "privacyPolicyUrl": { + "type": "string", + "description": "Application privacy policy URL shown to users during OAuth2 consent.", + "default": "", + "x-example": "https:\/\/example.com", + "format": "url" + }, + "termsUrl": { + "type": "string", + "description": "Application terms of service URL shown to users during OAuth2 consent.", + "default": "", + "x-example": "https:\/\/example.com", + "format": "url" + }, + "contacts": { + "type": "array", + "description": "Application support or security contact emails. Maximum of 100 contacts are allowed.", + "default": [], + "x-example": null, + "items": { + "type": "string" + } + }, + "tagline": { + "type": "string", + "description": "Application tagline shown to users during OAuth2 consent.", + "default": "", + "x-example": "" + }, + "tags": { + "type": "array", + "description": "Application tags shown to users during OAuth2 consent. Maximum of 100 tags are allowed, each up to 64 characters long.", + "default": [], + "x-example": null, + "items": { + "type": "string" + } + }, + "images": { + "type": "array", + "description": "Application image URLs shown to users during OAuth2 consent. Maximum of 100 images are allowed.", + "default": [], + "x-example": null, + "items": { + "type": "string" + } + }, + "supportUrl": { + "type": "string", + "description": "Application support URL shown to users during OAuth2 consent.", + "default": "", + "x-example": "https:\/\/example.com", + "format": "url" + }, + "dataDeletionUrl": { + "type": "string", + "description": "Application data deletion URL shown to users during OAuth2 consent.", + "default": "", + "x-example": "https:\/\/example.com", + "format": "url" + }, + "enabled": { + "type": "boolean", + "description": "Is application enabled?", + "default": true, + "x-example": false + }, + "redirectUris": { + "type": "array", + "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.", + "default": [], + "x-example": null, + "items": { + "type": "string" + } + }, + "postLogoutRedirectUris": { + "type": "array", + "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.", + "default": [], + "x-example": null, + "items": { + "type": "string" + } + }, + "type": { + "type": "string", + "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`.", + "default": "confidential", + "x-example": "public" + }, + "deviceFlow": { + "type": "boolean", + "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.", + "default": false, + "x-example": false + } + }, + "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": { + "method": "delete", + "group": "apps", + "cookies": false, + "type": "", + "demo": "apps\/delete.md", + "rate-limit": 60, + "rate-time": 60, + "rate-key": "ip:{ip},userId:{userId}", + "scope": "apps.write", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "produces": [ + "application\/json" + ], + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "Key": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "appId", + "description": "Application unique ID.", + "required": true, + "schema": { + "type": "string", + "x-example": "" + }, + "in": "path" + } + ] + } + }, + "\/apps\/{appId}\/labels": { + "put": { + "summary": "Update Application Labels", + "operationId": "appsUpdateLabels", + "tags": [ + "apps" + ], + "description": "Update the labels of an application. Labels are read-only for clients; only a server SDK using a project API key can set them. Replaces the previous labels.", + "responses": { + "200": { + "description": "App", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/app" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "method": "updateLabels", + "group": "apps", + "cookies": false, + "type": "", + "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", + "x-example": "" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "labels": { + "type": "array", + "description": "Array of application labels. Replaces the previous labels. Maximum of 1000 labels are allowed, each up to 36 alphanumeric characters long.", + "x-example": null, + "items": { + "type": "string" + } + } + }, + "required": [ + "labels" + ] + } + } + } + } + } + }, + "\/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": { + "method": "listSecrets", + "group": "secrets", + "cookies": false, + "type": "", + "demo": "apps\/list-secrets.md", + "rate-limit": 120, + "rate-time": 60, + "rate-key": "ip:{ip},userId:{userId}", + "scope": "apps.read", "platforms": [ "console", "client", @@ -6356,7 +6919,7 @@ "deprecated": false, "x-appwrite": { "method": "createSecret", - "group": null, + "group": "secrets", "cookies": false, "type": "", "demo": "apps\/create-secret.md", @@ -6420,7 +6983,7 @@ "deprecated": false, "x-appwrite": { "method": "getSecret", - "group": null, + "group": "secrets", "cookies": false, "type": "", "demo": "apps\/get-secret.md", @@ -6485,7 +7048,7 @@ "deprecated": false, "x-appwrite": { "method": "deleteSecret", - "group": null, + "group": "secrets", "cookies": false, "type": "", "demo": "apps\/delete-secret.md", @@ -6562,7 +7125,7 @@ "deprecated": false, "x-appwrite": { "method": "updateTeam", - "group": null, + "group": "apps", "cookies": false, "type": "", "demo": "apps\/update-team.md", @@ -6638,7 +7201,7 @@ "deprecated": false, "x-appwrite": { "method": "deleteTokens", - "group": null, + "group": "apps", "cookies": false, "type": "", "demo": "apps\/delete-tokens.md", @@ -9747,7 +10310,7 @@ "tags": [ "backups" ], - "description": "Create and trigger a new restoration for a backup on a project.\n\nWhen restoring a DocumentsDB or VectorsDB database to a new resource, pass `newSpecification` to provision the restored database on a different specification than the archived one (for example, restoring onto a larger or smaller dedicated database). Use `serverless` to restore onto the shared pool, or a dedicated specification slug to restore onto a dedicated database of that size. The specification must be permitted by the organization's plan. `newSpecification` is not supported for legacy\/TablesDB databases or for bucket restores.\n", + "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. Pass `newResourceId` to restore into that database ID, including the archived database ID to overwrite it. When `newResourceId` is omitted, a new database ID is generated and returned in `options`.\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 to a new resource from a dedicated source, the restore provisions a fresh dedicated backing database at the source database's own specification.\n", "responses": { "201": { "description": "Restoration", @@ -9828,7 +10391,7 @@ }, "newResourceId": { "type": "string", - "description": "Unique Id. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.", + "description": "Destination resource ID. Omit to generate a new ID, or pass the archived resource ID to overwrite it. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.", "default": "", "x-example": "", "x-appwrite": { @@ -9840,12 +10403,6 @@ "description": "Database name. Max length: 128 chars.", "default": "", "x-example": "" - }, - "newSpecification": { - "type": "string", - "description": "Specification to provision the restored database on, when restoring a DocumentsDB or VectorsDB database to a new resource. Defaults to the archived database's specification. Use `serverless` for the shared pool or a dedicated specification slug.", - "default": "", - "x-example": "serverless" } }, "required": [ @@ -11220,24 +11777,29 @@ "threats", "feedbacks", "disputes", + "wafrules", "sh_installations", "migrationdatabases", "migrationprojects", "apps", "appsecrets", + "appinstallations", + "appkeys", "oauth2grants", + "oauth2consents", + "oauth2tokens", "attributes", "indexes", "functions", "sites", "deployments", - "executions", "variables", "migrations", "resourcetokens", "transactions", "transactionlogs", "stats", + "executions", "dedicateddatabases", "dedicateddatabaseconfigs", "dedicateddatabaseruntimes", @@ -11311,24 +11873,29 @@ "threats", "feedbacks", "disputes", + "waf_rules", "sh_installations", "migration_databases", "migration_projects", "apps", "app_secrets", + "app_installations", + "app_keys", "oauth2_grants", + "oauth2_consents", + "oauth2_tokens", "attributes", "indexes", "functions", "sites", "deployments", - "executions", "variables", "migrations", "resource_tokens", "transactions", "transaction_logs", "stats", + "executions", "dedicated_databases", "dedicated_database_configs", "dedicated_database_runtimes", @@ -12465,109 +13032,6 @@ } } }, - "\/databases\/usage": { - "get": { - "summary": "Get databases usage stats", - "operationId": "databasesListUsage", - "tags": [ - "databases" - ], - "description": "List usage metrics and statistics for all databases in the project. You can view the total number of databases, collections, documents, and storage usage. The response includes both current totals and historical data over time. Use the optional range parameter to specify the time window for historical data: 24h (last 24 hours), 30d (last 30 days), or 90d (last 90 days). If not specified, range defaults to 30 days.", - "responses": { - "200": { - "description": "UsageDatabases", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/usageDatabases" - } - } - } - } - }, - "deprecated": true, - "x-appwrite": { - "method": "listUsage", - "group": null, - "cookies": false, - "type": "", - "demo": "databases\/list-usage.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "collections.read", - "platforms": [ - "console" - ], - "packaging": false, - "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/databases\/list-usage.md", - "deprecated": { - "since": "1.8.0", - "replaceWith": "tablesDB.listUsage" - }, - "methods": [ - { - "name": "listUsage", - "namespace": "databases", - "desc": "", - "auth": { - "Project": [] - }, - "parameters": [ - "range" - ], - "required": [], - "responses": [ - { - "code": 200, - "model": "#\/components\/schemas\/usageDatabases" - } - ], - "description": "List usage metrics and statistics for all databases in the project. You can view the total number of databases, collections, documents, and storage usage. The response includes both current totals and historical data over time. Use the optional range parameter to specify the time window for historical data: 24h (last 24 hours), 30d (last 30 days), or 90d (last 90 days). If not specified, range defaults to 30 days.", - "demo": "databases\/list-usage.md", - "public": true, - "deprecated": { - "since": "1.8.0", - "replaceWith": "tablesDB.listUsage" - } - } - ], - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [] - } - ], - "parameters": [ - { - "name": "range", - "description": "Date range.", - "required": false, - "schema": { - "type": "string", - "x-example": "24h", - "enum": [ - "24h", - "30d", - "90d" - ], - "x-enum-name": "UsageRange", - "x-enum-keys": [ - "Twenty Four Hours", - "Thirty Days", - "Ninety Days" - ], - "default": "30d" - }, - "in": "query" - } - ] - } - }, "\/databases\/{databaseId}": { "get": { "summary": "Get database", @@ -18348,7 +18812,6 @@ "documentId": { "type": "string", "description": "Document ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.", - "default": "", "x-example": "", "x-appwrite": { "idGenerator": "ID.unique" @@ -18357,7 +18820,7 @@ "data": { "type": "object", "description": "Document data as JSON object.", - "default": [], + "default": {}, "x-example": "{\"username\":\"walter.obrien\",\"email\":\"walter.obrien@example.com\",\"fullName\":\"Walter O'Brien\",\"age\":30,\"isAdmin\":false}" }, "permissions": { @@ -18384,7 +18847,11 @@ "x-example": "", "x-nullable": true } - } + }, + "required": [ + "documentId", + "data" + ] } } } @@ -19876,218 +20343,6 @@ ] } }, - "\/databases\/{databaseId}\/collections\/{collectionId}\/usage": { - "get": { - "summary": "Get collection usage stats", - "operationId": "databasesGetCollectionUsage", - "tags": [ - "databases" - ], - "description": "Get usage metrics and statistics for a collection. Returning the total number of documents. The response includes both current totals and historical data over time. Use the optional range parameter to specify the time window for historical data: 24h (last 24 hours), 30d (last 30 days), or 90d (last 90 days). If not specified, range defaults to 30 days.", - "responses": { - "200": { - "description": "UsageCollection", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/usageCollection" - } - } - } - } - }, - "deprecated": true, - "x-appwrite": { - "method": "getCollectionUsage", - "group": null, - "cookies": false, - "type": "", - "demo": "databases\/get-collection-usage.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "collections.read", - "platforms": [ - "console" - ], - "packaging": false, - "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/databases\/get-collection-usage.md", - "deprecated": { - "since": "1.8.0", - "replaceWith": "tablesDB.getTableUsage" - }, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [] - } - ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "x-example": "" - }, - "in": "path" - }, - { - "name": "range", - "description": "Date range.", - "required": false, - "schema": { - "type": "string", - "x-example": "24h", - "enum": [ - "24h", - "30d", - "90d" - ], - "x-enum-name": "UsageRange", - "x-enum-keys": [ - "Twenty Four Hours", - "Thirty Days", - "Ninety Days" - ], - "default": "30d" - }, - "in": "query" - }, - { - "name": "collectionId", - "description": "Collection ID.", - "required": true, - "schema": { - "type": "string", - "x-example": "" - }, - "in": "path" - } - ] - } - }, - "\/databases\/{databaseId}\/usage": { - "get": { - "summary": "Get database usage stats", - "operationId": "databasesGetUsage", - "tags": [ - "databases" - ], - "description": "Get usage metrics and statistics for a database. You can view the total number of collections, documents, and storage usage. The response includes both current totals and historical data over time. Use the optional range parameter to specify the time window for historical data: 24h (last 24 hours), 30d (last 30 days), or 90d (last 90 days). If not specified, range defaults to 30 days.", - "responses": { - "200": { - "description": "UsageDatabase", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/usageDatabase" - } - } - } - } - }, - "deprecated": true, - "x-appwrite": { - "method": "getUsage", - "group": null, - "cookies": false, - "type": "", - "demo": "databases\/get-usage.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "collections.read", - "platforms": [ - "console" - ], - "packaging": false, - "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/databases\/get-database-usage.md", - "deprecated": { - "since": "1.8.0", - "replaceWith": "tablesDB.getUsage" - }, - "methods": [ - { - "name": "getUsage", - "namespace": "databases", - "desc": "", - "auth": { - "Project": [] - }, - "parameters": [ - "databaseId", - "range" - ], - "required": [ - "databaseId" - ], - "responses": [ - { - "code": 200, - "model": "#\/components\/schemas\/usageDatabase" - } - ], - "description": "Get usage metrics and statistics for a database. You can view the total number of collections, documents, and storage usage. The response includes both current totals and historical data over time. Use the optional range parameter to specify the time window for historical data: 24h (last 24 hours), 30d (last 30 days), or 90d (last 90 days). If not specified, range defaults to 30 days.", - "demo": "databases\/get-usage.md", - "public": true, - "deprecated": { - "since": "1.8.0", - "replaceWith": "tablesDB.getUsage" - } - } - ], - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [] - } - ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "x-example": "" - }, - "in": "path" - }, - { - "name": "range", - "description": "Date range.", - "required": false, - "schema": { - "type": "string", - "x-example": "24h", - "enum": [ - "24h", - "30d", - "90d" - ], - "x-enum-name": "UsageRange", - "x-enum-keys": [ - "Twenty Four Hours", - "Thirty Days", - "Ninety Days" - ], - "default": "30d" - }, - "in": "query" - } - ] - } - }, "\/documentsdb": { "get": { "summary": "List databases", @@ -20240,6 +20495,13 @@ "description": "Database specification. Defaults to `serverless`, which creates the database on the shared pool. Any other value provisions a dedicated database on that specification.", "default": "serverless", "x-example": "serverless" + }, + "replicas": { + "type": "integer", + "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.", + "default": 0, + "x-example": 0, + "format": "int32" } }, "required": [ @@ -20252,6 +20514,55 @@ } } }, + "\/documentsdb\/specifications": { + "get": { + "summary": "List dedicated database specifications.", + "operationId": "documentsDBListSpecifications", + "tags": [ + "documentsDB" + ], + "description": "List the dedicated database specifications available on the current plan. Each specification reports its resource limits, pricing, and whether it is enabled for the organization.", + "responses": { + "200": { + "description": "SpecificationList", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/dedicatedDatabaseSpecificationList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "method": "listSpecifications", + "group": "databases", + "cookies": false, + "type": "", + "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", @@ -20732,6 +21043,13 @@ "description": "Is database enabled? When set to 'disabled', users cannot access the database but Server SDKs with an API key can still read and write to the database. No data is lost when this is toggled.", "default": true, "x-example": false + }, + "replicas": { + "type": "integer", + "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.", + "x-example": 0, + "format": "int32", + "x-nullable": true } }, "required": [ @@ -21530,7 +21848,6 @@ "documentId": { "type": "string", "description": "Document ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.", - "default": "", "x-example": "", "x-appwrite": { "idGenerator": "ID.unique" @@ -21539,7 +21856,7 @@ "data": { "type": "object", "description": "Document data as JSON object.", - "default": [], + "default": {}, "x-example": "{\"username\":\"walter.obrien\",\"email\":\"walter.obrien@example.com\",\"fullName\":\"Walter O'Brien\",\"age\":30,\"isAdmin\":false}" }, "permissions": { @@ -21564,7 +21881,11 @@ "description": "Transaction ID for staging the operation.", "x-example": "" } - } + }, + "required": [ + "documentId", + "data" + ] } } } @@ -22981,6 +23302,206 @@ ] } }, + "\/documentsdb\/{databaseId}\/failovers": { + "post": { + "summary": "Trigger manual 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.", + "responses": { + "202": { + "description": "DedicatedDatabase", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/dedicatedDatabase" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "method": "createFailover", + "group": "databases", + "cookies": false, + "type": "", + "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", + "x-example": "" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "targetReplicaId": { + "type": "string", + "description": "Target replica ID to promote. If not specified, the healthiest replica is selected.", + "x-example": "", + "x-nullable": true + } + } + } + } + } + } + } + }, + "\/documentsdb\/{databaseId}\/replicas": { + "get": { + "summary": "Get replica status.", + "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": { + "method": "getReplicas", + "group": "databases", + "cookies": false, + "type": "", + "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", + "x-example": "" + }, + "in": "path" + } + ] + } + }, + "\/documentsdb\/{databaseId}\/status": { + "get": { + "summary": "Get database 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": { + "method": "getStatus", + "group": "databases", + "cookies": false, + "type": "", + "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", + "x-example": "" + }, + "in": "path" + } + ] + } + }, "\/domains": { "get": { "summary": "List domains", @@ -27810,8 +28331,6 @@ "templates.write", "stages.read", "stages.write", - "oauth2.read", - "oauth2.write", "users.read", "users.write", "sessions.read", @@ -27889,9 +28408,14 @@ "dedicatedDatabases.execute", "domains.read", "domains.write", + "wafRules.read", + "wafRules.write", "events.read", "apps.read", "apps.write", + "oauth2.read", + "oauth2.write", + "oauth2.introspect", "usage.read" ], "x-enum-name": "ProjectKeyScopes", @@ -27914,8 +28438,6 @@ "templates.write", "stages.read", "stages.write", - "oauth2.read", - "oauth2.write", "users.read", "users.write", "sessions.read", @@ -27993,9 +28515,14 @@ "dedicatedDatabases.execute", "domains.read", "domains.write", + "wafRules.read", + "wafRules.write", "events.read", "apps.read", "apps.write", + "oauth2.read", + "oauth2.write", + "oauth2.introspect", "usage.read" ] } @@ -28565,77 +29092,6 @@ ] } }, - "\/functions\/usage": { - "get": { - "summary": "Get functions usage", - "operationId": "functionsListUsage", - "tags": [ - "functions" - ], - "description": "Get usage metrics and statistics for all functions in the project. View statistics including total deployments, builds, logs, storage usage, and compute time. The response includes both current totals and historical data for each metric. Use the optional range parameter to specify the time window for historical data: 24h (last 24 hours), 30d (last 30 days), or 90d (last 90 days). If not specified, defaults to 30 days.", - "responses": { - "200": { - "description": "UsageFunctions", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/usageFunctions" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "method": "listUsage", - "group": null, - "cookies": false, - "type": "", - "demo": "functions\/list-usage.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "functions.read", - "platforms": [ - "console" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [] - } - ], - "parameters": [ - { - "name": "range", - "description": "Date range.", - "required": false, - "schema": { - "type": "string", - "x-example": "24h", - "enum": [ - "24h", - "30d", - "90d" - ], - "x-enum-name": "UsageRange", - "x-enum-keys": [ - "Twenty Four Hours", - "Thirty Days", - "Ninety Days" - ], - "default": "30d" - }, - "in": "query" - } - ] - } - }, "\/functions\/{functionId}": { "get": { "summary": "Get function", @@ -29038,8 +29494,6 @@ "templates.write", "stages.read", "stages.write", - "oauth2.read", - "oauth2.write", "users.read", "users.write", "sessions.read", @@ -29117,9 +29571,14 @@ "dedicatedDatabases.execute", "domains.read", "domains.write", + "wafRules.read", + "wafRules.write", "events.read", "apps.read", "apps.write", + "oauth2.read", + "oauth2.write", + "oauth2.introspect", "usage.read" ], "x-enum-name": "ProjectKeyScopes", @@ -29142,8 +29601,6 @@ "templates.write", "stages.read", "stages.write", - "oauth2.read", - "oauth2.write", "users.read", "users.write", "sessions.read", @@ -29221,9 +29678,14 @@ "dedicatedDatabases.execute", "domains.read", "domains.write", + "wafRules.read", + "wafRules.write", "events.read", "apps.read", "apps.write", + "oauth2.read", + "oauth2.write", + "oauth2.introspect", "usage.read" ] } @@ -29285,8 +29747,8 @@ "runtimeSpecification": { "type": "string", "description": "Runtime specification for the function executions.", - "default": {}, - "x-example": null + "x-example": null, + "x-nullable": true }, "deploymentRetention": { "type": "integer", @@ -30102,7 +30564,10 @@ "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "functions.read", + "scope": [ + "public", + "functions.read" + ], "platforms": [ "console", "server" @@ -30162,6 +30627,17 @@ "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", + "x-example": "", + "default": "" + }, + "in": "query" } ] } @@ -30601,21 +31077,21 @@ ] } }, - "\/functions\/{functionId}\/usage": { + "\/functions\/{functionId}\/variables": { "get": { - "summary": "Get function usage", - "operationId": "functionsGetUsage", + "summary": "List variables", + "operationId": "functionsListVariables", "tags": [ "functions" ], - "description": "Get usage metrics and statistics for a for a specific function. View statistics including total deployments, builds, executions, storage usage, and compute time. The response includes both current totals and historical data for each metric. Use the optional range parameter to specify the time window for historical data: 24h (last 24 hours), 30d (last 30 days), or 90d (last 90 days). If not specified, defaults to 30 days.", + "description": "Get a list of all variables of a specific function.", "responses": { "200": { - "description": "UsageFunction", + "description": "Variables List", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/usageFunction" + "$ref": "#\/components\/schemas\/variableList" } } } @@ -30623,17 +31099,18 @@ }, "deprecated": false, "x-appwrite": { - "method": "getUsage", - "group": null, + "method": "listVariables", + "group": "variables", "cookies": false, "type": "", - "demo": "functions\/get-usage.md", + "demo": "functions\/list-variables.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", "scope": "functions.read", "platforms": [ - "console" + "console", + "server" ], "packaging": false, "public": true, @@ -30643,13 +31120,14 @@ }, "security": [ { - "Project": [] + "Project": [], + "Key": [] } ], "parameters": [ { "name": "functionId", - "description": "Function ID.", + "description": "Function unique ID.", "required": true, "schema": { "type": "string", @@ -30658,45 +31136,45 @@ "in": "path" }, { - "name": "range", - "description": "Date range.", + "name": "queries", + "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/queries). Maximum of 100 queries are allowed, each 4096 characters long. You may filter on the following attributes: key, resourceType, resourceId, secret", "required": false, "schema": { - "type": "string", - "x-example": "24h", - "enum": [ - "24h", - "30d", - "90d" - ], - "x-enum-name": "UsageRange", - "x-enum-keys": [ - "Twenty Four Hours", - "Thirty Days", - "Ninety Days" - ], - "default": "30d" + "type": "array", + "items": { + "type": "string" + }, + "default": [] + }, + "in": "query" + }, + { + "name": "total", + "description": "When set to false, the total count returned will be 0 and will not be calculated.", + "required": false, + "schema": { + "type": "boolean", + "x-example": false, + "default": true }, "in": "query" } ] - } - }, - "\/functions\/{functionId}\/variables": { - "get": { - "summary": "List variables", - "operationId": "functionsListVariables", + }, + "post": { + "summary": "Create variable", + "operationId": "functionsCreateVariable", "tags": [ "functions" ], - "description": "Get a list of all variables of a specific function.", + "description": "Create a new function environment variable. These variables can be accessed in the function at runtime as environment variables.", "responses": { - "200": { - "description": "Variables List", + "201": { + "description": "Variable", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/variableList" + "$ref": "#\/components\/schemas\/variable" } } } @@ -30704,15 +31182,15 @@ }, "deprecated": false, "x-appwrite": { - "method": "listVariables", + "method": "createVariable", "group": "variables", "cookies": false, "type": "", - "demo": "functions\/list-variables.md", + "demo": "functions\/create-variable.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "functions.read", + "scope": "functions.write", "platforms": [ "console", "server" @@ -30739,42 +31217,60 @@ "x-example": "" }, "in": "path" - }, - { - "name": "queries", - "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/queries). Maximum of 100 queries are allowed, each 4096 characters long. You may filter on the following attributes: key, resourceType, resourceId, secret", - "required": false, - "schema": { - "type": "array", - "items": { - "type": "string" - }, - "default": [] - }, - "in": "query" - }, - { - "name": "total", - "description": "When set to false, the total count returned will be 0 and will not be calculated.", - "required": false, - "schema": { - "type": "boolean", - "x-example": false, - "default": true - }, - "in": "query" } - ] - }, - "post": { - "summary": "Create variable", - "operationId": "functionsCreateVariable", + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "variableId": { + "type": "string", + "description": "Variable ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.", + "x-example": "", + "x-appwrite": { + "idGenerator": "ID.unique" + } + }, + "key": { + "type": "string", + "description": "Variable key. Max length: 255 chars.", + "x-example": "" + }, + "value": { + "type": "string", + "description": "Variable value. Max length: 8192 chars.", + "x-example": "" + }, + "secret": { + "type": "boolean", + "description": "Secret variables can be updated or deleted, but only functions can read them during build and runtime.", + "default": true, + "x-example": false + } + }, + "required": [ + "variableId", + "key", + "value" + ] + } + } + } + } + } + }, + "\/functions\/{functionId}\/variables\/{variableId}": { + "get": { + "summary": "Get variable", + "operationId": "functionsGetVariable", "tags": [ "functions" ], - "description": "Create a new function environment variable. These variables can be accessed in the function at runtime as environment variables.", + "description": "Get a variable by its unique ID.", "responses": { - "201": { + "200": { "description": "Variable", "content": { "application\/json": { @@ -30787,116 +31283,15 @@ }, "deprecated": false, "x-appwrite": { - "method": "createVariable", + "method": "getVariable", "group": "variables", "cookies": false, "type": "", - "demo": "functions\/create-variable.md", + "demo": "functions\/get-variable.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "functions.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "functionId", - "description": "Function unique ID.", - "required": true, - "schema": { - "type": "string", - "x-example": "" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "variableId": { - "type": "string", - "description": "Variable ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.", - "x-example": "", - "x-appwrite": { - "idGenerator": "ID.unique" - } - }, - "key": { - "type": "string", - "description": "Variable key. Max length: 255 chars.", - "x-example": "" - }, - "value": { - "type": "string", - "description": "Variable value. Max length: 8192 chars.", - "x-example": "" - }, - "secret": { - "type": "boolean", - "description": "Secret variables can be updated or deleted, but only functions can read them during build and runtime.", - "default": true, - "x-example": false - } - }, - "required": [ - "variableId", - "key", - "value" - ] - } - } - } - } - } - }, - "\/functions\/{functionId}\/variables\/{variableId}": { - "get": { - "summary": "Get variable", - "operationId": "functionsGetVariable", - "tags": [ - "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": { - "method": "getVariable", - "group": "variables", - "cookies": false, - "type": "", - "demo": "functions\/get-variable.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "functions.read", + "scope": "functions.read", "platforms": [ "console", "server" @@ -31243,21 +31638,21 @@ } } }, - "\/health": { + "\/locale": { "get": { - "summary": "Get HTTP", - "operationId": "healthGet", + "summary": "Get user locale", + "operationId": "localeGet", "tags": [ - "health" + "locale" ], - "description": "Check the Appwrite HTTP server is up and responsive.", + "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": "Health Status", + "description": "Locale", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/healthStatus" + "$ref": "#\/components\/schemas\/locale" } } } @@ -31266,21 +31661,22 @@ "deprecated": false, "x-appwrite": { "method": "get", - "group": "health", + "group": null, "cookies": false, "type": "", - "demo": "health\/get.md", + "demo": "locale\/get.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "health.read", + "scope": "locale.read", "platforms": [ "console", + "client", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/health\/get.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/locale\/get-locale.md", "auth": { "Project": [] } @@ -31288,26 +31684,28 @@ "security": [ { "Project": [], - "Key": [] + "Session": [], + "Key": [], + "JWT": [] } ] } }, - "\/health\/anti-virus": { + "\/locale\/codes": { "get": { - "summary": "Get antivirus", - "operationId": "healthGetAntivirus", + "summary": "List locale codes", + "operationId": "localeListCodes", "tags": [ - "health" + "locale" ], - "description": "Check the Appwrite Antivirus server is up and connection is successful.", + "description": "List of all locale codes in [ISO 639-1](https:\/\/en.wikipedia.org\/wiki\/List_of_ISO_639-1_codes).", "responses": { "200": { - "description": "Health Antivirus", + "description": "Locale codes list", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/healthAntivirus" + "$ref": "#\/components\/schemas\/localeCodeList" } } } @@ -31315,22 +31713,23 @@ }, "deprecated": false, "x-appwrite": { - "method": "getAntivirus", - "group": "health", + "method": "listCodes", + "group": null, "cookies": false, "type": "", - "demo": "health\/get-antivirus.md", + "demo": "locale\/list-codes.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "health.read", + "scope": "locale.read", "platforms": [ "console", + "client", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/health\/get-storage-anti-virus.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/locale\/list-locale-codes.md", "auth": { "Project": [] } @@ -31338,26 +31737,28 @@ "security": [ { "Project": [], - "Key": [] + "Session": [], + "Key": [], + "JWT": [] } ] } }, - "\/health\/audits-db": { + "\/locale\/continents": { "get": { - "summary": "Get audits DB", - "operationId": "healthGetAuditsDB", + "summary": "List continents", + "operationId": "localeListContinents", "tags": [ - "health" + "locale" ], - "description": "Check the database that backs the audit and activity store. When the connection is reachable the endpoint returns a passing status with its response time.\n", + "description": "List of all continents. You can use the locale header to get the data in a supported language.", "responses": { "200": { - "description": "Status List", + "description": "Continents List", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/healthStatusList" + "$ref": "#\/components\/schemas\/continentList" } } } @@ -31365,22 +31766,23 @@ }, "deprecated": false, "x-appwrite": { - "method": "getAuditsDB", + "method": "listContinents", "group": null, "cookies": false, "type": "", - "demo": "health\/get-audits-db.md", + "demo": "locale\/list-continents.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "health.read", + "scope": "locale.read", "platforms": [ "console", + "client", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/health\/get-audits-db.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/locale\/list-continents.md", "auth": { "Project": [] } @@ -31388,26 +31790,28 @@ "security": [ { "Project": [], - "Key": [] + "Session": [], + "Key": [], + "JWT": [] } ] } }, - "\/health\/cache": { + "\/locale\/countries": { "get": { - "summary": "Get cache", - "operationId": "healthGetCache", + "summary": "List countries", + "operationId": "localeListCountries", "tags": [ - "health" + "locale" ], - "description": "Check the Appwrite in-memory cache servers are up and connection is successful.", + "description": "List of all countries. You can use the locale header to get the data in a supported language.", "responses": { "200": { - "description": "Status List", + "description": "Countries List", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/healthStatusList" + "$ref": "#\/components\/schemas\/countryList" } } } @@ -31415,22 +31819,23 @@ }, "deprecated": false, "x-appwrite": { - "method": "getCache", - "group": "health", + "method": "listCountries", + "group": null, "cookies": false, "type": "", - "demo": "health\/get-cache.md", + "demo": "locale\/list-countries.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "health.read", + "scope": "locale.read", "platforms": [ "console", + "client", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/health\/get-cache.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/locale\/list-countries.md", "auth": { "Project": [] } @@ -31438,26 +31843,28 @@ "security": [ { "Project": [], - "Key": [] + "Session": [], + "Key": [], + "JWT": [] } ] } }, - "\/health\/certificate": { + "\/locale\/countries\/eu": { "get": { - "summary": "Get the SSL certificate for a domain", - "operationId": "healthGetCertificate", + "summary": "List EU countries", + "operationId": "localeListCountriesEU", "tags": [ - "health" + "locale" ], - "description": "Get the SSL certificate for a domain", + "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": "Health Certificate", + "description": "Countries List", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/healthCertificate" + "$ref": "#\/components\/schemas\/countryList" } } } @@ -31465,22 +31872,23 @@ }, "deprecated": false, "x-appwrite": { - "method": "getCertificate", - "group": "health", + "method": "listCountriesEU", + "group": null, "cookies": false, "type": "", - "demo": "health\/get-certificate.md", + "demo": "locale\/list-countries-eu.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "health.read", + "scope": "locale.read", "platforms": [ "console", + "client", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/health\/get-certificate.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/locale\/list-countries-eu.md", "auth": { "Project": [] } @@ -31488,37 +31896,28 @@ "security": [ { "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "domain", - "description": "string", - "required": false, - "schema": { - "type": "string" - }, - "in": "query" + "Session": [], + "Key": [], + "JWT": [] } ] } }, - "\/health\/console-pausing": { + "\/locale\/countries\/phones": { "get": { - "summary": "Get console pausing health", - "operationId": "healthGetConsolePausing", + "summary": "List countries phone codes", + "operationId": "localeListCountriesPhones", "tags": [ - "health" + "locale" ], - "description": "Get console pausing health status. Monitors projects approaching the pause threshold to detect potential issues with console access tracking.\n", + "description": "List of all countries phone codes. You can use the locale header to get the data in a supported language.", "responses": { "200": { - "description": "Health Status", + "description": "Phones List", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/healthStatus" + "$ref": "#\/components\/schemas\/phoneList" } } } @@ -31526,22 +31925,23 @@ }, "deprecated": false, "x-appwrite": { - "method": "getConsolePausing", + "method": "listCountriesPhones", "group": null, "cookies": false, "type": "", - "demo": "health\/get-console-pausing.md", + "demo": "locale\/list-countries-phones.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "health.read", + "scope": "locale.read", "platforms": [ "console", + "client", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/health\/get-console-pausing.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/locale\/list-countries-phones.md", "auth": { "Project": [] } @@ -31549,50 +31949,28 @@ "security": [ { "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "threshold", - "description": "Percentage threshold of projects approaching pause. When hit (equal or higher), endpoint returns server error. Default value is 10.", - "required": false, - "schema": { - "type": "integer", - "format": "int32", - "default": 10 - }, - "in": "query" - }, - { - "name": "inactivityDays", - "description": "Number of days of inactivity before a project is paused. Should match the plan's projectInactivityDays setting. Default value is 7.", - "required": false, - "schema": { - "type": "integer", - "format": "int32", - "default": 7 - }, - "in": "query" + "Session": [], + "Key": [], + "JWT": [] } ] } }, - "\/health\/db": { + "\/locale\/currencies": { "get": { - "summary": "Get DB", - "operationId": "healthGetDB", + "summary": "List currencies", + "operationId": "localeListCurrencies", "tags": [ - "health" + "locale" ], - "description": "Check the Appwrite database servers are up and connection is successful.", + "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": "Status List", + "description": "Currencies List", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/healthStatusList" + "$ref": "#\/components\/schemas\/currencyList" } } } @@ -31600,22 +31978,23 @@ }, "deprecated": false, "x-appwrite": { - "method": "getDB", - "group": "health", + "method": "listCurrencies", + "group": null, "cookies": false, "type": "", - "demo": "health\/get-db.md", + "demo": "locale\/list-currencies.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "health.read", + "scope": "locale.read", "platforms": [ "console", + "client", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/health\/get-db.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/locale\/list-currencies.md", "auth": { "Project": [] } @@ -31623,26 +32002,28 @@ "security": [ { "Project": [], - "Key": [] + "Session": [], + "Key": [], + "JWT": [] } ] } }, - "\/health\/geo": { + "\/locale\/languages": { "get": { - "summary": "Get geo", - "operationId": "healthGetGeo", + "summary": "List languages", + "operationId": "localeListLanguages", "tags": [ - "health" + "locale" ], - "description": "Check the Appwrite geo service is up and connection is successful.", + "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": "Health Status", + "description": "Languages List", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/healthStatus" + "$ref": "#\/components\/schemas\/languageList" } } } @@ -31650,22 +32031,23 @@ }, "deprecated": false, "x-appwrite": { - "method": "getGeo", - "group": "health", + "method": "listLanguages", + "group": null, "cookies": false, "type": "", - "demo": "health\/get-geo.md", + "demo": "locale\/list-languages.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "health.read", + "scope": "locale.read", "platforms": [ "console", + "client", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/health\/get-geo.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/locale\/list-languages.md", "auth": { "Project": [] } @@ -31673,26 +32055,28 @@ "security": [ { "Project": [], - "Key": [] + "Session": [], + "Key": [], + "JWT": [] } ] } }, - "\/health\/geo-premium": { - "get": { - "summary": "Get premium geo health", - "operationId": "healthGetGeoPremium", + "\/manager\/blocks": { + "post": { + "summary": "Create a new resource block for a project", + "operationId": "managerCreateBlock", "tags": [ - "health" + "manager" ], - "description": "Get the health status of the premium geo service. This endpoint probes the internal `appwrite-geo-premium` service used for premium IP-to-location lookups (organizations or projects on the premium geo DB addon) and returns a `pass` status when reachable.\n", + "description": "Creates a new resource block.", "responses": { - "200": { - "description": "Health Status", + "201": { + "description": "Block", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/healthStatus" + "$ref": "#\/components\/schemas\/block" } } } @@ -31700,49 +32084,118 @@ }, "deprecated": false, "x-appwrite": { - "method": "getGeoPremium", + "method": "createBlock", "group": null, "cookies": false, "type": "", - "demo": "health\/get-geo-premium.md", + "demo": "manager\/create-block.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "health.read", + "scope": "", "platforms": [ - "console", - "server" + "console" ], "packaging": false, - "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/health\/get-geo-premium.md", - "auth": { - "Project": [] - } + "public": true }, - "security": [ - { - "Project": [], - "Key": [] + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "projectId": { + "type": "string", + "description": "Project ID", + "x-example": "" + }, + "resourceType": { + "type": "string", + "description": "Resource type to block (e.g., projects, functions, databases, storage, etc.)", + "x-example": "projects", + "enum": [ + "projects", + "functions", + "sites", + "databases", + "buckets", + "providers", + "topics", + "subscribers", + "messages" + ], + "x-enum-name": "BlockResourceType", + "x-enum-keys": [ + "projects", + "functions", + "sites", + "databases", + "buckets", + "providers", + "topics", + "subscribers", + "messages" + ] + }, + "resourceId": { + "type": "string", + "description": "Optional resource ID (if omitted, all resources of this type will be blocked)", + "default": "", + "x-example": "" + }, + "mode": { + "type": "string", + "description": "Block mode. Use full to block reads and writes, or readOnly to block database writes only.", + "default": "full", + "x-example": "full", + "enum": [ + "full", + "readonly" + ], + "x-enum-name": "BlockMode", + "x-enum-keys": [ + "full", + "readonly" + ] + }, + "reason": { + "type": "string", + "description": "Optional reason why the resource is blocked", + "default": "", + "x-example": "" + }, + "expiredAt": { + "type": "string", + "description": "Optional expiration date for the block", + "default": "", + "x-example": "2020-10-15T06:38:00.000+00:00", + "format": "datetime" + } + }, + "required": [ + "projectId", + "resourceType" + ] + } + } } - ] - } - }, - "\/health\/pubsub": { - "get": { - "summary": "Get pubsub", - "operationId": "healthGetPubSub", + } + }, + "delete": { + "summary": "Delete resource blocks for a project", + "operationId": "managerDeleteBlock", "tags": [ - "health" + "manager" ], - "description": "Check the Appwrite pub-sub servers are up and connection is successful.", + "description": "Deletes resource blocks for a project.", "responses": { "200": { - "description": "Status List", + "description": "BlockDelete", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/healthStatusList" + "$ref": "#\/components\/schemas\/blockDelete" } } } @@ -31750,49 +32203,94 @@ }, "deprecated": false, "x-appwrite": { - "method": "getPubSub", - "group": "health", + "method": "deleteBlock", + "group": null, "cookies": false, "type": "", - "demo": "health\/get-pub-sub.md", + "demo": "manager\/delete-block.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "health.read", + "scope": "", "platforms": [ - "console", - "server" + "console" ], "packaging": false, - "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/health\/get-pubsub.md", - "auth": { - "Project": [] - } + "public": true }, - "security": [ + "parameters": [ { - "Project": [], - "Key": [] + "name": "projectId", + "description": "Project ID", + "required": true, + "schema": { + "type": "string", + "x-example": "" + }, + "in": "query" + }, + { + "name": "resourceType", + "description": "Resource type to unblock", + "required": true, + "schema": { + "type": "string", + "x-example": "projects", + "enum": [ + "projects", + "functions", + "sites", + "databases", + "buckets", + "providers", + "topics", + "subscribers", + "messages" + ], + "x-enum-name": "BlockResourceType", + "x-enum-keys": [ + "projects", + "functions", + "sites", + "databases", + "buckets", + "providers", + "topics", + "subscribers", + "messages" + ] + }, + "in": "query" + }, + { + "name": "resourceId", + "description": "Optional resource ID (if omitted, all blocks of this type will be removed)", + "required": false, + "schema": { + "type": "string", + "x-example": "", + "default": "" + }, + "in": "query" } ] } }, - "\/health\/queue\/audits": { + "\/manager\/blocks\/{projectId}": { "get": { - "summary": "Get audits queue", - "operationId": "healthGetQueueAudits", + "summary": "List all resource blocks for a project", + "operationId": "managerListBlocks", "tags": [ - "health" + "manager" ], - "description": "Get the number of audit logs that are waiting to be processed in the Appwrite internal queue server.\n", + "description": "Lists all resource blocks for a project.", "responses": { "200": { - "description": "Health Queue", + "description": "Blocks list", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/healthQueue" + "$ref": "#\/components\/schemas\/blockList" } } } @@ -31800,62 +32298,51 @@ }, "deprecated": false, "x-appwrite": { - "method": "getQueueAudits", - "group": "queue", + "method": "listBlocks", + "group": null, "cookies": false, "type": "", - "demo": "health\/get-queue-audits.md", + "demo": "manager\/list-blocks.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "health.read", + "scope": "", "platforms": [ - "console", - "server" + "console" ], "packaging": false, - "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/health\/get-queue-audits.md", - "auth": { - "Project": [] - } + "public": true }, - "security": [ - { - "Project": [], - "Key": [] - } - ], "parameters": [ { - "name": "threshold", - "description": "Queue size threshold. When hit (equal or higher), endpoint returns server error. Default value is 5000.", - "required": false, + "name": "projectId", + "description": "Project ID", + "required": true, "schema": { - "type": "integer", - "format": "int32", - "default": 5000 + "type": "string", + "x-example": "" }, - "in": "query" + "in": "path" } ] } }, - "\/health\/queue\/billing-project-aggregation": { - "get": { - "summary": "Get billing project aggregation queue", - "operationId": "healthGetQueueBillingProjectAggregation", + "\/manager\/cache": { + "delete": { + "summary": "Clear internal cache", + "operationId": "managerDeleteCache", "tags": [ - "health" + "manager" ], - "description": "Get billing project aggregation queue.", + "description": "Clears internal cache.", "responses": { "200": { - "description": "Health Queue", + "description": "File", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/healthQueue" + "type": "string", + "format": "binary" } } } @@ -31863,62 +32350,161 @@ }, "deprecated": false, "x-appwrite": { - "method": "getQueueBillingProjectAggregation", - "group": null, + "method": "deleteCache", + "group": "cache", "cookies": false, "type": "", - "demo": "health\/get-queue-billing-project-aggregation.md", + "demo": "manager\/delete-cache.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "health.read", + "scope": "", "platforms": [ - "console", - "server" + "console" ], "packaging": false, - "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/health\/get-queue-billing-project-aggregation.md", - "auth": { - "Project": [] - } + "public": true }, - "security": [ + "parameters": [ { - "Project": [], - "Key": [] - } - ], - "parameters": [ + "name": "region", + "description": "Target region.", + "required": false, + "schema": { + "type": "string", + "x-example": "fra", + "enum": [ + "fra", + "nyc", + "syd", + "sfo", + "sgp", + "tor" + ], + "x-enum-name": "Region", + "x-enum-keys": [ + "fra", + "nyc", + "syd", + "sfo", + "sgp", + "tor" + ] + }, + "in": "query" + }, { - "name": "threshold", - "description": "Queue size threshold. When hit (equal or higher), endpoint returns server error. Default value is 5000.", + "name": "cache", + "description": "Cache target.", "required": false, "schema": { - "type": "integer", - "format": "int32", - "default": 10000 + "type": "string", + "x-example": "cache", + "enum": [ + "cache", + "timelimit", + "locks", + "pubsub", + "queue", + "all" + ], + "x-enum-name": "CacheTarget", + "x-enum-keys": [ + "cache", + "timelimit", + "locks", + "pubsub", + "queue", + "all" + ], + "default": "cache" + }, + "in": "query" + }, + { + "name": "all", + "description": "Clear the entire selected cache target.", + "required": false, + "schema": { + "type": "boolean", + "x-example": false, + "default": false + }, + "in": "query" + }, + { + "name": "database", + "description": "Database cache scope.", + "required": false, + "schema": { + "type": "string", + "x-example": "console", + "enum": [ + "console", + "project", + "logs" + ], + "x-enum-name": "CacheDatabase", + "x-enum-keys": [ + "console", + "project", + "logs" + ], + "default": "console" + }, + "in": "query" + }, + { + "name": "projectId", + "description": "Project ID for project or logs database cache.", + "required": false, + "schema": { + "type": "string", + "x-example": "", + "default": "" + }, + "in": "query" + }, + { + "name": "collectionId", + "description": "Collection ID.", + "required": false, + "schema": { + "type": "string", + "x-example": "", + "default": "" + }, + "in": "query" + }, + { + "name": "documentId", + "description": "Document ID.", + "required": false, + "schema": { + "type": "string", + "x-example": "", + "default": "" }, "in": "query" } ] } }, - "\/health\/queue\/billing-team-aggregation": { - "get": { - "summary": "Get billing team aggregation queue", - "operationId": "healthGetQueueBillingTeamAggregation", + "\/manager\/users\/status": { + "patch": { + "summary": "Update a user status by ID or email", + "operationId": "managerUpdateUserStatus", "tags": [ - "health" + "manager" ], - "description": "Get billing team aggregation queue.", + "description": "Updates a console user status using a user ID or email address.", "responses": { "200": { - "description": "Health Queue", + "description": "User", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/healthQueue" + "$ref": "#\/components\/schemas\/user" } } } @@ -31926,62 +32512,75 @@ }, "deprecated": false, "x-appwrite": { - "method": "getQueueBillingTeamAggregation", - "group": null, + "method": "updateUserStatus", + "group": "users", "cookies": false, "type": "", - "demo": "health\/get-queue-billing-team-aggregation.md", + "demo": "manager\/update-user-status.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "health.read", + "scope": "", "platforms": [ - "console", - "server" + "console" ], "packaging": false, - "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/health\/get-queue-billing-team-aggregation.md", - "auth": { - "Project": [] - } + "public": true }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "threshold", - "description": "Queue size threshold. When hit (equal or higher), endpoint returns server error. Default value is 5000.", - "required": false, - "schema": { - "type": "integer", - "format": "int32", - "default": 10000 - }, - "in": "query" + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "userId": { + "type": "string", + "description": "User ID.", + "default": "", + "x-example": "" + }, + "email": { + "type": "string", + "description": "User email address.", + "default": "", + "x-example": "" + }, + "status": { + "type": "boolean", + "description": "User status. Set to `false` to block and `true` to unblock.", + "x-example": false + }, + "reason": { + "type": "string", + "description": "Optional reason when blocking a user. Accepted for parity with the CLI task but not persisted.", + "default": "", + "x-example": "" + } + }, + "required": [ + "status" + ] + } + } } - ] + } } }, - "\/health\/queue\/builds": { + "\/messaging\/messages": { "get": { - "summary": "Get builds queue", - "operationId": "healthGetQueueBuilds", + "summary": "List messages", + "operationId": "messagingListMessages", "tags": [ - "health" + "messaging" ], - "description": "Get the number of builds that are waiting to be processed in the Appwrite internal queue server.", + "description": "Get a list of all messages from the current Appwrite project.", "responses": { "200": { - "description": "Health Queue", + "description": "Message list", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/healthQueue" + "$ref": "#\/components\/schemas\/messageList" } } } @@ -31989,22 +32588,22 @@ }, "deprecated": false, "x-appwrite": { - "method": "getQueueBuilds", - "group": "queue", + "method": "listMessages", + "group": "messages", "cookies": false, "type": "", - "demo": "health\/get-queue-builds.md", + "demo": "messaging\/list-messages.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "health.read", + "scope": "messages.read", "platforms": [ "console", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/health\/get-queue-builds.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/messaging\/list-messages.md", "auth": { "Project": [] } @@ -32017,34 +32616,58 @@ ], "parameters": [ { - "name": "threshold", - "description": "Queue size threshold. When hit (equal or higher), endpoint returns server error. Default value is 5000.", + "name": "queries", + "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/queries). Maximum of 100 queries are allowed, each 4096 characters long. You may filter on the following attributes: scheduledAt, deliveredAt, deliveredTotal, status, description, providerType", "required": false, "schema": { - "type": "integer", - "format": "int32", - "default": 5000 + "type": "array", + "items": { + "type": "string" + }, + "default": [] + }, + "in": "query" + }, + { + "name": "search", + "description": "Search term to filter your list results. Max length: 256 chars.", + "required": false, + "schema": { + "type": "string", + "x-example": "", + "default": "" + }, + "in": "query" + }, + { + "name": "total", + "description": "When set to false, the total count returned will be 0 and will not be calculated.", + "required": false, + "schema": { + "type": "boolean", + "x-example": false, + "default": true }, "in": "query" } ] } }, - "\/health\/queue\/certificates": { - "get": { - "summary": "Get certificates queue", - "operationId": "healthGetQueueCertificates", + "\/messaging\/messages\/email": { + "post": { + "summary": "Create email", + "operationId": "messagingCreateEmail", "tags": [ - "health" + "messaging" ], - "description": "Get the number of certificates that are waiting to be issued against [Letsencrypt](https:\/\/letsencrypt.org\/) in the Appwrite internal queue server.", + "description": "Create a new email message.", "responses": { - "200": { - "description": "Health Queue", + "201": { + "description": "Message", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/healthQueue" + "$ref": "#\/components\/schemas\/message" } } } @@ -32052,22 +32675,22 @@ }, "deprecated": false, "x-appwrite": { - "method": "getQueueCertificates", - "group": "queue", + "method": "createEmail", + "group": "messages", "cookies": false, "type": "", - "demo": "health\/get-queue-certificates.md", + "demo": "messaging\/create-email.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "health.read", + "scope": "messages.write", "platforms": [ "console", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/health\/get-queue-certificates.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/messaging\/create-email.md", "auth": { "Project": [] } @@ -32078,36 +32701,130 @@ "Key": [] } ], - "parameters": [ - { - "name": "threshold", - "description": "Queue size threshold. When hit (equal or higher), endpoint returns server error. Default value is 5000.", - "required": false, - "schema": { - "type": "integer", - "format": "int32", - "default": 5000 - }, - "in": "query" + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "messageId": { + "type": "string", + "description": "Message ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.", + "x-example": "", + "x-appwrite": { + "idGenerator": "ID.unique" + } + }, + "subject": { + "type": "string", + "description": "Email Subject.", + "x-example": "" + }, + "content": { + "type": "string", + "description": "Email Content.", + "x-example": "" + }, + "topics": { + "type": "array", + "description": "List of Topic IDs.", + "default": [], + "x-example": null, + "items": { + "type": "string" + } + }, + "users": { + "type": "array", + "description": "List of User IDs.", + "default": [], + "x-example": null, + "items": { + "type": "string" + } + }, + "targets": { + "type": "array", + "description": "List of Targets IDs.", + "default": [], + "x-example": null, + "items": { + "type": "string" + } + }, + "cc": { + "type": "array", + "description": "Array of target IDs to be added as CC.", + "default": [], + "x-example": null, + "items": { + "type": "string" + } + }, + "bcc": { + "type": "array", + "description": "Array of target IDs to be added as BCC.", + "default": [], + "x-example": null, + "items": { + "type": "string" + } + }, + "attachments": { + "type": "array", + "description": "Array of compound ID strings of bucket IDs and file IDs to be attached to the email. They should be formatted as :.", + "default": [], + "x-example": null, + "items": { + "type": "string" + } + }, + "draft": { + "type": "boolean", + "description": "Is message a draft", + "default": false, + "x-example": false + }, + "html": { + "type": "boolean", + "description": "Is content of type HTML", + "default": false, + "x-example": false + }, + "scheduledAt": { + "type": "string", + "description": "Scheduled delivery time for message in [ISO 8601](https:\/\/www.iso.org\/iso-8601-date-and-time-format.html) format. DateTime value must be in future.", + "x-example": "2020-10-15T06:38:00.000+00:00", + "format": "datetime", + "x-nullable": true + } + }, + "required": [ + "messageId", + "subject", + "content" + ] + } + } } - ] + } } }, - "\/health\/queue\/databases": { - "get": { - "summary": "Get databases queue", - "operationId": "healthGetQueueDatabases", + "\/messaging\/messages\/email\/{messageId}": { + "patch": { + "summary": "Update email", + "operationId": "messagingUpdateEmail", "tags": [ - "health" + "messaging" ], - "description": "Get the number of database changes that are waiting to be processed in the Appwrite internal queue server.", + "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": "Health Queue", + "description": "Message", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/healthQueue" + "$ref": "#\/components\/schemas\/message" } } } @@ -32115,22 +32832,22 @@ }, "deprecated": false, "x-appwrite": { - "method": "getQueueDatabases", - "group": "queue", + "method": "updateEmail", + "group": "messages", "cookies": false, "type": "", - "demo": "health\/get-queue-databases.md", + "demo": "messaging\/update-email.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "health.read", + "scope": "messages.write", "platforms": [ "console", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/health\/get-queue-databases.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/messaging\/update-email.md", "auth": { "Project": [] } @@ -32143,45 +32860,129 @@ ], "parameters": [ { - "name": "name", - "description": "Queue name for which to check the queue size", - "required": false, + "name": "messageId", + "description": "Message ID.", + "required": true, "schema": { "type": "string", - "x-example": "", - "default": "database_db_main" - }, - "in": "query" - }, - { - "name": "threshold", - "description": "Queue size threshold. When hit (equal or higher), endpoint returns server error. Default value is 5000.", - "required": false, - "schema": { - "type": "integer", - "format": "int32", - "default": 5000 + "x-example": "" }, - "in": "query" + "in": "path" } - ] + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "topics": { + "type": "array", + "description": "List of Topic IDs.", + "x-example": null, + "items": { + "type": "string" + }, + "x-nullable": true + }, + "users": { + "type": "array", + "description": "List of User IDs.", + "x-example": null, + "items": { + "type": "string" + }, + "x-nullable": true + }, + "targets": { + "type": "array", + "description": "List of Targets IDs.", + "x-example": null, + "items": { + "type": "string" + }, + "x-nullable": true + }, + "subject": { + "type": "string", + "description": "Email Subject.", + "x-example": "", + "x-nullable": true + }, + "content": { + "type": "string", + "description": "Email Content.", + "x-example": "", + "x-nullable": true + }, + "draft": { + "type": "boolean", + "description": "Is message a draft", + "x-example": false, + "x-nullable": true + }, + "html": { + "type": "boolean", + "description": "Is content of type HTML", + "x-example": false, + "x-nullable": true + }, + "cc": { + "type": "array", + "description": "Array of target IDs to be added as CC.", + "x-example": null, + "items": { + "type": "string" + }, + "x-nullable": true + }, + "bcc": { + "type": "array", + "description": "Array of target IDs to be added as BCC.", + "x-example": null, + "items": { + "type": "string" + }, + "x-nullable": true + }, + "scheduledAt": { + "type": "string", + "description": "Scheduled delivery time for message in [ISO 8601](https:\/\/www.iso.org\/iso-8601-date-and-time-format.html) format. DateTime value must be in future.", + "x-example": "2020-10-15T06:38:00.000+00:00", + "format": "datetime", + "x-nullable": true + }, + "attachments": { + "type": "array", + "description": "Array of compound ID strings of bucket IDs and file IDs to be attached to the email. They should be formatted as :.", + "x-example": null, + "items": { + "type": "string" + }, + "x-nullable": true + } + } + } + } + } + } } }, - "\/health\/queue\/deletes": { - "get": { - "summary": "Get deletes queue", - "operationId": "healthGetQueueDeletes", + "\/messaging\/messages\/push": { + "post": { + "summary": "Create push notification", + "operationId": "messagingCreatePush", "tags": [ - "health" + "messaging" ], - "description": "Get the number of background destructive changes that are waiting to be processed in the Appwrite internal queue server.", + "description": "Create a new push notification.", "responses": { - "200": { - "description": "Health Queue", + "201": { + "description": "Message", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/healthQueue" + "$ref": "#\/components\/schemas\/message" } } } @@ -32189,22 +32990,22 @@ }, "deprecated": false, "x-appwrite": { - "method": "getQueueDeletes", - "group": "queue", + "method": "createPush", + "group": "messages", "cookies": false, "type": "", - "demo": "health\/get-queue-deletes.md", + "demo": "messaging\/create-push.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "health.read", + "scope": "messages.write", "platforms": [ "console", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/health\/get-queue-deletes.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/messaging\/create-push.md", "auth": { "Project": [] } @@ -32215,36 +33016,174 @@ "Key": [] } ], - "parameters": [ - { - "name": "threshold", - "description": "Queue size threshold. When hit (equal or higher), endpoint returns server error. Default value is 5000.", - "required": false, - "schema": { - "type": "integer", - "format": "int32", - "default": 5000 - }, - "in": "query" + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "messageId": { + "type": "string", + "description": "Message ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.", + "x-example": "", + "x-appwrite": { + "idGenerator": "ID.unique" + } + }, + "title": { + "type": "string", + "description": "Title for push notification.", + "default": "", + "x-example": "" + }, + "body": { + "type": "string", + "description": "Body for push notification.", + "default": "", + "x-example": "<BODY>" + }, + "topics": { + "type": "array", + "description": "List of Topic IDs.", + "default": [], + "x-example": null, + "items": { + "type": "string" + } + }, + "users": { + "type": "array", + "description": "List of User IDs.", + "default": [], + "x-example": null, + "items": { + "type": "string" + } + }, + "targets": { + "type": "array", + "description": "List of Targets IDs.", + "default": [], + "x-example": null, + "items": { + "type": "string" + } + }, + "data": { + "type": "object", + "description": "Additional key-value pair data for push notification.", + "default": {}, + "x-example": "{}", + "x-nullable": true + }, + "action": { + "type": "string", + "description": "Action for push notification.", + "default": "", + "x-example": "<ACTION>" + }, + "image": { + "type": "string", + "description": "Image for push notification. Must be a compound bucket ID to file ID of a jpeg, png, or bmp image in Appwrite Storage. It should be formatted as <BUCKET_ID>:<FILE_ID>.", + "default": "", + "x-example": "<ID1:ID2>" + }, + "icon": { + "type": "string", + "description": "Icon for push notification. Available only for Android and Web Platform.", + "default": "", + "x-example": "<ICON>" + }, + "sound": { + "type": "string", + "description": "Sound for push notification. Available only for Android and iOS Platform.", + "default": "", + "x-example": "<SOUND>" + }, + "color": { + "type": "string", + "description": "Color for push notification. Available only for Android Platform.", + "default": "", + "x-example": "<COLOR>" + }, + "tag": { + "type": "string", + "description": "Tag for push notification. Available only for Android Platform.", + "default": "", + "x-example": "<TAG>" + }, + "badge": { + "type": "integer", + "description": "Badge for push notification. Available only for iOS Platform.", + "default": -1, + "x-example": null, + "format": "int32" + }, + "draft": { + "type": "boolean", + "description": "Is message a draft", + "default": false, + "x-example": false + }, + "scheduledAt": { + "type": "string", + "description": "Scheduled delivery time for message in [ISO 8601](https:\/\/www.iso.org\/iso-8601-date-and-time-format.html) format. DateTime value must be in future.", + "x-example": "2020-10-15T06:38:00.000+00:00", + "format": "datetime", + "x-nullable": true + }, + "contentAvailable": { + "type": "boolean", + "description": "If set to true, the notification will be delivered in the background. Available only for iOS Platform.", + "default": false, + "x-example": false + }, + "critical": { + "type": "boolean", + "description": "If set to true, the notification will be marked as critical. This requires the app to have the critical notification entitlement. Available only for iOS Platform.", + "default": false, + "x-example": false + }, + "priority": { + "type": "string", + "description": "Set the notification priority. \"normal\" will consider device state and may not deliver notifications immediately. \"high\" will always attempt to immediately deliver the notification.", + "default": "high", + "x-example": "normal", + "enum": [ + "normal", + "high" + ], + "x-enum-name": "MessagePriority", + "x-enum-keys": [ + "normal", + "high" + ] + } + }, + "required": [ + "messageId" + ] + } + } } - ] + } } }, - "\/health\/queue\/failed\/{name}": { - "get": { - "summary": "Get number of failed queue jobs", - "operationId": "healthGetFailedJobs", + "\/messaging\/messages\/push\/{messageId}": { + "patch": { + "summary": "Update push notification", + "operationId": "messagingUpdatePush", "tags": [ - "health" + "messaging" ], - "description": "Returns the amount of failed jobs in a given queue.\n", + "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": "Health Queue", + "description": "Message", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/healthQueue" + "$ref": "#\/components\/schemas\/message" } } } @@ -32252,22 +33191,22 @@ }, "deprecated": false, "x-appwrite": { - "method": "getFailedJobs", - "group": "queue", + "method": "updatePush", + "group": "messages", "cookies": false, "type": "", - "demo": "health\/get-failed-jobs.md", + "demo": "messaging\/update-push.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "health.read", + "scope": "messages.write", "platforms": [ "console", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/health\/get-failed-queue-jobs.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/messaging\/update-push.md", "auth": { "Project": [] } @@ -32280,100 +33219,266 @@ ], "parameters": [ { - "name": "name", - "description": "The name of the queue", + "name": "messageId", + "description": "Message ID.", "required": true, "schema": { "type": "string", - "x-example": "v1-database", - "enum": [ - "v1-database", - "v1-deletes", - "v1-audits", - "v1-mails", - "v1-functions", - "v1-stats-resources", - "v1-stats-usage", - "v1-webhooks", - "v1-certificates", - "v1-builds", - "v1-screenshots", - "v1-messaging", - "v1-migrations", - "v1-notifications" - ], - "x-enum-name": "HealthQueueName", - "x-enum-keys": [ - "v1-database", - "v1-deletes", - "v1-audits", - "v1-mails", - "v1-functions", - "v1-stats-resources", - "v1-stats-usage", - "v1-webhooks", - "v1-certificates", - "v1-builds", - "v1-screenshots", - "v1-messaging", - "v1-migrations", - "v1-notifications" - ] + "x-example": "<MESSAGE_ID>" }, "in": "path" - }, - { - "name": "threshold", - "description": "Queue size threshold. When hit (equal or higher), endpoint returns server error. Default value is 5000.", - "required": false, - "schema": { - "type": "integer", - "format": "int32", - "default": 5000 - }, - "in": "query" } - ] + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "topics": { + "type": "array", + "description": "List of Topic IDs.", + "x-example": null, + "items": { + "type": "string" + }, + "x-nullable": true + }, + "users": { + "type": "array", + "description": "List of User IDs.", + "x-example": null, + "items": { + "type": "string" + }, + "x-nullable": true + }, + "targets": { + "type": "array", + "description": "List of Targets IDs.", + "x-example": null, + "items": { + "type": "string" + }, + "x-nullable": true + }, + "title": { + "type": "string", + "description": "Title for push notification.", + "x-example": "<TITLE>", + "x-nullable": true + }, + "body": { + "type": "string", + "description": "Body for push notification.", + "x-example": "<BODY>", + "x-nullable": true + }, + "data": { + "type": "object", + "description": "Additional Data for push notification.", + "default": {}, + "x-example": "{}", + "x-nullable": true + }, + "action": { + "type": "string", + "description": "Action for push notification.", + "x-example": "<ACTION>", + "x-nullable": true + }, + "image": { + "type": "string", + "description": "Image for push notification. Must be a compound bucket ID to file ID of a jpeg, png, or bmp image in Appwrite Storage. It should be formatted as <BUCKET_ID>:<FILE_ID>.", + "x-example": "<ID1:ID2>", + "x-nullable": true + }, + "icon": { + "type": "string", + "description": "Icon for push notification. Available only for Android and Web platforms.", + "x-example": "<ICON>", + "x-nullable": true + }, + "sound": { + "type": "string", + "description": "Sound for push notification. Available only for Android and iOS platforms.", + "x-example": "<SOUND>", + "x-nullable": true + }, + "color": { + "type": "string", + "description": "Color for push notification. Available only for Android platforms.", + "x-example": "<COLOR>", + "x-nullable": true + }, + "tag": { + "type": "string", + "description": "Tag for push notification. Available only for Android platforms.", + "x-example": "<TAG>", + "x-nullable": true + }, + "badge": { + "type": "integer", + "description": "Badge for push notification. Available only for iOS platforms.", + "x-example": null, + "format": "int32", + "x-nullable": true + }, + "draft": { + "type": "boolean", + "description": "Is message a draft", + "x-example": false, + "x-nullable": true + }, + "scheduledAt": { + "type": "string", + "description": "Scheduled delivery time for message in [ISO 8601](https:\/\/www.iso.org\/iso-8601-date-and-time-format.html) format. DateTime value must be in future.", + "x-example": "2020-10-15T06:38:00.000+00:00", + "format": "datetime", + "x-nullable": true + }, + "contentAvailable": { + "type": "boolean", + "description": "If set to true, the notification will be delivered in the background. Available only for iOS Platform.", + "x-example": false, + "x-nullable": true + }, + "critical": { + "type": "boolean", + "description": "If set to true, the notification will be marked as critical. This requires the app to have the critical notification entitlement. Available only for iOS Platform.", + "x-example": false, + "x-nullable": true + }, + "priority": { + "type": "string", + "description": "Set the notification priority. \"normal\" will consider device battery state and may send notifications later. \"high\" will always attempt to immediately deliver the notification.", + "x-example": "normal", + "enum": [ + "normal", + "high" + ], + "x-enum-name": "MessagePriority", + "x-enum-keys": [ + "normal", + "high" + ], + "x-nullable": true + } + } + } + } + } + } } }, - "\/health\/queue\/functions": { - "get": { - "summary": "Get functions queue", - "operationId": "healthGetQueueFunctions", + "\/messaging\/messages\/sms": { + "post": { + "summary": "Create SMS", + "operationId": "messagingCreateSms", "tags": [ - "health" + "messaging" ], - "description": "Get the number of function executions that are waiting to be processed in the Appwrite internal queue server.", + "description": "Create a new SMS message.", "responses": { - "200": { - "description": "Health Queue", + "201": { + "description": "Message", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/healthQueue" + "$ref": "#\/components\/schemas\/message" } } } } }, - "deprecated": false, + "deprecated": true, "x-appwrite": { - "method": "getQueueFunctions", - "group": "queue", + "method": "createSms", + "group": "messages", "cookies": false, "type": "", - "demo": "health\/get-queue-functions.md", + "demo": "messaging\/create-sms.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "health.read", + "scope": "messages.write", "platforms": [ "console", "server" ], "packaging": false, - "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/health\/get-queue-functions.md", + "public": false, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/messaging\/create-sms.md", + "deprecated": { + "since": "1.8.0", + "replaceWith": "messaging.createSMS" + }, + "methods": [ + { + "name": "createSms", + "namespace": "messaging", + "desc": "", + "auth": { + "Project": [] + }, + "parameters": [ + "messageId", + "content", + "topics", + "users", + "targets", + "draft", + "scheduledAt" + ], + "required": [ + "messageId", + "content" + ], + "responses": [ + { + "code": 201, + "model": "#\/components\/schemas\/message" + } + ], + "description": "Create a new SMS message.", + "demo": "messaging\/create-sms.md", + "public": false, + "deprecated": { + "since": "1.8.0", + "replaceWith": "messaging.createSMS" + } + }, + { + "name": "createSMS", + "namespace": "messaging", + "desc": "", + "auth": { + "Project": [] + }, + "parameters": [ + "messageId", + "content", + "topics", + "users", + "targets", + "draft", + "scheduledAt" + ], + "required": [ + "messageId", + "content" + ], + "responses": [ + { + "code": 201, + "model": "#\/components\/schemas\/message" + } + ], + "description": "Create a new SMS message.", + "demo": "messaging\/create-sms.md", + "public": true + } + ], "auth": { "Project": [] } @@ -32384,60 +33489,183 @@ "Key": [] } ], - "parameters": [ - { - "name": "threshold", - "description": "Queue size threshold. When hit (equal or higher), endpoint returns server error. Default value is 5000.", - "required": false, - "schema": { - "type": "integer", - "format": "int32", - "default": 5000 - }, - "in": "query" + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "messageId": { + "type": "string", + "description": "Message ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.", + "x-example": "<MESSAGE_ID>", + "x-appwrite": { + "idGenerator": "ID.unique" + } + }, + "content": { + "type": "string", + "description": "SMS Content.", + "x-example": "<CONTENT>" + }, + "topics": { + "type": "array", + "description": "List of Topic IDs.", + "default": [], + "x-example": null, + "items": { + "type": "string" + } + }, + "users": { + "type": "array", + "description": "List of User IDs.", + "default": [], + "x-example": null, + "items": { + "type": "string" + } + }, + "targets": { + "type": "array", + "description": "List of Targets IDs.", + "default": [], + "x-example": null, + "items": { + "type": "string" + } + }, + "draft": { + "type": "boolean", + "description": "Is message a draft", + "default": false, + "x-example": false + }, + "scheduledAt": { + "type": "string", + "description": "Scheduled delivery time for message in [ISO 8601](https:\/\/www.iso.org\/iso-8601-date-and-time-format.html) format. DateTime value must be in future.", + "x-example": "2020-10-15T06:38:00.000+00:00", + "format": "datetime", + "x-nullable": true + } + }, + "required": [ + "messageId", + "content" + ] + } + } } - ] + } } }, - "\/health\/queue\/mails": { - "get": { - "summary": "Get mails queue", - "operationId": "healthGetQueueMails", + "\/messaging\/messages\/sms\/{messageId}": { + "patch": { + "summary": "Update SMS", + "operationId": "messagingUpdateSms", "tags": [ - "health" + "messaging" ], - "description": "Get the number of mails that are waiting to be processed in the Appwrite internal queue server.", + "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": "Health Queue", + "description": "Message", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/healthQueue" + "$ref": "#\/components\/schemas\/message" } } } } }, - "deprecated": false, + "deprecated": true, "x-appwrite": { - "method": "getQueueMails", - "group": "queue", + "method": "updateSms", + "group": "messages", "cookies": false, "type": "", - "demo": "health\/get-queue-mails.md", + "demo": "messaging\/update-sms.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "health.read", + "scope": "messages.write", "platforms": [ "console", "server" ], "packaging": false, - "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/health\/get-queue-mails.md", - "auth": { + "public": false, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/messaging\/update-sms.md", + "deprecated": { + "since": "1.8.0", + "replaceWith": "messaging.updateSMS" + }, + "methods": [ + { + "name": "updateSms", + "namespace": "messaging", + "desc": "", + "auth": { + "Project": [] + }, + "parameters": [ + "messageId", + "topics", + "users", + "targets", + "content", + "draft", + "scheduledAt" + ], + "required": [ + "messageId" + ], + "responses": [ + { + "code": 200, + "model": "#\/components\/schemas\/message" + } + ], + "description": "Update an SMS message by its unique ID. This endpoint only works on messages that are in draft status. Messages that are already processing, sent, or failed cannot be updated.\n", + "demo": "messaging\/update-sms.md", + "public": false, + "deprecated": { + "since": "1.8.0", + "replaceWith": "messaging.updateSMS" + } + }, + { + "name": "updateSMS", + "namespace": "messaging", + "desc": "", + "auth": { + "Project": [] + }, + "parameters": [ + "messageId", + "topics", + "users", + "targets", + "content", + "draft", + "scheduledAt" + ], + "required": [ + "messageId" + ], + "responses": [ + { + "code": 200, + "model": "#\/components\/schemas\/message" + } + ], + "description": "Update an SMS message by its unique ID. This endpoint only works on messages that are in draft status. Messages that are already processing, sent, or failed cannot be updated.\n", + "demo": "messaging\/update-sms.md", + "public": true + } + ], + "auth": { "Project": [] } }, @@ -32449,34 +33677,90 @@ ], "parameters": [ { - "name": "threshold", - "description": "Queue size threshold. When hit (equal or higher), endpoint returns server error. Default value is 5000.", - "required": false, + "name": "messageId", + "description": "Message ID.", + "required": true, "schema": { - "type": "integer", - "format": "int32", - "default": 5000 + "type": "string", + "x-example": "<MESSAGE_ID>" }, - "in": "query" + "in": "path" } - ] + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "topics": { + "type": "array", + "description": "List of Topic IDs.", + "x-example": null, + "items": { + "type": "string" + }, + "x-nullable": true + }, + "users": { + "type": "array", + "description": "List of User IDs.", + "x-example": null, + "items": { + "type": "string" + }, + "x-nullable": true + }, + "targets": { + "type": "array", + "description": "List of Targets IDs.", + "x-example": null, + "items": { + "type": "string" + }, + "x-nullable": true + }, + "content": { + "type": "string", + "description": "Email Content.", + "x-example": "<CONTENT>", + "x-nullable": true + }, + "draft": { + "type": "boolean", + "description": "Is message a draft", + "x-example": false, + "x-nullable": true + }, + "scheduledAt": { + "type": "string", + "description": "Scheduled delivery time for message in [ISO 8601](https:\/\/www.iso.org\/iso-8601-date-and-time-format.html) format. DateTime value must be in future.", + "x-example": "2020-10-15T06:38:00.000+00:00", + "format": "datetime", + "x-nullable": true + } + } + } + } + } + } } }, - "\/health\/queue\/messaging": { + "\/messaging\/messages\/{messageId}": { "get": { - "summary": "Get messaging queue", - "operationId": "healthGetQueueMessaging", + "summary": "Get message", + "operationId": "messagingGetMessage", "tags": [ - "health" + "messaging" ], - "description": "Get the number of messages that are waiting to be processed in the Appwrite internal queue server.", + "description": "Get a message by its unique ID.\n", "responses": { "200": { - "description": "Health Queue", + "description": "Message", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/healthQueue" + "$ref": "#\/components\/schemas\/message" } } } @@ -32484,22 +33768,22 @@ }, "deprecated": false, "x-appwrite": { - "method": "getQueueMessaging", - "group": "queue", + "method": "getMessage", + "group": "messages", "cookies": false, "type": "", - "demo": "health\/get-queue-messaging.md", + "demo": "messaging\/get-message.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "health.read", + "scope": "messages.read", "platforms": [ "console", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/health\/get-queue-messaging.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/messaging\/get-message.md", "auth": { "Project": [] } @@ -32512,57 +33796,47 @@ ], "parameters": [ { - "name": "threshold", - "description": "Queue size threshold. When hit (equal or higher), endpoint returns server error. Default value is 5000.", - "required": false, + "name": "messageId", + "description": "Message ID.", + "required": true, "schema": { - "type": "integer", - "format": "int32", - "default": 5000 + "type": "string", + "x-example": "<MESSAGE_ID>" }, - "in": "query" + "in": "path" } ] - } - }, - "\/health\/queue\/migrations": { - "get": { - "summary": "Get migrations queue", - "operationId": "healthGetQueueMigrations", + }, + "delete": { + "summary": "Delete message", + "operationId": "messagingDelete", "tags": [ - "health" + "messaging" ], - "description": "Get the number of migrations that are waiting to be processed in the Appwrite internal queue server.", + "description": "Delete a message. If the message is not a draft or scheduled, but has been sent, this will not recall the message.", "responses": { - "200": { - "description": "Health Queue", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/healthQueue" - } - } - } + "204": { + "description": "No content" } }, "deprecated": false, "x-appwrite": { - "method": "getQueueMigrations", - "group": "queue", + "method": "delete", + "group": "messages", "cookies": false, "type": "", - "demo": "health\/get-queue-migrations.md", + "demo": "messaging\/delete.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "health.read", + "scope": "messages.write", "platforms": [ "console", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/health\/get-queue-migrations.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/messaging\/delete-message.md", "auth": { "Project": [] } @@ -32575,34 +33849,33 @@ ], "parameters": [ { - "name": "threshold", - "description": "Queue size threshold. When hit (equal or higher), endpoint returns server error. Default value is 5000.", - "required": false, + "name": "messageId", + "description": "Message ID.", + "required": true, "schema": { - "type": "integer", - "format": "int32", - "default": 5000 + "type": "string", + "x-example": "<MESSAGE_ID>" }, - "in": "query" + "in": "path" } ] } }, - "\/health\/queue\/notifications": { + "\/messaging\/messages\/{messageId}\/targets": { "get": { - "summary": "Get notifications queue", - "operationId": "healthGetQueueNotifications", + "summary": "List message targets", + "operationId": "messagingListTargets", "tags": [ - "health" + "messaging" ], - "description": "Get the number of jobs in the notifications queue.\n", + "description": "Get a list of the targets associated with a message.", "responses": { "200": { - "description": "Health Queue", + "description": "Target list", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/healthQueue" + "$ref": "#\/components\/schemas\/targetList" } } } @@ -32610,22 +33883,22 @@ }, "deprecated": false, "x-appwrite": { - "method": "getQueueNotifications", - "group": "queue", + "method": "listTargets", + "group": "messages", "cookies": false, "type": "", - "demo": "health\/get-queue-notifications.md", + "demo": "messaging\/list-targets.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "health.read", + "scope": "messages.read", "platforms": [ "console", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/health\/get-queue-notifications.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/messaging\/list-message-targets.md", "auth": { "Project": [] } @@ -32638,34 +33911,57 @@ ], "parameters": [ { - "name": "threshold", - "description": "Queue size threshold. When hit (equal or higher), endpoint returns server error. Default value is 5000.", + "name": "messageId", + "description": "Message ID.", + "required": true, + "schema": { + "type": "string", + "x-example": "<MESSAGE_ID>" + }, + "in": "path" + }, + { + "name": "queries", + "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/queries). Maximum of 100 queries are allowed, each 4096 characters long. You may filter on the following attributes: userId, providerId, identifier, providerType", "required": false, "schema": { - "type": "integer", - "format": "int32", - "default": 5000 + "type": "array", + "items": { + "type": "string" + }, + "default": [] + }, + "in": "query" + }, + { + "name": "total", + "description": "When set to false, the total count returned will be 0 and will not be calculated.", + "required": false, + "schema": { + "type": "boolean", + "x-example": false, + "default": true }, "in": "query" } ] } }, - "\/health\/queue\/region-manager": { + "\/messaging\/providers": { "get": { - "summary": "Get region manager queue", - "operationId": "healthGetQueueRegionManager", + "summary": "List providers", + "operationId": "messagingListProviders", "tags": [ - "health" + "messaging" ], - "description": "Get region manager queue.", + "description": "Get a list of all providers from the current Appwrite project.", "responses": { "200": { - "description": "Health Queue", + "description": "Provider list", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/healthQueue" + "$ref": "#\/components\/schemas\/providerList" } } } @@ -32673,22 +33969,22 @@ }, "deprecated": false, "x-appwrite": { - "method": "getQueueRegionManager", - "group": null, + "method": "listProviders", + "group": "providers", "cookies": false, "type": "", - "demo": "health\/get-queue-region-manager.md", + "demo": "messaging\/list-providers.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "health.read", + "scope": "providers.read", "platforms": [ "console", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/health\/get-queue-region-manager.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/messaging\/list-providers.md", "auth": { "Project": [] } @@ -32701,120 +33997,153 @@ ], "parameters": [ { - "name": "threshold", - "description": "Queue size threshold. When hit (equal or higher), endpoint returns server error. Default value is 100.", + "name": "queries", + "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more 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": "integer", - "format": "int32", - "default": 100 + "type": "array", + "items": { + "type": "string" + }, + "default": [] }, "in": "query" - } - ] - } - }, - "\/health\/queue\/stats-resources": { - "get": { - "summary": "Get stats resources queue", - "operationId": "healthGetQueueStatsResources", - "tags": [ - "health" - ], - "description": "Get the number of metrics that are waiting to be processed in the Appwrite stats resources queue.", - "responses": { - "200": { - "description": "Health Queue", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/healthQueue" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "method": "getQueueStatsResources", - "group": "queue", - "cookies": false, - "type": "", - "demo": "health\/get-queue-stats-resources.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "health.read", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/health\/get-queue-stats-resources.md", - "auth": { - "Project": [] - } - }, - "security": [ + }, { - "Project": [], - "Key": [] - } - ], - "parameters": [ + "name": "search", + "description": "Search term to filter your list results. Max length: 256 chars.", + "required": false, + "schema": { + "type": "string", + "x-example": "<SEARCH>", + "default": "" + }, + "in": "query" + }, { - "name": "threshold", - "description": "Queue size threshold. When hit (equal or higher), endpoint returns server error. Default value is 5000.", + "name": "total", + "description": "When set to false, the total count returned will be 0 and will not be calculated.", "required": false, "schema": { - "type": "integer", - "format": "int32", - "default": 5000 + "type": "boolean", + "x-example": false, + "default": true }, "in": "query" } ] } }, - "\/health\/queue\/stats-usage": { - "get": { - "summary": "Get stats usage queue", - "operationId": "healthGetQueueUsage", + "\/messaging\/providers\/apns": { + "post": { + "summary": "Create APNS provider", + "operationId": "messagingCreateApnsProvider", "tags": [ - "health" + "messaging" ], - "description": "Get the number of metrics that are waiting to be processed in the Appwrite internal queue server.", + "description": "Create a new Apple Push Notification service provider.", "responses": { - "200": { - "description": "Health Queue", + "201": { + "description": "Provider", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/healthQueue" + "$ref": "#\/components\/schemas\/provider" } } } } }, - "deprecated": false, + "deprecated": true, "x-appwrite": { - "method": "getQueueUsage", - "group": "queue", + "method": "createApnsProvider", + "group": "providers", "cookies": false, "type": "", - "demo": "health\/get-queue-usage.md", + "demo": "messaging\/create-apns-provider.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "health.read", + "scope": "providers.write", "platforms": [ "console", "server" ], "packaging": false, - "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/health\/get-queue-stats-usage.md", + "public": false, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/messaging\/create-apns-provider.md", + "deprecated": { + "since": "1.8.0", + "replaceWith": "messaging.createAPNSProvider" + }, + "methods": [ + { + "name": "createApnsProvider", + "namespace": "messaging", + "desc": "", + "auth": { + "Project": [] + }, + "parameters": [ + "providerId", + "name", + "authKey", + "authKeyId", + "teamId", + "bundleId", + "sandbox", + "enabled" + ], + "required": [ + "providerId", + "name" + ], + "responses": [ + { + "code": 201, + "model": "#\/components\/schemas\/provider" + } + ], + "description": "Create a new Apple Push Notification service provider.", + "demo": "messaging\/create-apns-provider.md", + "public": false, + "deprecated": { + "since": "1.8.0", + "replaceWith": "messaging.createAPNSProvider" + } + }, + { + "name": "createAPNSProvider", + "namespace": "messaging", + "desc": "", + "auth": { + "Project": [] + }, + "parameters": [ + "providerId", + "name", + "authKey", + "authKeyId", + "teamId", + "bundleId", + "sandbox", + "enabled" + ], + "required": [ + "providerId", + "name" + ], + "responses": [ + { + "code": 201, + "model": "#\/components\/schemas\/provider" + } + ], + "description": "Create a new Apple Push Notification service provider.", + "demo": "messaging\/create-apns-provider.md", + "public": true + } + ], "auth": { "Project": [] } @@ -32825,122 +34154,180 @@ "Key": [] } ], - "parameters": [ - { - "name": "threshold", - "description": "Queue size threshold. When hit (equal or higher), endpoint returns server error. Default value is 5000.", - "required": false, - "schema": { - "type": "integer", - "format": "int32", - "default": 5000 - }, - "in": "query" + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "providerId": { + "type": "string", + "description": "Provider ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.", + "x-example": "<PROVIDER_ID>", + "x-appwrite": { + "idGenerator": "ID.unique" + } + }, + "name": { + "type": "string", + "description": "Provider name.", + "x-example": "<NAME>" + }, + "authKey": { + "type": "string", + "description": "APNS authentication key.", + "default": "", + "x-example": "<AUTH_KEY>" + }, + "authKeyId": { + "type": "string", + "description": "APNS authentication key ID.", + "default": "", + "x-example": "<AUTH_KEY_ID>" + }, + "teamId": { + "type": "string", + "description": "APNS team ID.", + "default": "", + "x-example": "<TEAM_ID>" + }, + "bundleId": { + "type": "string", + "description": "APNS bundle ID.", + "default": "", + "x-example": "<BUNDLE_ID>" + }, + "sandbox": { + "type": "boolean", + "description": "Use APNS sandbox environment.", + "default": false, + "x-example": false + }, + "enabled": { + "type": "boolean", + "description": "Set as enabled.", + "x-example": false, + "x-nullable": true + } + }, + "required": [ + "providerId", + "name" + ] + } + } } - ] + } } }, - "\/health\/queue\/threats": { - "get": { - "summary": "Get threats queue", - "operationId": "healthGetQueueThreats", + "\/messaging\/providers\/apns\/{providerId}": { + "patch": { + "summary": "Update APNS provider", + "operationId": "messagingUpdateApnsProvider", "tags": [ - "health" + "messaging" ], - "description": "Get threats queue.", + "description": "Update a Apple Push Notification service provider by its unique ID.", "responses": { "200": { - "description": "Health Queue", + "description": "Provider", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/healthQueue" + "$ref": "#\/components\/schemas\/provider" } } } } }, - "deprecated": false, + "deprecated": true, "x-appwrite": { - "method": "getQueueThreats", - "group": null, + "method": "updateApnsProvider", + "group": "providers", "cookies": false, "type": "", - "demo": "health\/get-queue-threats.md", + "demo": "messaging\/update-apns-provider.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "health.read", + "scope": "providers.write", "platforms": [ "console", "server" ], "packaging": false, - "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/health\/get-queue-threats.md", - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "threshold", - "description": "Queue size threshold. When hit (equal or higher), endpoint returns server error. Default value is 100.", - "required": false, - "schema": { - "type": "integer", - "format": "int32", - "default": 100 - }, - "in": "query" - } - ] - } - }, - "\/health\/queue\/webhooks": { - "get": { - "summary": "Get webhooks queue", - "operationId": "healthGetQueueWebhooks", - "tags": [ - "health" - ], - "description": "Get the number of webhooks that are waiting to be processed in the Appwrite internal queue server.", - "responses": { - "200": { - "description": "Health Queue", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/healthQueue" + "public": false, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/messaging\/update-apns-provider.md", + "deprecated": { + "since": "1.8.0", + "replaceWith": "messaging.updateAPNSProvider" + }, + "methods": [ + { + "name": "updateApnsProvider", + "namespace": "messaging", + "desc": "", + "auth": { + "Project": [] + }, + "parameters": [ + "providerId", + "name", + "enabled", + "authKey", + "authKeyId", + "teamId", + "bundleId", + "sandbox" + ], + "required": [ + "providerId" + ], + "responses": [ + { + "code": 200, + "model": "#\/components\/schemas\/provider" } + ], + "description": "Update a Apple Push Notification service provider by its unique ID.", + "demo": "messaging\/update-apns-provider.md", + "public": false, + "deprecated": { + "since": "1.8.0", + "replaceWith": "messaging.updateAPNSProvider" } + }, + { + "name": "updateAPNSProvider", + "namespace": "messaging", + "desc": "", + "auth": { + "Project": [] + }, + "parameters": [ + "providerId", + "name", + "enabled", + "authKey", + "authKeyId", + "teamId", + "bundleId", + "sandbox" + ], + "required": [ + "providerId" + ], + "responses": [ + { + "code": 200, + "model": "#\/components\/schemas\/provider" + } + ], + "description": "Update a Apple Push Notification service provider by its unique ID.", + "demo": "messaging\/update-apns-provider.md", + "public": true } - } - }, - "deprecated": false, - "x-appwrite": { - "method": "getQueueWebhooks", - "group": "queue", - "cookies": false, - "type": "", - "demo": "health\/get-queue-webhooks.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "health.read", - "platforms": [ - "console", - "server" ], - "packaging": false, - "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/health\/get-queue-webhooks.md", "auth": { "Project": [] } @@ -32953,107 +34340,173 @@ ], "parameters": [ { - "name": "threshold", - "description": "Queue size threshold. When hit (equal or higher), endpoint returns server error. Default value is 5000.", - "required": false, + "name": "providerId", + "description": "Provider ID.", + "required": true, "schema": { - "type": "integer", - "format": "int32", - "default": 5000 + "type": "string", + "x-example": "<PROVIDER_ID>" }, - "in": "query" + "in": "path" } - ] - } - }, - "\/health\/storage": { - "get": { - "summary": "Get storage", - "operationId": "healthGetStorage", - "tags": [ - "health" ], - "description": "Check the Appwrite storage device is up and connection is successful.", - "responses": { - "200": { - "description": "Health Status", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/healthStatus" + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "Provider name.", + "default": "", + "x-example": "<NAME>" + }, + "enabled": { + "type": "boolean", + "description": "Set as enabled.", + "x-example": false, + "x-nullable": true + }, + "authKey": { + "type": "string", + "description": "APNS authentication key.", + "default": "", + "x-example": "<AUTH_KEY>" + }, + "authKeyId": { + "type": "string", + "description": "APNS authentication key ID.", + "default": "", + "x-example": "<AUTH_KEY_ID>" + }, + "teamId": { + "type": "string", + "description": "APNS team ID.", + "default": "", + "x-example": "<TEAM_ID>" + }, + "bundleId": { + "type": "string", + "description": "APNS bundle ID.", + "default": "", + "x-example": "<BUNDLE_ID>" + }, + "sandbox": { + "type": "boolean", + "description": "Use APNS sandbox environment.", + "x-example": false, + "x-nullable": true + } } } } } - }, - "deprecated": false, - "x-appwrite": { - "method": "getStorage", - "group": "storage", - "cookies": false, - "type": "", - "demo": "health\/get-storage.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "health.read", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/health\/get-storage.md", - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ] + } } }, - "\/health\/storage\/local": { - "get": { - "summary": "Get local storage", - "operationId": "healthGetStorageLocal", + "\/messaging\/providers\/fcm": { + "post": { + "summary": "Create FCM provider", + "operationId": "messagingCreateFcmProvider", "tags": [ - "health" + "messaging" ], - "description": "Check the Appwrite local storage device is up and connection is successful.", + "description": "Create a new Firebase Cloud Messaging provider.", "responses": { - "200": { - "description": "Health Status", + "201": { + "description": "Provider", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/healthStatus" + "$ref": "#\/components\/schemas\/provider" } } } } }, - "deprecated": false, + "deprecated": true, "x-appwrite": { - "method": "getStorageLocal", - "group": "storage", + "method": "createFcmProvider", + "group": "providers", "cookies": false, "type": "", - "demo": "health\/get-storage-local.md", + "demo": "messaging\/create-fcm-provider.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "health.read", + "scope": "providers.write", "platforms": [ "console", "server" ], "packaging": false, - "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/health\/get-storage-local.md", + "public": false, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/messaging\/create-fcm-provider.md", + "deprecated": { + "since": "1.8.0", + "replaceWith": "messaging.createFCMProvider" + }, + "methods": [ + { + "name": "createFcmProvider", + "namespace": "messaging", + "desc": "", + "auth": { + "Project": [] + }, + "parameters": [ + "providerId", + "name", + "serviceAccountJSON", + "enabled" + ], + "required": [ + "providerId", + "name" + ], + "responses": [ + { + "code": 201, + "model": "#\/components\/schemas\/provider" + } + ], + "description": "Create a new Firebase Cloud Messaging provider.", + "demo": "messaging\/create-fcm-provider.md", + "public": false, + "deprecated": { + "since": "1.8.0", + "replaceWith": "messaging.createFCMProvider" + } + }, + { + "name": "createFCMProvider", + "namespace": "messaging", + "desc": "", + "auth": { + "Project": [] + }, + "parameters": [ + "providerId", + "name", + "serviceAccountJSON", + "enabled" + ], + "required": [ + "providerId", + "name" + ], + "responses": [ + { + "code": 201, + "model": "#\/components\/schemas\/provider" + } + ], + "description": "Create a new Firebase Cloud Messaging provider.", + "demo": "messaging\/create-fcm-provider.md", + "public": true + } + ], "auth": { "Project": [] } @@ -33063,47 +34516,150 @@ "Project": [], "Key": [] } - ] + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "providerId": { + "type": "string", + "description": "Provider ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.", + "x-example": "<PROVIDER_ID>", + "x-appwrite": { + "idGenerator": "ID.unique" + } + }, + "name": { + "type": "string", + "description": "Provider name.", + "x-example": "<NAME>" + }, + "serviceAccountJSON": { + "type": "object", + "description": "FCM service account JSON.", + "default": {}, + "x-example": "{}", + "x-nullable": true + }, + "enabled": { + "type": "boolean", + "description": "Set as enabled.", + "x-example": false, + "x-nullable": true + } + }, + "required": [ + "providerId", + "name" + ] + } + } + } + } } }, - "\/health\/time": { - "get": { - "summary": "Get time", - "operationId": "healthGetTime", + "\/messaging\/providers\/fcm\/{providerId}": { + "patch": { + "summary": "Update FCM provider", + "operationId": "messagingUpdateFcmProvider", "tags": [ - "health" + "messaging" ], - "description": "Check the Appwrite server time is synced with Google remote NTP server. We use this technology to smoothly handle leap seconds with no disruptive events. The [Network Time Protocol](https:\/\/en.wikipedia.org\/wiki\/Network_Time_Protocol) (NTP) is used by hundreds of millions of computers and devices to synchronize their clocks over the Internet. If your computer sets its own clock, it likely uses NTP.", + "description": "Update a Firebase Cloud Messaging provider by its unique ID.", "responses": { "200": { - "description": "Health Time", + "description": "Provider", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/healthTime" + "$ref": "#\/components\/schemas\/provider" } } } } }, - "deprecated": false, + "deprecated": true, "x-appwrite": { - "method": "getTime", - "group": "health", + "method": "updateFcmProvider", + "group": "providers", "cookies": false, "type": "", - "demo": "health\/get-time.md", + "demo": "messaging\/update-fcm-provider.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "health.read", + "scope": "providers.write", "platforms": [ "console", "server" ], "packaging": false, - "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/health\/get-time.md", + "public": false, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/messaging\/update-fcm-provider.md", + "deprecated": { + "since": "1.8.0", + "replaceWith": "messaging.updateFCMProvider" + }, + "methods": [ + { + "name": "updateFcmProvider", + "namespace": "messaging", + "desc": "", + "auth": { + "Project": [] + }, + "parameters": [ + "providerId", + "name", + "enabled", + "serviceAccountJSON" + ], + "required": [ + "providerId" + ], + "responses": [ + { + "code": 200, + "model": "#\/components\/schemas\/provider" + } + ], + "description": "Update a Firebase Cloud Messaging provider by its unique ID.", + "demo": "messaging\/update-fcm-provider.md", + "public": false, + "deprecated": { + "since": "1.8.0", + "replaceWith": "messaging.updateFCMProvider" + } + }, + { + "name": "updateFCMProvider", + "namespace": "messaging", + "desc": "", + "auth": { + "Project": [] + }, + "parameters": [ + "providerId", + "name", + "enabled", + "serviceAccountJSON" + ], + "required": [ + "providerId" + ], + "responses": [ + { + "code": 200, + "model": "#\/components\/schemas\/provider" + } + ], + "description": "Update a Firebase Cloud Messaging provider by its unique ID.", + "demo": "messaging\/update-fcm-provider.md", + "public": true + } + ], "auth": { "Project": [] } @@ -33113,24 +34669,66 @@ "Project": [], "Key": [] } - ] + ], + "parameters": [ + { + "name": "providerId", + "description": "Provider ID.", + "required": true, + "schema": { + "type": "string", + "x-example": "<PROVIDER_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "Provider name.", + "default": "", + "x-example": "<NAME>" + }, + "enabled": { + "type": "boolean", + "description": "Set as enabled.", + "x-example": false, + "x-nullable": true + }, + "serviceAccountJSON": { + "type": "object", + "description": "FCM service account JSON.", + "default": {}, + "x-example": "{}", + "x-nullable": true + } + } + } + } + } + } } }, - "\/locale": { - "get": { - "summary": "Get user locale", - "operationId": "localeGet", + "\/messaging\/providers\/mailgun": { + "post": { + "summary": "Create Mailgun provider", + "operationId": "messagingCreateMailgunProvider", "tags": [ - "locale" + "messaging" ], - "description": "Get the current user location based on IP. Returns an object with user country code, country name, continent name, continent code, ip address and suggested currency. You can use the locale header to get the data in a supported language.\n\n([IP Geolocation by DB-IP](https:\/\/db-ip.com))", + "description": "Create a new Mailgun provider.", "responses": { - "200": { - "description": "Locale", + "201": { + "description": "Provider", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/cloudLocale" + "$ref": "#\/components\/schemas\/provider" } } } @@ -33138,23 +34736,22 @@ }, "deprecated": false, "x-appwrite": { - "method": "get", - "group": null, + "method": "createMailgunProvider", + "group": "providers", "cookies": false, "type": "", - "demo": "locale\/get.md", + "demo": "messaging\/create-mailgun-provider.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "locale.read", + "scope": "providers.write", "platforms": [ "console", - "client", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/locale\/get-locale.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/messaging\/create-mailgun-provider.md", "auth": { "Project": [] } @@ -33162,81 +34759,104 @@ "security": [ { "Project": [], - "Session": [], - "Key": [], - "JWT": [] + "Key": [] } - ] - } - }, - "\/locale\/codes": { - "get": { - "summary": "List locale codes", - "operationId": "localeListCodes", - "tags": [ - "locale" ], - "description": "List of all locale codes in [ISO 639-1](https:\/\/en.wikipedia.org\/wiki\/List_of_ISO_639-1_codes).", - "responses": { - "200": { - "description": "Locale codes list", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/localeCodeList" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "method": "listCodes", - "group": null, - "cookies": false, - "type": "", - "demo": "locale\/list-codes.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "locale.read", - "platforms": [ - "console", - "client", - "server" - ], - "packaging": false, - "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/locale\/list-locale-codes.md", - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Session": [], - "Key": [], - "JWT": [] + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "providerId": { + "type": "string", + "description": "Provider ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.", + "x-example": "<PROVIDER_ID>", + "x-appwrite": { + "idGenerator": "ID.unique" + } + }, + "name": { + "type": "string", + "description": "Provider name.", + "x-example": "<NAME>" + }, + "apiKey": { + "type": "string", + "description": "Mailgun API Key.", + "default": "", + "x-example": "<API_KEY>" + }, + "domain": { + "type": "string", + "description": "Mailgun Domain.", + "default": "", + "x-example": "<DOMAIN>" + }, + "isEuRegion": { + "type": "boolean", + "description": "Set as EU region.", + "x-example": false, + "x-nullable": true + }, + "fromName": { + "type": "string", + "description": "Sender Name.", + "default": "", + "x-example": "<FROM_NAME>" + }, + "fromEmail": { + "type": "string", + "description": "Sender email address.", + "default": "", + "x-example": "email@example.com", + "format": "email" + }, + "replyToName": { + "type": "string", + "description": "Name set in the reply to field for the mail. Default value is sender name. Reply to name must have reply to email as well.", + "default": "", + "x-example": "<REPLY_TO_NAME>" + }, + "replyToEmail": { + "type": "string", + "description": "Email set in the reply to field for the mail. Default value is sender email. Reply to email must have reply to name as well.", + "default": "", + "x-example": "email@example.com", + "format": "email" + }, + "enabled": { + "type": "boolean", + "description": "Set as enabled.", + "x-example": false, + "x-nullable": true + } + }, + "required": [ + "providerId", + "name" + ] + } + } } - ] + } } }, - "\/locale\/continents": { - "get": { - "summary": "List continents", - "operationId": "localeListContinents", + "\/messaging\/providers\/mailgun\/{providerId}": { + "patch": { + "summary": "Update Mailgun provider", + "operationId": "messagingUpdateMailgunProvider", "tags": [ - "locale" + "messaging" ], - "description": "List of all continents. You can use the locale header to get the data in a supported language.", + "description": "Update a Mailgun provider by its unique ID.", "responses": { "200": { - "description": "Continents List", + "description": "Provider", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/continentList" + "$ref": "#\/components\/schemas\/provider" } } } @@ -33244,23 +34864,22 @@ }, "deprecated": false, "x-appwrite": { - "method": "listContinents", - "group": null, + "method": "updateMailgunProvider", + "group": "providers", "cookies": false, "type": "", - "demo": "locale\/list-continents.md", + "demo": "messaging\/update-mailgun-provider.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "locale.read", + "scope": "providers.write", "platforms": [ "console", - "client", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/locale\/list-continents.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/messaging\/update-mailgun-provider.md", "auth": { "Project": [] } @@ -33268,28 +34887,104 @@ "security": [ { "Project": [], - "Session": [], - "Key": [], - "JWT": [] + "Key": [] } - ] + ], + "parameters": [ + { + "name": "providerId", + "description": "Provider ID.", + "required": true, + "schema": { + "type": "string", + "x-example": "<PROVIDER_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "Provider name.", + "default": "", + "x-example": "<NAME>" + }, + "apiKey": { + "type": "string", + "description": "Mailgun API Key.", + "default": "", + "x-example": "<API_KEY>" + }, + "domain": { + "type": "string", + "description": "Mailgun Domain.", + "default": "", + "x-example": "<DOMAIN>" + }, + "isEuRegion": { + "type": "boolean", + "description": "Set as EU region.", + "x-example": false, + "x-nullable": true + }, + "enabled": { + "type": "boolean", + "description": "Set as enabled.", + "x-example": false, + "x-nullable": true + }, + "fromName": { + "type": "string", + "description": "Sender Name.", + "default": "", + "x-example": "<FROM_NAME>" + }, + "fromEmail": { + "type": "string", + "description": "Sender email address.", + "default": "", + "x-example": "email@example.com", + "format": "email" + }, + "replyToName": { + "type": "string", + "description": "Name set in the reply to field for the mail. Default value is sender name.", + "default": "", + "x-example": "<REPLY_TO_NAME>" + }, + "replyToEmail": { + "type": "string", + "description": "Email set in the reply to field for the mail. Default value is sender email.", + "default": "", + "x-example": "<REPLY_TO_EMAIL>" + } + } + } + } + } + } } }, - "\/locale\/countries": { - "get": { - "summary": "List countries", - "operationId": "localeListCountries", + "\/messaging\/providers\/msg91": { + "post": { + "summary": "Create Msg91 provider", + "operationId": "messagingCreateMsg91Provider", "tags": [ - "locale" + "messaging" ], - "description": "List of all countries. You can use the locale header to get the data in a supported language.", + "description": "Create a new MSG91 provider.", "responses": { - "200": { - "description": "Countries List", + "201": { + "description": "Provider", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/countryList" + "$ref": "#\/components\/schemas\/provider" } } } @@ -33297,23 +34992,22 @@ }, "deprecated": false, "x-appwrite": { - "method": "listCountries", - "group": null, + "method": "createMsg91Provider", + "group": "providers", "cookies": false, "type": "", - "demo": "locale\/list-countries.md", + "demo": "messaging\/create-msg-91-provider.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "locale.read", + "scope": "providers.write", "platforms": [ "console", - "client", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/locale\/list-countries.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/messaging\/create-msg91-provider.md", "auth": { "Project": [] } @@ -33321,28 +35015,78 @@ "security": [ { "Project": [], - "Session": [], - "Key": [], - "JWT": [] + "Key": [] } - ] + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "providerId": { + "type": "string", + "description": "Provider ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.", + "x-example": "<PROVIDER_ID>", + "x-appwrite": { + "idGenerator": "ID.unique" + } + }, + "name": { + "type": "string", + "description": "Provider name.", + "x-example": "<NAME>" + }, + "templateId": { + "type": "string", + "description": "Msg91 template ID", + "default": "", + "x-example": "<TEMPLATE_ID>" + }, + "senderId": { + "type": "string", + "description": "Msg91 sender ID.", + "default": "", + "x-example": "<SENDER_ID>" + }, + "authKey": { + "type": "string", + "description": "Msg91 auth key.", + "default": "", + "x-example": "<AUTH_KEY>" + }, + "enabled": { + "type": "boolean", + "description": "Set as enabled.", + "x-example": false, + "x-nullable": true + } + }, + "required": [ + "providerId", + "name" + ] + } + } + } + } } }, - "\/locale\/countries\/eu": { - "get": { - "summary": "List EU countries", - "operationId": "localeListCountriesEU", + "\/messaging\/providers\/msg91\/{providerId}": { + "patch": { + "summary": "Update Msg91 provider", + "operationId": "messagingUpdateMsg91Provider", "tags": [ - "locale" + "messaging" ], - "description": "List of all countries that are currently members of the EU. You can use the locale header to get the data in a supported language.", + "description": "Update a MSG91 provider by its unique ID.", "responses": { "200": { - "description": "Countries List", + "description": "Provider", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/countryList" + "$ref": "#\/components\/schemas\/provider" } } } @@ -33350,23 +35094,22 @@ }, "deprecated": false, "x-appwrite": { - "method": "listCountriesEU", - "group": null, + "method": "updateMsg91Provider", + "group": "providers", "cookies": false, "type": "", - "demo": "locale\/list-countries-eu.md", + "demo": "messaging\/update-msg-91-provider.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "locale.read", + "scope": "providers.write", "platforms": [ "console", - "client", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/locale\/list-countries-eu.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/messaging\/update-msg91-provider.md", "auth": { "Project": [] } @@ -33374,28 +35117,79 @@ "security": [ { "Project": [], - "Session": [], - "Key": [], - "JWT": [] + "Key": [] } - ] + ], + "parameters": [ + { + "name": "providerId", + "description": "Provider ID.", + "required": true, + "schema": { + "type": "string", + "x-example": "<PROVIDER_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "Provider name.", + "default": "", + "x-example": "<NAME>" + }, + "enabled": { + "type": "boolean", + "description": "Set as enabled.", + "x-example": false, + "x-nullable": true + }, + "templateId": { + "type": "string", + "description": "Msg91 template ID.", + "default": "", + "x-example": "<TEMPLATE_ID>" + }, + "senderId": { + "type": "string", + "description": "Msg91 sender ID.", + "default": "", + "x-example": "<SENDER_ID>" + }, + "authKey": { + "type": "string", + "description": "Msg91 auth key.", + "default": "", + "x-example": "<AUTH_KEY>" + } + } + } + } + } + } } }, - "\/locale\/countries\/phones": { - "get": { - "summary": "List countries phone codes", - "operationId": "localeListCountriesPhones", + "\/messaging\/providers\/resend": { + "post": { + "summary": "Create Resend provider", + "operationId": "messagingCreateResendProvider", "tags": [ - "locale" + "messaging" ], - "description": "List of all countries phone codes. You can use the locale header to get the data in a supported language.", + "description": "Create a new Resend provider.", "responses": { - "200": { - "description": "Phones List", + "201": { + "description": "Provider", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/phoneList" + "$ref": "#\/components\/schemas\/provider" } } } @@ -33403,23 +35197,22 @@ }, "deprecated": false, "x-appwrite": { - "method": "listCountriesPhones", - "group": null, + "method": "createResendProvider", + "group": "providers", "cookies": false, "type": "", - "demo": "locale\/list-countries-phones.md", + "demo": "messaging\/create-resend-provider.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "locale.read", + "scope": "providers.write", "platforms": [ "console", - "client", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/locale\/list-countries-phones.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/messaging\/create-resend-provider.md", "auth": { "Project": [] } @@ -33427,28 +35220,92 @@ "security": [ { "Project": [], - "Session": [], - "Key": [], - "JWT": [] + "Key": [] } - ] + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "providerId": { + "type": "string", + "description": "Provider ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.", + "x-example": "<PROVIDER_ID>", + "x-appwrite": { + "idGenerator": "ID.unique" + } + }, + "name": { + "type": "string", + "description": "Provider name.", + "x-example": "<NAME>" + }, + "apiKey": { + "type": "string", + "description": "Resend API key.", + "default": "", + "x-example": "<API_KEY>" + }, + "fromName": { + "type": "string", + "description": "Sender Name.", + "default": "", + "x-example": "<FROM_NAME>" + }, + "fromEmail": { + "type": "string", + "description": "Sender email address.", + "default": "", + "x-example": "email@example.com", + "format": "email" + }, + "replyToName": { + "type": "string", + "description": "Name set in the reply to field for the mail. Default value is sender name.", + "default": "", + "x-example": "<REPLY_TO_NAME>" + }, + "replyToEmail": { + "type": "string", + "description": "Email set in the reply to field for the mail. Default value is sender email.", + "default": "", + "x-example": "email@example.com", + "format": "email" + }, + "enabled": { + "type": "boolean", + "description": "Set as enabled.", + "x-example": false, + "x-nullable": true + } + }, + "required": [ + "providerId", + "name" + ] + } + } + } + } } }, - "\/locale\/currencies": { - "get": { - "summary": "List currencies", - "operationId": "localeListCurrencies", + "\/messaging\/providers\/resend\/{providerId}": { + "patch": { + "summary": "Update Resend provider", + "operationId": "messagingUpdateResendProvider", "tags": [ - "locale" + "messaging" ], - "description": "List of all currencies, including currency symbol, name, plural, and decimal digits for all major and minor currencies. You can use the locale header to get the data in a supported language.", + "description": "Update a Resend provider by its unique ID.", "responses": { "200": { - "description": "Currencies List", + "description": "Provider", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/currencyList" + "$ref": "#\/components\/schemas\/provider" } } } @@ -33456,23 +35313,22 @@ }, "deprecated": false, "x-appwrite": { - "method": "listCurrencies", - "group": null, + "method": "updateResendProvider", + "group": "providers", "cookies": false, "type": "", - "demo": "locale\/list-currencies.md", + "demo": "messaging\/update-resend-provider.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "locale.read", + "scope": "providers.write", "platforms": [ "console", - "client", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/locale\/list-currencies.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/messaging\/update-resend-provider.md", "auth": { "Project": [] } @@ -33480,28 +35336,92 @@ "security": [ { "Project": [], - "Session": [], - "Key": [], - "JWT": [] + "Key": [] } - ] - } - }, - "\/locale\/languages": { - "get": { - "summary": "List languages", - "operationId": "localeListLanguages", + ], + "parameters": [ + { + "name": "providerId", + "description": "Provider ID.", + "required": true, + "schema": { + "type": "string", + "x-example": "<PROVIDER_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "Provider name.", + "default": "", + "x-example": "<NAME>" + }, + "enabled": { + "type": "boolean", + "description": "Set as enabled.", + "x-example": false, + "x-nullable": true + }, + "apiKey": { + "type": "string", + "description": "Resend API key.", + "default": "", + "x-example": "<API_KEY>" + }, + "fromName": { + "type": "string", + "description": "Sender Name.", + "default": "", + "x-example": "<FROM_NAME>" + }, + "fromEmail": { + "type": "string", + "description": "Sender email address.", + "default": "", + "x-example": "email@example.com", + "format": "email" + }, + "replyToName": { + "type": "string", + "description": "Name set in the Reply To field for the mail. Default value is Sender Name.", + "default": "", + "x-example": "<REPLY_TO_NAME>" + }, + "replyToEmail": { + "type": "string", + "description": "Email set in the Reply To field for the mail. Default value is Sender Email.", + "default": "", + "x-example": "<REPLY_TO_EMAIL>" + } + } + } + } + } + } + } + }, + "\/messaging\/providers\/sendgrid": { + "post": { + "summary": "Create Sendgrid provider", + "operationId": "messagingCreateSendgridProvider", "tags": [ - "locale" + "messaging" ], - "description": "List of all languages classified by ISO 639-1 including 2-letter code, name in English, and name in the respective language.", + "description": "Create a new Sendgrid provider.", "responses": { - "200": { - "description": "Languages List", + "201": { + "description": "Provider", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/languageList" + "$ref": "#\/components\/schemas\/provider" } } } @@ -33509,23 +35429,22 @@ }, "deprecated": false, "x-appwrite": { - "method": "listLanguages", - "group": null, + "method": "createSendgridProvider", + "group": "providers", "cookies": false, "type": "", - "demo": "locale\/list-languages.md", + "demo": "messaging\/create-sendgrid-provider.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "locale.read", + "scope": "providers.write", "platforms": [ "console", - "client", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/locale\/list-languages.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/messaging\/create-sendgrid-provider.md", "auth": { "Project": [] } @@ -33533,28 +35452,92 @@ "security": [ { "Project": [], - "Session": [], - "Key": [], - "JWT": [] + "Key": [] } - ] + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "providerId": { + "type": "string", + "description": "Provider ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.", + "x-example": "<PROVIDER_ID>", + "x-appwrite": { + "idGenerator": "ID.unique" + } + }, + "name": { + "type": "string", + "description": "Provider name.", + "x-example": "<NAME>" + }, + "apiKey": { + "type": "string", + "description": "Sendgrid API key.", + "default": "", + "x-example": "<API_KEY>" + }, + "fromName": { + "type": "string", + "description": "Sender Name.", + "default": "", + "x-example": "<FROM_NAME>" + }, + "fromEmail": { + "type": "string", + "description": "Sender email address.", + "default": "", + "x-example": "email@example.com", + "format": "email" + }, + "replyToName": { + "type": "string", + "description": "Name set in the reply to field for the mail. Default value is sender name.", + "default": "", + "x-example": "<REPLY_TO_NAME>" + }, + "replyToEmail": { + "type": "string", + "description": "Email set in the reply to field for the mail. Default value is sender email.", + "default": "", + "x-example": "email@example.com", + "format": "email" + }, + "enabled": { + "type": "boolean", + "description": "Set as enabled.", + "x-example": false, + "x-nullable": true + } + }, + "required": [ + "providerId", + "name" + ] + } + } + } + } } }, - "\/manager\/blocks": { - "post": { - "summary": "Create a new resource block for a project", - "operationId": "managerCreateBlock", + "\/messaging\/providers\/sendgrid\/{providerId}": { + "patch": { + "summary": "Update Sendgrid provider", + "operationId": "messagingUpdateSendgridProvider", "tags": [ - "manager" + "messaging" ], - "description": "Creates a new resource block.", + "description": "Update a Sendgrid provider by its unique ID.", "responses": { - "201": { - "description": "Block", + "200": { + "description": "Provider", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/block" + "$ref": "#\/components\/schemas\/provider" } } } @@ -33562,118 +35545,115 @@ }, "deprecated": false, "x-appwrite": { - "method": "createBlock", - "group": null, + "method": "updateSendgridProvider", + "group": "providers", "cookies": false, "type": "", - "demo": "manager\/create-block.md", + "demo": "messaging\/update-sendgrid-provider.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "", + "scope": "providers.write", "platforms": [ - "console" + "console", + "server" ], "packaging": false, - "public": true + "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/messaging\/update-sendgrid-provider.md", + "auth": { + "Project": [] + } }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "providerId", + "description": "Provider ID.", + "required": true, + "schema": { + "type": "string", + "x-example": "<PROVIDER_ID>" + }, + "in": "path" + } + ], "requestBody": { "content": { "application\/json": { "schema": { "type": "object", "properties": { - "projectId": { + "name": { "type": "string", - "description": "Project ID", - "x-example": "<PROJECT_ID>" + "description": "Provider name.", + "default": "", + "x-example": "<NAME>" }, - "resourceType": { + "enabled": { + "type": "boolean", + "description": "Set as enabled.", + "x-example": false, + "x-nullable": true + }, + "apiKey": { "type": "string", - "description": "Resource type to block (e.g., projects, functions, databases, storage, etc.)", - "x-example": "projects", - "enum": [ - "projects", - "functions", - "sites", - "databases", - "buckets", - "providers", - "topics", - "subscribers", - "messages" - ], - "x-enum-name": "BlockResourceType", - "x-enum-keys": [ - "projects", - "functions", - "sites", - "databases", - "buckets", - "providers", - "topics", - "subscribers", - "messages" - ] + "description": "Sendgrid API key.", + "default": "", + "x-example": "<API_KEY>" }, - "resourceId": { + "fromName": { "type": "string", - "description": "Optional resource ID (if omitted, all resources of this type will be blocked)", + "description": "Sender Name.", "default": "", - "x-example": "<RESOURCE_ID>" + "x-example": "<FROM_NAME>" }, - "mode": { + "fromEmail": { "type": "string", - "description": "Block mode. Use full to block reads and writes, or readOnly to block database writes only.", - "default": "full", - "x-example": "full", - "enum": [ - "full", - "readonly" - ], - "x-enum-name": "BlockMode", - "x-enum-keys": [ - "full", - "readonly" - ] + "description": "Sender email address.", + "default": "", + "x-example": "email@example.com", + "format": "email" }, - "reason": { + "replyToName": { "type": "string", - "description": "Optional reason why the resource is blocked", + "description": "Name set in the Reply To field for the mail. Default value is Sender Name.", "default": "", - "x-example": "<REASON>" + "x-example": "<REPLY_TO_NAME>" }, - "expiredAt": { + "replyToEmail": { "type": "string", - "description": "Optional expiration date for the block", + "description": "Email set in the Reply To field for the mail. Default value is Sender Email.", "default": "", - "x-example": "2020-10-15T06:38:00.000+00:00", - "format": "datetime" + "x-example": "<REPLY_TO_EMAIL>" } - }, - "required": [ - "projectId", - "resourceType" - ] + } } } } } - }, - "delete": { - "summary": "Delete resource blocks for a project", - "operationId": "managerDeleteBlock", + } + }, + "\/messaging\/providers\/ses": { + "post": { + "summary": "Create Amazon SES provider", + "operationId": "messagingCreateSesProvider", "tags": [ - "manager" + "messaging" ], - "description": "Deletes resource blocks for a project.", + "description": "Create a new Amazon SES provider.", "responses": { - "200": { - "description": "BlockDelete", + "201": { + "description": "Provider", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/blockDelete" + "$ref": "#\/components\/schemas\/provider" } } } @@ -33681,94 +35661,127 @@ }, "deprecated": false, "x-appwrite": { - "method": "deleteBlock", - "group": null, + "method": "createSesProvider", + "group": "providers", "cookies": false, "type": "", - "demo": "manager\/delete-block.md", + "demo": "messaging\/create-ses-provider.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "", + "scope": "providers.write", "platforms": [ - "console" + "console", + "server" ], "packaging": false, - "public": true + "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/messaging\/create-ses-provider.md", + "auth": { + "Project": [] + } }, - "parameters": [ - { - "name": "projectId", - "description": "Project ID", - "required": true, - "schema": { - "type": "string", - "x-example": "<PROJECT_ID>" - }, - "in": "query" - }, - { - "name": "resourceType", - "description": "Resource type to unblock", - "required": true, - "schema": { - "type": "string", - "x-example": "projects", - "enum": [ - "projects", - "functions", - "sites", - "databases", - "buckets", - "providers", - "topics", - "subscribers", - "messages" - ], - "x-enum-name": "BlockResourceType", - "x-enum-keys": [ - "projects", - "functions", - "sites", - "databases", - "buckets", - "providers", - "topics", - "subscribers", - "messages" - ] - }, - "in": "query" - }, + "security": [ { - "name": "resourceId", - "description": "Optional resource ID (if omitted, all blocks of this type will be removed)", - "required": false, - "schema": { - "type": "string", - "x-example": "<RESOURCE_ID>", - "default": "" - }, - "in": "query" + "Project": [], + "Key": [] } - ] + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "providerId": { + "type": "string", + "description": "Provider ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.", + "x-example": "<PROVIDER_ID>", + "x-appwrite": { + "idGenerator": "ID.unique" + } + }, + "name": { + "type": "string", + "description": "Provider name.", + "x-example": "<NAME>" + }, + "accessKey": { + "type": "string", + "description": "AWS access key ID.", + "default": "", + "x-example": "<ACCESS_KEY>" + }, + "secretKey": { + "type": "string", + "description": "AWS secret access key.", + "default": "", + "x-example": "<SECRET_KEY>" + }, + "region": { + "type": "string", + "description": "AWS region, for example us-east-1.", + "default": "", + "x-example": "<REGION>" + }, + "fromName": { + "type": "string", + "description": "Sender Name.", + "default": "", + "x-example": "<FROM_NAME>" + }, + "fromEmail": { + "type": "string", + "description": "Sender email address.", + "default": "", + "x-example": "email@example.com", + "format": "email" + }, + "replyToName": { + "type": "string", + "description": "Name set in the reply to field for the mail. Default value is sender name.", + "default": "", + "x-example": "<REPLY_TO_NAME>" + }, + "replyToEmail": { + "type": "string", + "description": "Email set in the reply to field for the mail. Default value is sender email.", + "default": "", + "x-example": "email@example.com", + "format": "email" + }, + "enabled": { + "type": "boolean", + "description": "Set as enabled.", + "x-example": false, + "x-nullable": true + } + }, + "required": [ + "providerId", + "name" + ] + } + } + } + } } }, - "\/manager\/blocks\/{projectId}": { - "get": { - "summary": "List all resource blocks for a project", - "operationId": "managerListBlocks", + "\/messaging\/providers\/ses\/{providerId}": { + "patch": { + "summary": "Update Amazon SES provider", + "operationId": "messagingUpdateSesProvider", "tags": [ - "manager" + "messaging" ], - "description": "Lists all resource blocks for a project.", + "description": "Update an Amazon SES provider by its unique ID.", "responses": { "200": { - "description": "Blocks list", + "description": "Provider", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/blockList" + "$ref": "#\/components\/schemas\/provider" } } } @@ -33776,267 +35789,355 @@ }, "deprecated": false, "x-appwrite": { - "method": "listBlocks", - "group": null, + "method": "updateSesProvider", + "group": "providers", "cookies": false, "type": "", - "demo": "manager\/list-blocks.md", + "demo": "messaging\/update-ses-provider.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "", + "scope": "providers.write", "platforms": [ - "console" + "console", + "server" ], "packaging": false, - "public": true - }, - "parameters": [ + "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/messaging\/update-ses-provider.md", + "auth": { + "Project": [] + } + }, + "security": [ { - "name": "projectId", - "description": "Project ID", + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "providerId", + "description": "Provider ID.", "required": true, "schema": { "type": "string", - "x-example": "<PROJECT_ID>" + "x-example": "<PROVIDER_ID>" }, "in": "path" } - ] + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "Provider name.", + "default": "", + "x-example": "<NAME>" + }, + "enabled": { + "type": "boolean", + "description": "Set as enabled.", + "x-example": false, + "x-nullable": true + }, + "accessKey": { + "type": "string", + "description": "AWS access key ID.", + "default": "", + "x-example": "<ACCESS_KEY>" + }, + "secretKey": { + "type": "string", + "description": "AWS secret access key.", + "default": "", + "x-example": "<SECRET_KEY>" + }, + "region": { + "type": "string", + "description": "AWS region, for example us-east-1.", + "default": "", + "x-example": "<REGION>" + }, + "fromName": { + "type": "string", + "description": "Sender Name.", + "default": "", + "x-example": "<FROM_NAME>" + }, + "fromEmail": { + "type": "string", + "description": "Sender email address.", + "default": "", + "x-example": "email@example.com", + "format": "email" + }, + "replyToName": { + "type": "string", + "description": "Name set in the Reply To field for the mail. Default value is Sender Name.", + "default": "", + "x-example": "<REPLY_TO_NAME>" + }, + "replyToEmail": { + "type": "string", + "description": "Email set in the Reply To field for the mail. Default value is Sender Email.", + "default": "", + "x-example": "<REPLY_TO_EMAIL>" + } + } + } + } + } + } } }, - "\/manager\/cache": { - "delete": { - "summary": "Clear internal cache", - "operationId": "managerDeleteCache", + "\/messaging\/providers\/smtp": { + "post": { + "summary": "Create SMTP provider", + "operationId": "messagingCreateSmtpProvider", "tags": [ - "manager" + "messaging" ], - "description": "Clears internal cache.", + "description": "Create a new SMTP provider.", "responses": { - "200": { - "description": "File", + "201": { + "description": "Provider", "content": { "application\/json": { "schema": { - "type": "string", - "format": "binary" + "$ref": "#\/components\/schemas\/provider" } } } } }, - "deprecated": false, + "deprecated": true, "x-appwrite": { - "method": "deleteCache", - "group": "cache", + "method": "createSmtpProvider", + "group": "providers", "cookies": false, "type": "", - "demo": "manager\/delete-cache.md", + "demo": "messaging\/create-smtp-provider.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "", + "scope": "providers.write", "platforms": [ - "console" + "console", + "server" ], "packaging": false, - "public": true - }, - "parameters": [ - { - "name": "region", - "description": "Target region.", - "required": false, - "schema": { - "type": "string", - "x-example": "fra", - "enum": [ - "fra", - "nyc", - "syd", - "sfo", - "sgp", - "tor" - ], - "x-enum-name": "Region", - "x-enum-keys": [ - "fra", - "nyc", - "syd", - "sfo", - "sgp", - "tor" - ] - }, - "in": "query" + "public": false, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/messaging\/create-smtp-provider.md", + "deprecated": { + "since": "1.8.0", + "replaceWith": "messaging.createSMTPProvider" }, - { - "name": "cache", - "description": "Cache target.", - "required": false, - "schema": { - "type": "string", - "x-example": "cache", - "enum": [ - "cache", - "timelimit", - "locks", - "pubsub", - "queue", - "all" + "methods": [ + { + "name": "createSmtpProvider", + "namespace": "messaging", + "desc": "", + "auth": { + "Project": [] + }, + "parameters": [ + "providerId", + "name", + "host", + "port", + "username", + "password", + "encryption", + "autoTLS", + "mailer", + "fromName", + "fromEmail", + "replyToName", + "replyToEmail", + "enabled" ], - "x-enum-name": "CacheTarget", - "x-enum-keys": [ - "cache", - "timelimit", - "locks", - "pubsub", - "queue", - "all" + "required": [ + "providerId", + "name", + "host" ], - "default": "cache" - }, - "in": "query" - }, - { - "name": "all", - "description": "Clear the entire selected cache target.", - "required": false, - "schema": { - "type": "boolean", - "x-example": false, - "default": false + "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" + } }, - "in": "query" - }, - { - "name": "database", - "description": "Database cache scope.", - "required": false, - "schema": { - "type": "string", - "x-example": "console", - "enum": [ - "console", - "project", - "logs" + { + "name": "createSMTPProvider", + "namespace": "messaging", + "desc": "", + "auth": { + "Project": [] + }, + "parameters": [ + "providerId", + "name", + "host", + "port", + "username", + "password", + "encryption", + "autoTLS", + "mailer", + "fromName", + "fromEmail", + "replyToName", + "replyToEmail", + "enabled" ], - "x-enum-name": "CacheDatabase", - "x-enum-keys": [ - "console", - "project", - "logs" + "required": [ + "providerId", + "name", + "host" ], - "default": "console" - }, - "in": "query" - }, - { - "name": "projectId", - "description": "Project ID for project or logs database cache.", - "required": false, - "schema": { - "type": "string", - "x-example": "<PROJECT_ID>", - "default": "" - }, - "in": "query" - }, - { - "name": "collectionId", - "description": "Collection ID.", - "required": false, - "schema": { - "type": "string", - "x-example": "<COLLECTION_ID>", - "default": "" - }, - "in": "query" - }, - { - "name": "documentId", - "description": "Document ID.", - "required": false, - "schema": { - "type": "string", - "x-example": "<DOCUMENT_ID>", - "default": "" - }, - "in": "query" - } - ] - } - }, - "\/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" + "responses": [ + { + "code": 201, + "model": "#\/components\/schemas\/provider" } - } + ], + "description": "Create a new SMTP provider.", + "demo": "messaging\/create-smtp-provider.md", + "public": true } - } - }, - "deprecated": false, - "x-appwrite": { - "method": "updateUserStatus", - "group": "users", - "cookies": false, - "type": "", - "demo": "manager\/update-user-status.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "", - "platforms": [ - "console" ], - "packaging": false, - "public": true + "auth": { + "Project": [] + } }, + "security": [ + { + "Project": [], + "Key": [] + } + ], "requestBody": { "content": { "application\/json": { "schema": { "type": "object", "properties": { - "userId": { + "providerId": { "type": "string", - "description": "User ID.", + "description": "Provider ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.", + "x-example": "<PROVIDER_ID>", + "x-appwrite": { + "idGenerator": "ID.unique" + } + }, + "name": { + "type": "string", + "description": "Provider name.", + "x-example": "<NAME>" + }, + "host": { + "type": "string", + "description": "SMTP hosts. Either a single hostname or multiple semicolon-delimited hostnames. You can also specify a different port for each host such as `smtp1.example.com:25;smtp2.example.com`. You can also specify encryption type, for example: `tls:\/\/smtp1.example.com:587;ssl:\/\/smtp2.example.com:465\"`. Hosts will be tried in order.", + "x-example": "<HOST>" + }, + "port": { + "type": "integer", + "description": "The default SMTP server port.", + "default": 587, + "x-example": 1, + "format": "int32" + }, + "username": { + "type": "string", + "description": "Authentication username.", "default": "", - "x-example": "<USER_ID>" + "x-example": "<USERNAME>" }, - "email": { + "password": { "type": "string", - "description": "User email address.", + "description": "Authentication password.", "default": "", - "x-example": "<EMAIL>" + "x-example": "password", + "format": "password" }, - "status": { + "encryption": { + "type": "string", + "description": "Encryption type. Can be omitted, 'ssl', or 'tls'", + "x-example": "none", + "enum": [ + "none", + "ssl", + "tls" + ], + "x-enum-name": "SmtpEncryption", + "x-enum-keys": [ + "none", + "ssl", + "tls" + ] + }, + "autoTLS": { "type": "boolean", - "description": "User status. Set to `false` to block and `true` to unblock.", + "description": "Enable SMTP AutoTLS feature.", + "default": true, "x-example": false }, - "reason": { + "mailer": { "type": "string", - "description": "Optional reason when blocking a user. Accepted for parity with the CLI task but not persisted.", + "description": "The value to use for the X-Mailer header.", "default": "", - "x-example": "<REASON>" + "x-example": "<MAILER>" + }, + "fromName": { + "type": "string", + "description": "Sender Name.", + "default": "", + "x-example": "<FROM_NAME>" + }, + "fromEmail": { + "type": "string", + "description": "Sender email address.", + "default": "", + "x-example": "email@example.com", + "format": "email" + }, + "replyToName": { + "type": "string", + "description": "Name set in the reply to field for the mail. Default value is sender name.", + "default": "", + "x-example": "<REPLY_TO_NAME>" + }, + "replyToEmail": { + "type": "string", + "description": "Email set in the reply to field for the mail. Default value is sender email.", + "default": "", + "x-example": "email@example.com", + "format": "email" + }, + "enabled": { + "type": "boolean", + "description": "Set as enabled.", + "x-example": false, + "x-nullable": true } }, "required": [ - "status" + "providerId", + "name", + "host" ] } } @@ -34044,108 +36145,267 @@ } } }, - "\/messaging\/messages": { - "get": { - "summary": "List messages", - "operationId": "messagingListMessages", + "\/messaging\/providers\/smtp\/{providerId}": { + "patch": { + "summary": "Update SMTP provider", + "operationId": "messagingUpdateSmtpProvider", "tags": [ "messaging" ], - "description": "Get a list of all messages from the current Appwrite project.", + "description": "Update a SMTP provider by its unique ID.", "responses": { "200": { - "description": "Message list", + "description": "Provider", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/messageList" + "$ref": "#\/components\/schemas\/provider" } } } } }, - "deprecated": false, + "deprecated": true, "x-appwrite": { - "method": "listMessages", - "group": "messages", + "method": "updateSmtpProvider", + "group": "providers", "cookies": false, "type": "", - "demo": "messaging\/list-messages.md", + "demo": "messaging\/update-smtp-provider.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "messages.read", + "scope": "providers.write", "platforms": [ "console", "server" ], "packaging": false, - "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/messaging\/list-messages.md", - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "queries", - "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/queries). Maximum of 100 queries are allowed, each 4096 characters long. You may filter on the following attributes: scheduledAt, deliveredAt, deliveredTotal, status, description, providerType", - "required": false, - "schema": { - "type": "array", - "items": { - "type": "string" - }, - "default": [] - }, - "in": "query" - }, - { - "name": "search", - "description": "Search term to filter your list results. Max length: 256 chars.", - "required": false, - "schema": { - "type": "string", - "x-example": "<SEARCH>", - "default": "" - }, - "in": "query" + "public": false, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/messaging\/update-smtp-provider.md", + "deprecated": { + "since": "1.8.0", + "replaceWith": "messaging.updateSMTPProvider" }, + "methods": [ + { + "name": "updateSmtpProvider", + "namespace": "messaging", + "desc": "", + "auth": { + "Project": [] + }, + "parameters": [ + "providerId", + "name", + "host", + "port", + "username", + "password", + "encryption", + "autoTLS", + "mailer", + "fromName", + "fromEmail", + "replyToName", + "replyToEmail", + "enabled" + ], + "required": [ + "providerId" + ], + "responses": [ + { + "code": 200, + "model": "#\/components\/schemas\/provider" + } + ], + "description": "Update a SMTP provider by its unique ID.", + "demo": "messaging\/update-smtp-provider.md", + "public": false, + "deprecated": { + "since": "1.8.0", + "replaceWith": "messaging.updateSMTPProvider" + } + }, + { + "name": "updateSMTPProvider", + "namespace": "messaging", + "desc": "", + "auth": { + "Project": [] + }, + "parameters": [ + "providerId", + "name", + "host", + "port", + "username", + "password", + "encryption", + "autoTLS", + "mailer", + "fromName", + "fromEmail", + "replyToName", + "replyToEmail", + "enabled" + ], + "required": [ + "providerId" + ], + "responses": [ + { + "code": 200, + "model": "#\/components\/schemas\/provider" + } + ], + "description": "Update a SMTP provider by its unique ID.", + "demo": "messaging\/update-smtp-provider.md", + "public": true + } + ], + "auth": { + "Project": [] + } + }, + "security": [ { - "name": "total", - "description": "When set to false, the total count returned will be 0 and will not be calculated.", - "required": false, + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "providerId", + "description": "Provider ID.", + "required": true, "schema": { - "type": "boolean", - "x-example": false, - "default": true + "type": "string", + "x-example": "<PROVIDER_ID>" }, - "in": "query" + "in": "path" } - ] + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "Provider name.", + "default": "", + "x-example": "<NAME>" + }, + "host": { + "type": "string", + "description": "SMTP hosts. Either a single hostname or multiple semicolon-delimited hostnames. You can also specify a different port for each host such as `smtp1.example.com:25;smtp2.example.com`. You can also specify encryption type, for example: `tls:\/\/smtp1.example.com:587;ssl:\/\/smtp2.example.com:465\"`. Hosts will be tried in order.", + "default": "", + "x-example": "<HOST>" + }, + "port": { + "type": "integer", + "description": "SMTP port.", + "x-example": 1, + "format": "int32", + "x-nullable": true + }, + "username": { + "type": "string", + "description": "Authentication username.", + "default": "", + "x-example": "<USERNAME>" + }, + "password": { + "type": "string", + "description": "Authentication password.", + "default": "", + "x-example": "password", + "format": "password" + }, + "encryption": { + "type": "string", + "description": "Encryption type. Can be 'ssl' or 'tls'", + "x-example": "none", + "enum": [ + "none", + "ssl", + "tls" + ], + "x-enum-name": "SmtpEncryption", + "x-enum-keys": [ + "none", + "ssl", + "tls" + ] + }, + "autoTLS": { + "type": "boolean", + "description": "Enable SMTP AutoTLS feature.", + "x-example": false, + "x-nullable": true + }, + "mailer": { + "type": "string", + "description": "The value to use for the X-Mailer header.", + "default": "", + "x-example": "<MAILER>" + }, + "fromName": { + "type": "string", + "description": "Sender Name.", + "default": "", + "x-example": "<FROM_NAME>" + }, + "fromEmail": { + "type": "string", + "description": "Sender email address.", + "default": "", + "x-example": "email@example.com", + "format": "email" + }, + "replyToName": { + "type": "string", + "description": "Name set in the Reply To field for the mail. Default value is Sender Name.", + "default": "", + "x-example": "<REPLY_TO_NAME>" + }, + "replyToEmail": { + "type": "string", + "description": "Email set in the Reply To field for the mail. Default value is Sender Email.", + "default": "", + "x-example": "<REPLY_TO_EMAIL>" + }, + "enabled": { + "type": "boolean", + "description": "Set as enabled.", + "x-example": false, + "x-nullable": true + } + } + } + } + } + } } }, - "\/messaging\/messages\/email": { + "\/messaging\/providers\/telesign": { "post": { - "summary": "Create email", - "operationId": "messagingCreateEmail", + "summary": "Create Telesign provider", + "operationId": "messagingCreateTelesignProvider", "tags": [ "messaging" ], - "description": "Create a new email message.", + "description": "Create a new Telesign provider.", "responses": { "201": { - "description": "Message", + "description": "Provider", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/message" + "$ref": "#\/components\/schemas\/provider" } } } @@ -34153,22 +36413,22 @@ }, "deprecated": false, "x-appwrite": { - "method": "createEmail", - "group": "messages", + "method": "createTelesignProvider", + "group": "providers", "cookies": false, "type": "", - "demo": "messaging\/create-email.md", + "demo": "messaging\/create-telesign-provider.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "messages.write", + "scope": "providers.write", "platforms": [ "console", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/messaging\/create-email.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/messaging\/create-telesign-provider.md", "auth": { "Project": [] } @@ -34185,102 +36445,48 @@ "schema": { "type": "object", "properties": { - "messageId": { + "providerId": { "type": "string", - "description": "Message ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.", - "x-example": "<MESSAGE_ID>", + "description": "Provider ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.", + "x-example": "<PROVIDER_ID>", "x-appwrite": { "idGenerator": "ID.unique" } }, - "subject": { + "name": { "type": "string", - "description": "Email Subject.", - "x-example": "<SUBJECT>" + "description": "Provider name.", + "x-example": "<NAME>" }, - "content": { + "from": { "type": "string", - "description": "Email Content.", - "x-example": "<CONTENT>" - }, - "topics": { - "type": "array", - "description": "List of Topic IDs.", - "default": [], - "x-example": null, - "items": { - "type": "string" - } - }, - "users": { - "type": "array", - "description": "List of User IDs.", - "default": [], - "x-example": null, - "items": { - "type": "string" - } - }, - "targets": { - "type": "array", - "description": "List of Targets IDs.", - "default": [], - "x-example": null, - "items": { - "type": "string" - } - }, - "cc": { - "type": "array", - "description": "Array of target IDs to be added as CC.", - "default": [], - "x-example": null, - "items": { - "type": "string" - } - }, - "bcc": { - "type": "array", - "description": "Array of target IDs to be added as BCC.", - "default": [], - "x-example": null, - "items": { - "type": "string" - } + "description": "Sender Phone number. Format this number with a leading '+' and a country code, e.g., +16175551212.", + "default": "", + "x-example": "+12065550100", + "format": "phone" }, - "attachments": { - "type": "array", - "description": "Array of compound ID strings of bucket IDs and file IDs to be attached to the email. They should be formatted as <BUCKET_ID>:<FILE_ID>.", - "default": [], - "x-example": null, - "items": { - "type": "string" - } + "customerId": { + "type": "string", + "description": "Telesign customer ID.", + "default": "", + "x-example": "<CUSTOMER_ID>" }, - "draft": { - "type": "boolean", - "description": "Is message a draft", - "default": false, - "x-example": false + "apiKey": { + "type": "string", + "description": "Telesign API key.", + "default": "", + "x-example": "<API_KEY>" }, - "html": { + "enabled": { "type": "boolean", - "description": "Is content of type HTML", - "default": false, - "x-example": false - }, - "scheduledAt": { - "type": "string", - "description": "Scheduled delivery time for message in [ISO 8601](https:\/\/www.iso.org\/iso-8601-date-and-time-format.html) format. DateTime value must be in future.", - "x-example": "2020-10-15T06:38:00.000+00:00", - "format": "datetime", + "description": "Set as enabled.", + "x-example": false, "x-nullable": true } }, "required": [ - "messageId", - "subject", - "content" + "providerId", + "name" ] } } @@ -34288,21 +36494,21 @@ } } }, - "\/messaging\/messages\/email\/{messageId}": { + "\/messaging\/providers\/telesign\/{providerId}": { "patch": { - "summary": "Update email", - "operationId": "messagingUpdateEmail", + "summary": "Update Telesign provider", + "operationId": "messagingUpdateTelesignProvider", "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", + "description": "Update a Telesign provider by its unique ID.", "responses": { "200": { - "description": "Message", + "description": "Provider", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/message" + "$ref": "#\/components\/schemas\/provider" } } } @@ -34310,22 +36516,22 @@ }, "deprecated": false, "x-appwrite": { - "method": "updateEmail", - "group": "messages", + "method": "updateTelesignProvider", + "group": "providers", "cookies": false, "type": "", - "demo": "messaging\/update-email.md", + "demo": "messaging\/update-telesign-provider.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "messages.write", + "scope": "providers.write", "platforms": [ "console", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/messaging\/update-email.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/messaging\/update-telesign-provider.md", "auth": { "Project": [] } @@ -34338,12 +36544,12 @@ ], "parameters": [ { - "name": "messageId", - "description": "Message ID.", + "name": "providerId", + "description": "Provider ID.", "required": true, "schema": { "type": "string", - "x-example": "<MESSAGE_ID>" + "x-example": "<PROVIDER_ID>" }, "in": "path" } @@ -34354,90 +36560,35 @@ "schema": { "type": "object", "properties": { - "topics": { - "type": "array", - "description": "List of Topic IDs.", - "x-example": null, - "items": { - "type": "string" - }, - "x-nullable": true - }, - "users": { - "type": "array", - "description": "List of User IDs.", - "x-example": null, - "items": { - "type": "string" - }, - "x-nullable": true - }, - "targets": { - "type": "array", - "description": "List of Targets IDs.", - "x-example": null, - "items": { - "type": "string" - }, - "x-nullable": true - }, - "subject": { - "type": "string", - "description": "Email Subject.", - "x-example": "<SUBJECT>", - "x-nullable": true - }, - "content": { + "name": { "type": "string", - "description": "Email Content.", - "x-example": "<CONTENT>", - "x-nullable": true - }, - "draft": { - "type": "boolean", - "description": "Is message a draft", - "x-example": false, - "x-nullable": true + "description": "Provider name.", + "default": "", + "x-example": "<NAME>" }, - "html": { + "enabled": { "type": "boolean", - "description": "Is content of type HTML", + "description": "Set as enabled.", "x-example": false, "x-nullable": true }, - "cc": { - "type": "array", - "description": "Array of target IDs to be added as CC.", - "x-example": null, - "items": { - "type": "string" - }, - "x-nullable": true - }, - "bcc": { - "type": "array", - "description": "Array of target IDs to be added as BCC.", - "x-example": null, - "items": { - "type": "string" - }, - "x-nullable": true + "customerId": { + "type": "string", + "description": "Telesign customer ID.", + "default": "", + "x-example": "<CUSTOMER_ID>" }, - "scheduledAt": { + "apiKey": { "type": "string", - "description": "Scheduled delivery time for message in [ISO 8601](https:\/\/www.iso.org\/iso-8601-date-and-time-format.html) format. DateTime value must be in future.", - "x-example": "2020-10-15T06:38:00.000+00:00", - "format": "datetime", - "x-nullable": true + "description": "Telesign API key.", + "default": "", + "x-example": "<API_KEY>" }, - "attachments": { - "type": "array", - "description": "Array of compound ID strings of bucket IDs and file IDs to be attached to the email. They should be formatted as <BUCKET_ID>:<FILE_ID>.", - "x-example": null, - "items": { - "type": "string" - }, - "x-nullable": true + "from": { + "type": "string", + "description": "Sender number.", + "default": "", + "x-example": "<FROM>" } } } @@ -34446,21 +36597,21 @@ } } }, - "\/messaging\/messages\/push": { + "\/messaging\/providers\/textmagic": { "post": { - "summary": "Create push notification", - "operationId": "messagingCreatePush", + "summary": "Create Textmagic provider", + "operationId": "messagingCreateTextmagicProvider", "tags": [ "messaging" ], - "description": "Create a new push notification.", + "description": "Create a new Textmagic provider.", "responses": { "201": { - "description": "Message", + "description": "Provider", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/message" + "$ref": "#\/components\/schemas\/provider" } } } @@ -34468,22 +36619,22 @@ }, "deprecated": false, "x-appwrite": { - "method": "createPush", - "group": "messages", + "method": "createTextmagicProvider", + "group": "providers", "cookies": false, "type": "", - "demo": "messaging\/create-push.md", + "demo": "messaging\/create-textmagic-provider.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "messages.write", + "scope": "providers.write", "platforms": [ "console", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/messaging\/create-push.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/messaging\/create-textmagic-provider.md", "auth": { "Project": [] } @@ -34500,146 +36651,48 @@ "schema": { "type": "object", "properties": { - "messageId": { + "providerId": { "type": "string", - "description": "Message ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.", - "x-example": "<MESSAGE_ID>", + "description": "Provider ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.", + "x-example": "<PROVIDER_ID>", "x-appwrite": { "idGenerator": "ID.unique" } }, - "title": { + "name": { "type": "string", - "description": "Title for push notification.", - "default": "", - "x-example": "<TITLE>" + "description": "Provider name.", + "x-example": "<NAME>" }, - "body": { + "from": { "type": "string", - "description": "Body for push notification.", + "description": "Sender Phone number. Format this number with a leading '+' and a country code, e.g., +16175551212.", "default": "", - "x-example": "<BODY>" - }, - "topics": { - "type": "array", - "description": "List of Topic IDs.", - "default": [], - "x-example": null, - "items": { - "type": "string" - } - }, - "users": { - "type": "array", - "description": "List of User IDs.", - "default": [], - "x-example": null, - "items": { - "type": "string" - } - }, - "targets": { - "type": "array", - "description": "List of Targets IDs.", - "default": [], - "x-example": null, - "items": { - "type": "string" - } - }, - "data": { - "type": "object", - "description": "Additional key-value pair data for push notification.", - "default": {}, - "x-example": "{}", - "x-nullable": true - }, - "action": { - "type": "string", - "description": "Action for push notification.", - "default": "", - "x-example": "<ACTION>" - }, - "image": { - "type": "string", - "description": "Image for push notification. Must be a compound bucket ID to file ID of a jpeg, png, or bmp image in Appwrite Storage. It should be formatted as <BUCKET_ID>:<FILE_ID>.", - "default": "", - "x-example": "<ID1:ID2>" - }, - "icon": { - "type": "string", - "description": "Icon for push notification. Available only for Android and Web Platform.", - "default": "", - "x-example": "<ICON>" - }, - "sound": { - "type": "string", - "description": "Sound for push notification. Available only for Android and iOS Platform.", - "default": "", - "x-example": "<SOUND>" + "x-example": "+12065550100", + "format": "phone" }, - "color": { + "username": { "type": "string", - "description": "Color for push notification. Available only for Android Platform.", + "description": "Textmagic username.", "default": "", - "x-example": "<COLOR>" + "x-example": "<USERNAME>" }, - "tag": { + "apiKey": { "type": "string", - "description": "Tag for push notification. Available only for Android Platform.", + "description": "Textmagic apiKey.", "default": "", - "x-example": "<TAG>" - }, - "badge": { - "type": "integer", - "description": "Badge for push notification. Available only for iOS Platform.", - "default": -1, - "x-example": null, - "format": "int32" + "x-example": "<API_KEY>" }, - "draft": { + "enabled": { "type": "boolean", - "description": "Is message a draft", - "default": false, - "x-example": false - }, - "scheduledAt": { - "type": "string", - "description": "Scheduled delivery time for message in [ISO 8601](https:\/\/www.iso.org\/iso-8601-date-and-time-format.html) format. DateTime value must be in future.", - "x-example": "2020-10-15T06:38:00.000+00:00", - "format": "datetime", + "description": "Set as enabled.", + "x-example": false, "x-nullable": true - }, - "contentAvailable": { - "type": "boolean", - "description": "If set to true, the notification will be delivered in the background. Available only for iOS Platform.", - "default": false, - "x-example": false - }, - "critical": { - "type": "boolean", - "description": "If set to true, the notification will be marked as critical. This requires the app to have the critical notification entitlement. Available only for iOS Platform.", - "default": false, - "x-example": false - }, - "priority": { - "type": "string", - "description": "Set the notification priority. \"normal\" will consider device state and may not deliver notifications immediately. \"high\" will always attempt to immediately deliver the notification.", - "default": "high", - "x-example": "normal", - "enum": [ - "normal", - "high" - ], - "x-enum-name": "MessagePriority", - "x-enum-keys": [ - "normal", - "high" - ] } }, "required": [ - "messageId" + "providerId", + "name" ] } } @@ -34647,21 +36700,21 @@ } } }, - "\/messaging\/messages\/push\/{messageId}": { + "\/messaging\/providers\/textmagic\/{providerId}": { "patch": { - "summary": "Update push notification", - "operationId": "messagingUpdatePush", + "summary": "Update Textmagic provider", + "operationId": "messagingUpdateTextmagicProvider", "tags": [ "messaging" ], - "description": "Update a push notification by its unique ID. This endpoint only works on messages that are in draft status. Messages that are already processing, sent, or failed cannot be updated.\n", + "description": "Update a Textmagic provider by its unique ID.", "responses": { "200": { - "description": "Message", + "description": "Provider", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/message" + "$ref": "#\/components\/schemas\/provider" } } } @@ -34669,22 +36722,22 @@ }, "deprecated": false, "x-appwrite": { - "method": "updatePush", - "group": "messages", + "method": "updateTextmagicProvider", + "group": "providers", "cookies": false, "type": "", - "demo": "messaging\/update-push.md", + "demo": "messaging\/update-textmagic-provider.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "messages.write", + "scope": "providers.write", "platforms": [ "console", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/messaging\/update-push.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/messaging\/update-textmagic-provider.md", "auth": { "Project": [] } @@ -34697,12 +36750,12 @@ ], "parameters": [ { - "name": "messageId", - "description": "Message ID.", + "name": "providerId", + "description": "Provider ID.", "required": true, "schema": { "type": "string", - "x-example": "<MESSAGE_ID>" + "x-example": "<PROVIDER_ID>" }, "in": "path" } @@ -34713,134 +36766,35 @@ "schema": { "type": "object", "properties": { - "topics": { - "type": "array", - "description": "List of Topic IDs.", - "x-example": null, - "items": { - "type": "string" - }, - "x-nullable": true - }, - "users": { - "type": "array", - "description": "List of User IDs.", - "x-example": null, - "items": { - "type": "string" - }, - "x-nullable": true - }, - "targets": { - "type": "array", - "description": "List of Targets IDs.", - "x-example": null, - "items": { - "type": "string" - }, - "x-nullable": true - }, - "title": { - "type": "string", - "description": "Title for push notification.", - "x-example": "<TITLE>", - "x-nullable": true - }, - "body": { - "type": "string", - "description": "Body for push notification.", - "x-example": "<BODY>", - "x-nullable": true - }, - "data": { - "type": "object", - "description": "Additional Data for push notification.", - "default": {}, - "x-example": "{}", - "x-nullable": true - }, - "action": { - "type": "string", - "description": "Action for push notification.", - "x-example": "<ACTION>", - "x-nullable": true - }, - "image": { - "type": "string", - "description": "Image for push notification. Must be a compound bucket ID to file ID of a jpeg, png, or bmp image in Appwrite Storage. It should be formatted as <BUCKET_ID>:<FILE_ID>.", - "x-example": "<ID1:ID2>", - "x-nullable": true - }, - "icon": { - "type": "string", - "description": "Icon for push notification. Available only for Android and Web platforms.", - "x-example": "<ICON>", - "x-nullable": true - }, - "sound": { - "type": "string", - "description": "Sound for push notification. Available only for Android and iOS platforms.", - "x-example": "<SOUND>", - "x-nullable": true - }, - "color": { - "type": "string", - "description": "Color for push notification. Available only for Android platforms.", - "x-example": "<COLOR>", - "x-nullable": true - }, - "tag": { + "name": { "type": "string", - "description": "Tag for push notification. Available only for Android platforms.", - "x-example": "<TAG>", - "x-nullable": true - }, - "badge": { - "type": "integer", - "description": "Badge for push notification. Available only for iOS platforms.", - "x-example": null, - "format": "int32", - "x-nullable": true + "description": "Provider name.", + "default": "", + "x-example": "<NAME>" }, - "draft": { + "enabled": { "type": "boolean", - "description": "Is message a draft", + "description": "Set as enabled.", "x-example": false, "x-nullable": true }, - "scheduledAt": { + "username": { "type": "string", - "description": "Scheduled delivery time for message in [ISO 8601](https:\/\/www.iso.org\/iso-8601-date-and-time-format.html) format. DateTime value must be in future.", - "x-example": "2020-10-15T06:38:00.000+00:00", - "format": "datetime", - "x-nullable": true - }, - "contentAvailable": { - "type": "boolean", - "description": "If set to true, the notification will be delivered in the background. Available only for iOS Platform.", - "x-example": false, - "x-nullable": true + "description": "Textmagic username.", + "default": "", + "x-example": "<USERNAME>" }, - "critical": { - "type": "boolean", - "description": "If set to true, the notification will be marked as critical. This requires the app to have the critical notification entitlement. Available only for iOS Platform.", - "x-example": false, - "x-nullable": true + "apiKey": { + "type": "string", + "description": "Textmagic apiKey.", + "default": "", + "x-example": "<API_KEY>" }, - "priority": { + "from": { "type": "string", - "description": "Set the notification priority. \"normal\" will consider device battery state and may send notifications later. \"high\" will always attempt to immediately deliver the notification.", - "x-example": "normal", - "enum": [ - "normal", - "high" - ], - "x-enum-name": "MessagePriority", - "x-enum-keys": [ - "normal", - "high" - ], - "x-nullable": true + "description": "Sender number.", + "default": "", + "x-example": "<FROM>" } } } @@ -34849,114 +36803,44 @@ } } }, - "\/messaging\/messages\/sms": { + "\/messaging\/providers\/twilio": { "post": { - "summary": "Create SMS", - "operationId": "messagingCreateSms", + "summary": "Create Twilio provider", + "operationId": "messagingCreateTwilioProvider", "tags": [ "messaging" ], - "description": "Create a new SMS message.", + "description": "Create a new Twilio provider.", "responses": { "201": { - "description": "Message", + "description": "Provider", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/message" + "$ref": "#\/components\/schemas\/provider" } } } } }, - "deprecated": true, + "deprecated": false, "x-appwrite": { - "method": "createSms", - "group": "messages", + "method": "createTwilioProvider", + "group": "providers", "cookies": false, "type": "", - "demo": "messaging\/create-sms.md", + "demo": "messaging\/create-twilio-provider.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "messages.write", + "scope": "providers.write", "platforms": [ "console", "server" ], "packaging": false, - "public": false, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/messaging\/create-sms.md", - "deprecated": { - "since": "1.8.0", - "replaceWith": "messaging.createSMS" - }, - "methods": [ - { - "name": "createSms", - "namespace": "messaging", - "desc": "", - "auth": { - "Project": [] - }, - "parameters": [ - "messageId", - "content", - "topics", - "users", - "targets", - "draft", - "scheduledAt" - ], - "required": [ - "messageId", - "content" - ], - "responses": [ - { - "code": 201, - "model": "#\/components\/schemas\/message" - } - ], - "description": "Create a new SMS message.", - "demo": "messaging\/create-sms.md", - "public": false, - "deprecated": { - "since": "1.8.0", - "replaceWith": "messaging.createSMS" - } - }, - { - "name": "createSMS", - "namespace": "messaging", - "desc": "", - "auth": { - "Project": [] - }, - "parameters": [ - "messageId", - "content", - "topics", - "users", - "targets", - "draft", - "scheduledAt" - ], - "required": [ - "messageId", - "content" - ], - "responses": [ - { - "code": 201, - "model": "#\/components\/schemas\/message" - } - ], - "description": "Create a new SMS message.", - "demo": "messaging\/create-sms.md", - "public": true - } - ], + "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/messaging\/create-twilio-provider.md", "auth": { "Project": [] } @@ -34973,63 +36857,48 @@ "schema": { "type": "object", "properties": { - "messageId": { + "providerId": { "type": "string", - "description": "Message ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.", - "x-example": "<MESSAGE_ID>", + "description": "Provider ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.", + "x-example": "<PROVIDER_ID>", "x-appwrite": { "idGenerator": "ID.unique" } }, - "content": { + "name": { "type": "string", - "description": "SMS Content.", - "x-example": "<CONTENT>" + "description": "Provider name.", + "x-example": "<NAME>" }, - "topics": { - "type": "array", - "description": "List of Topic IDs.", - "default": [], - "x-example": null, - "items": { - "type": "string" - } + "from": { + "type": "string", + "description": "Sender Phone number. Format this number with a leading '+' and a country code, e.g., +16175551212.", + "default": "", + "x-example": "+12065550100", + "format": "phone" }, - "users": { - "type": "array", - "description": "List of User IDs.", - "default": [], - "x-example": null, - "items": { - "type": "string" - } + "accountSid": { + "type": "string", + "description": "Twilio account secret ID.", + "default": "", + "x-example": "<ACCOUNT_SID>" }, - "targets": { - "type": "array", - "description": "List of Targets IDs.", - "default": [], - "x-example": null, - "items": { - "type": "string" - } + "authToken": { + "type": "string", + "description": "Twilio authentication token.", + "default": "", + "x-example": "<AUTH_TOKEN>" }, - "draft": { + "enabled": { "type": "boolean", - "description": "Is message a draft", - "default": false, - "x-example": false - }, - "scheduledAt": { - "type": "string", - "description": "Scheduled delivery time for message in [ISO 8601](https:\/\/www.iso.org\/iso-8601-date-and-time-format.html) format. DateTime value must be in future.", - "x-example": "2020-10-15T06:38:00.000+00:00", - "format": "datetime", + "description": "Set as enabled.", + "x-example": false, "x-nullable": true } }, "required": [ - "messageId", - "content" + "providerId", + "name" ] } } @@ -35037,112 +36906,44 @@ } } }, - "\/messaging\/messages\/sms\/{messageId}": { + "\/messaging\/providers\/twilio\/{providerId}": { "patch": { - "summary": "Update SMS", - "operationId": "messagingUpdateSms", + "summary": "Update Twilio provider", + "operationId": "messagingUpdateTwilioProvider", "tags": [ "messaging" ], - "description": "Update an SMS message by its unique ID. This endpoint only works on messages that are in draft status. Messages that are already processing, sent, or failed cannot be updated.\n", + "description": "Update a Twilio provider by its unique ID.", "responses": { "200": { - "description": "Message", + "description": "Provider", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/message" + "$ref": "#\/components\/schemas\/provider" } } } } }, - "deprecated": true, + "deprecated": false, "x-appwrite": { - "method": "updateSms", - "group": "messages", + "method": "updateTwilioProvider", + "group": "providers", "cookies": false, "type": "", - "demo": "messaging\/update-sms.md", + "demo": "messaging\/update-twilio-provider.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "messages.write", + "scope": "providers.write", "platforms": [ "console", "server" ], "packaging": false, - "public": false, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/messaging\/update-sms.md", - "deprecated": { - "since": "1.8.0", - "replaceWith": "messaging.updateSMS" - }, - "methods": [ - { - "name": "updateSms", - "namespace": "messaging", - "desc": "", - "auth": { - "Project": [] - }, - "parameters": [ - "messageId", - "topics", - "users", - "targets", - "content", - "draft", - "scheduledAt" - ], - "required": [ - "messageId" - ], - "responses": [ - { - "code": 200, - "model": "#\/components\/schemas\/message" - } - ], - "description": "Update an SMS message by its unique ID. This endpoint only works on messages that are in draft status. Messages that are already processing, sent, or failed cannot be updated.\n", - "demo": "messaging\/update-sms.md", - "public": false, - "deprecated": { - "since": "1.8.0", - "replaceWith": "messaging.updateSMS" - } - }, - { - "name": "updateSMS", - "namespace": "messaging", - "desc": "", - "auth": { - "Project": [] - }, - "parameters": [ - "messageId", - "topics", - "users", - "targets", - "content", - "draft", - "scheduledAt" - ], - "required": [ - "messageId" - ], - "responses": [ - { - "code": 200, - "model": "#\/components\/schemas\/message" - } - ], - "description": "Update an SMS message by its unique ID. This endpoint only works on messages that are in draft status. Messages that are already processing, sent, or failed cannot be updated.\n", - "demo": "messaging\/update-sms.md", - "public": true - } - ], + "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/messaging\/update-twilio-provider.md", "auth": { "Project": [] } @@ -35155,12 +36956,12 @@ ], "parameters": [ { - "name": "messageId", - "description": "Message ID.", + "name": "providerId", + "description": "Provider ID.", "required": true, "schema": { "type": "string", - "x-example": "<MESSAGE_ID>" + "x-example": "<PROVIDER_ID>" }, "in": "path" } @@ -35171,51 +36972,35 @@ "schema": { "type": "object", "properties": { - "topics": { - "type": "array", - "description": "List of Topic IDs.", - "x-example": null, - "items": { - "type": "string" - }, - "x-nullable": true - }, - "users": { - "type": "array", - "description": "List of User IDs.", - "x-example": null, - "items": { - "type": "string" - }, - "x-nullable": true - }, - "targets": { - "type": "array", - "description": "List of Targets IDs.", - "x-example": null, - "items": { - "type": "string" - }, - "x-nullable": true - }, - "content": { + "name": { "type": "string", - "description": "Email Content.", - "x-example": "<CONTENT>", - "x-nullable": true + "description": "Provider name.", + "default": "", + "x-example": "<NAME>" }, - "draft": { + "enabled": { "type": "boolean", - "description": "Is message a draft", + "description": "Set as enabled.", "x-example": false, "x-nullable": true }, - "scheduledAt": { + "accountSid": { "type": "string", - "description": "Scheduled delivery time for message in [ISO 8601](https:\/\/www.iso.org\/iso-8601-date-and-time-format.html) format. DateTime value must be in future.", - "x-example": "2020-10-15T06:38:00.000+00:00", - "format": "datetime", - "x-nullable": true + "description": "Twilio account secret ID.", + "default": "", + "x-example": "<ACCOUNT_SID>" + }, + "authToken": { + "type": "string", + "description": "Twilio authentication token.", + "default": "", + "x-example": "<AUTH_TOKEN>" + }, + "from": { + "type": "string", + "description": "Sender number.", + "default": "", + "x-example": "<FROM>" } } } @@ -35224,21 +37009,21 @@ } } }, - "\/messaging\/messages\/{messageId}": { - "get": { - "summary": "Get message", - "operationId": "messagingGetMessage", + "\/messaging\/providers\/vonage": { + "post": { + "summary": "Create Vonage provider", + "operationId": "messagingCreateVonageProvider", "tags": [ "messaging" ], - "description": "Get a message by its unique ID.\n", + "description": "Create a new Vonage provider.", "responses": { - "200": { - "description": "Message", + "201": { + "description": "Provider", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/message" + "$ref": "#\/components\/schemas\/provider" } } } @@ -35246,22 +37031,22 @@ }, "deprecated": false, "x-appwrite": { - "method": "getMessage", - "group": "messages", + "method": "createVonageProvider", + "group": "providers", "cookies": false, "type": "", - "demo": "messaging\/get-message.md", + "demo": "messaging\/create-vonage-provider.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "messages.read", + "scope": "providers.write", "platforms": [ "console", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/messaging\/get-message.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/messaging\/create-vonage-provider.md", "auth": { "Project": [] } @@ -35272,49 +37057,99 @@ "Key": [] } ], - "parameters": [ - { - "name": "messageId", - "description": "Message ID.", - "required": true, - "schema": { - "type": "string", - "x-example": "<MESSAGE_ID>" - }, - "in": "path" + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "providerId": { + "type": "string", + "description": "Provider ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.", + "x-example": "<PROVIDER_ID>", + "x-appwrite": { + "idGenerator": "ID.unique" + } + }, + "name": { + "type": "string", + "description": "Provider name.", + "x-example": "<NAME>" + }, + "from": { + "type": "string", + "description": "Sender Phone number. Format this number with a leading '+' and a country code, e.g., +16175551212.", + "default": "", + "x-example": "+12065550100", + "format": "phone" + }, + "apiKey": { + "type": "string", + "description": "Vonage API key.", + "default": "", + "x-example": "<API_KEY>" + }, + "apiSecret": { + "type": "string", + "description": "Vonage API secret.", + "default": "", + "x-example": "<API_SECRET>" + }, + "enabled": { + "type": "boolean", + "description": "Set as enabled.", + "x-example": false, + "x-nullable": true + } + }, + "required": [ + "providerId", + "name" + ] + } + } } - ] - }, - "delete": { - "summary": "Delete message", - "operationId": "messagingDelete", + } + } + }, + "\/messaging\/providers\/vonage\/{providerId}": { + "patch": { + "summary": "Update Vonage provider", + "operationId": "messagingUpdateVonageProvider", "tags": [ "messaging" ], - "description": "Delete a message. If the message is not a draft or scheduled, but has been sent, this will not recall the message.", + "description": "Update a Vonage provider by its unique ID.", "responses": { - "204": { - "description": "No content" + "200": { + "description": "Provider", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/provider" + } + } + } } }, "deprecated": false, "x-appwrite": { - "method": "delete", - "group": "messages", + "method": "updateVonageProvider", + "group": "providers", "cookies": false, "type": "", - "demo": "messaging\/delete.md", + "demo": "messaging\/update-vonage-provider.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "messages.write", + "scope": "providers.write", "platforms": [ "console", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/messaging\/delete-message.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/messaging\/update-vonage-provider.md", "auth": { "Project": [] } @@ -35327,33 +37162,74 @@ ], "parameters": [ { - "name": "messageId", - "description": "Message ID.", + "name": "providerId", + "description": "Provider ID.", "required": true, "schema": { "type": "string", - "x-example": "<MESSAGE_ID>" + "x-example": "<PROVIDER_ID>" }, "in": "path" } - ] + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "Provider name.", + "default": "", + "x-example": "<NAME>" + }, + "enabled": { + "type": "boolean", + "description": "Set as enabled.", + "x-example": false, + "x-nullable": true + }, + "apiKey": { + "type": "string", + "description": "Vonage API key.", + "default": "", + "x-example": "<API_KEY>" + }, + "apiSecret": { + "type": "string", + "description": "Vonage API secret.", + "default": "", + "x-example": "<API_SECRET>" + }, + "from": { + "type": "string", + "description": "Sender number.", + "default": "", + "x-example": "<FROM>" + } + } + } + } + } + } } }, - "\/messaging\/messages\/{messageId}\/targets": { + "\/messaging\/providers\/{providerId}": { "get": { - "summary": "List message targets", - "operationId": "messagingListTargets", + "summary": "Get provider", + "operationId": "messagingGetProvider", "tags": [ "messaging" ], - "description": "Get a list of the targets associated with a message.", + "description": "Get a provider by its unique ID.\n", "responses": { "200": { - "description": "Target list", + "description": "Provider", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/targetList" + "$ref": "#\/components\/schemas\/provider" } } } @@ -35361,22 +37237,22 @@ }, "deprecated": false, "x-appwrite": { - "method": "listTargets", - "group": "messages", + "method": "getProvider", + "group": "providers", "cookies": false, "type": "", - "demo": "messaging\/list-targets.md", + "demo": "messaging\/get-provider.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "messages.read", + "scope": "providers.read", "platforms": [ "console", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/messaging\/list-message-targets.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/messaging\/get-provider.md", "auth": { "Project": [] } @@ -35389,57 +37265,86 @@ ], "parameters": [ { - "name": "messageId", - "description": "Message ID.", + "name": "providerId", + "description": "Provider ID.", "required": true, "schema": { "type": "string", - "x-example": "<MESSAGE_ID>" + "x-example": "<PROVIDER_ID>" }, "in": "path" - }, + } + ] + }, + "delete": { + "summary": "Delete provider", + "operationId": "messagingDeleteProvider", + "tags": [ + "messaging" + ], + "description": "Delete a provider by its unique ID.", + "responses": { + "204": { + "description": "No content" + } + }, + "deprecated": false, + "x-appwrite": { + "method": "deleteProvider", + "group": "providers", + "cookies": false, + "type": "", + "demo": "messaging\/delete-provider.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "providers.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/messaging\/delete-provider.md", + "auth": { + "Project": [] + } + }, + "security": [ { - "name": "queries", - "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more 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" - }, + "Project": [], + "Key": [] + } + ], + "parameters": [ { - "name": "total", - "description": "When set to false, the total count returned will be 0 and will not be calculated.", - "required": false, + "name": "providerId", + "description": "Provider ID.", + "required": true, "schema": { - "type": "boolean", - "x-example": false, - "default": true + "type": "string", + "x-example": "<PROVIDER_ID>" }, - "in": "query" + "in": "path" } ] } }, - "\/messaging\/providers": { + "\/messaging\/topics": { "get": { - "summary": "List providers", - "operationId": "messagingListProviders", + "summary": "List topics", + "operationId": "messagingListTopics", "tags": [ "messaging" ], - "description": "Get a list of all providers from the current Appwrite project.", + "description": "Get a list of all topics from the current Appwrite project.", "responses": { "200": { - "description": "Provider list", + "description": "Topic list", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/providerList" + "$ref": "#\/components\/schemas\/topicList" } } } @@ -35447,22 +37352,22 @@ }, "deprecated": false, "x-appwrite": { - "method": "listProviders", - "group": "providers", + "method": "listTopics", + "group": "topics", "cookies": false, "type": "", - "demo": "messaging\/list-providers.md", + "demo": "messaging\/list-topics.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "providers.read", + "scope": "topics.read", "platforms": [ "console", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/messaging\/list-providers.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/messaging\/list-topics.md", "auth": { "Project": [] } @@ -35476,7 +37381,7 @@ "parameters": [ { "name": "queries", - "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/queries). Maximum of 100 queries are allowed, each 4096 characters long. You may filter on the following attributes: name, provider, type, enabled", + "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more 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", @@ -35510,118 +37415,44 @@ "in": "query" } ] - } - }, - "\/messaging\/providers\/apns": { + }, "post": { - "summary": "Create APNS provider", - "operationId": "messagingCreateApnsProvider", + "summary": "Create topic", + "operationId": "messagingCreateTopic", "tags": [ "messaging" ], - "description": "Create a new Apple Push Notification service provider.", + "description": "Create a new topic.", "responses": { "201": { - "description": "Provider", + "description": "Topic", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/provider" + "$ref": "#\/components\/schemas\/topic" } } } } }, - "deprecated": true, + "deprecated": false, "x-appwrite": { - "method": "createApnsProvider", - "group": "providers", + "method": "createTopic", + "group": "topics", "cookies": false, "type": "", - "demo": "messaging\/create-apns-provider.md", + "demo": "messaging\/create-topic.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "providers.write", + "scope": "topics.write", "platforms": [ "console", "server" ], "packaging": false, - "public": false, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/messaging\/create-apns-provider.md", - "deprecated": { - "since": "1.8.0", - "replaceWith": "messaging.createAPNSProvider" - }, - "methods": [ - { - "name": "createApnsProvider", - "namespace": "messaging", - "desc": "", - "auth": { - "Project": [] - }, - "parameters": [ - "providerId", - "name", - "authKey", - "authKeyId", - "teamId", - "bundleId", - "sandbox", - "enabled" - ], - "required": [ - "providerId", - "name" - ], - "responses": [ - { - "code": 201, - "model": "#\/components\/schemas\/provider" - } - ], - "description": "Create a new Apple Push Notification service provider.", - "demo": "messaging\/create-apns-provider.md", - "public": false, - "deprecated": { - "since": "1.8.0", - "replaceWith": "messaging.createAPNSProvider" - } - }, - { - "name": "createAPNSProvider", - "namespace": "messaging", - "desc": "", - "auth": { - "Project": [] - }, - "parameters": [ - "providerId", - "name", - "authKey", - "authKeyId", - "teamId", - "bundleId", - "sandbox", - "enabled" - ], - "required": [ - "providerId", - "name" - ], - "responses": [ - { - "code": 201, - "model": "#\/components\/schemas\/provider" - } - ], - "description": "Create a new Apple Push Notification service provider.", - "demo": "messaging\/create-apns-provider.md", - "public": true - } - ], + "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/messaging\/create-topic.md", "auth": { "Project": [] } @@ -35638,58 +37469,33 @@ "schema": { "type": "object", "properties": { - "providerId": { + "topicId": { "type": "string", - "description": "Provider ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.", - "x-example": "<PROVIDER_ID>", + "description": "Topic ID. Choose a custom Topic ID or a new Topic ID.", + "x-example": "<TOPIC_ID>", "x-appwrite": { "idGenerator": "ID.unique" } }, "name": { "type": "string", - "description": "Provider name.", + "description": "Topic Name.", "x-example": "<NAME>" }, - "authKey": { - "type": "string", - "description": "APNS authentication key.", - "default": "", - "x-example": "<AUTH_KEY>" - }, - "authKeyId": { - "type": "string", - "description": "APNS authentication key ID.", - "default": "", - "x-example": "<AUTH_KEY_ID>" - }, - "teamId": { - "type": "string", - "description": "APNS team ID.", - "default": "", - "x-example": "<TEAM_ID>" - }, - "bundleId": { - "type": "string", - "description": "APNS bundle ID.", - "default": "", - "x-example": "<BUNDLE_ID>" - }, - "sandbox": { - "type": "boolean", - "description": "Use APNS sandbox environment.", - "default": false, - "x-example": false - }, - "enabled": { - "type": "boolean", - "description": "Set as enabled.", - "x-example": false, - "x-nullable": true + "subscribe": { + "type": "array", + "description": "An array of role strings with subscribe permission. By default all users are granted with any subscribe permission. [learn more about roles](https:\/\/appwrite.io\/docs\/permissions#permission-roles). Maximum of 100 roles are allowed, each 64 characters long.", + "default": [ + "users" + ], + "x-example": "[\"any\"]", + "items": { + "type": "string" + } } }, "required": [ - "providerId", + "topicId", "name" ] } @@ -35698,114 +37504,44 @@ } } }, - "\/messaging\/providers\/apns\/{providerId}": { - "patch": { - "summary": "Update APNS provider", - "operationId": "messagingUpdateApnsProvider", + "\/messaging\/topics\/{topicId}": { + "get": { + "summary": "Get topic", + "operationId": "messagingGetTopic", "tags": [ "messaging" ], - "description": "Update a Apple Push Notification service provider by its unique ID.", + "description": "Get a topic by its unique ID.\n", "responses": { "200": { - "description": "Provider", + "description": "Topic", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/provider" + "$ref": "#\/components\/schemas\/topic" } } } } }, - "deprecated": true, + "deprecated": false, "x-appwrite": { - "method": "updateApnsProvider", - "group": "providers", + "method": "getTopic", + "group": "topics", "cookies": false, "type": "", - "demo": "messaging\/update-apns-provider.md", + "demo": "messaging\/get-topic.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "providers.write", + "scope": "topics.read", "platforms": [ "console", "server" ], "packaging": false, - "public": false, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/messaging\/update-apns-provider.md", - "deprecated": { - "since": "1.8.0", - "replaceWith": "messaging.updateAPNSProvider" - }, - "methods": [ - { - "name": "updateApnsProvider", - "namespace": "messaging", - "desc": "", - "auth": { - "Project": [] - }, - "parameters": [ - "providerId", - "name", - "enabled", - "authKey", - "authKeyId", - "teamId", - "bundleId", - "sandbox" - ], - "required": [ - "providerId" - ], - "responses": [ - { - "code": 200, - "model": "#\/components\/schemas\/provider" - } - ], - "description": "Update a Apple Push Notification service provider by its unique ID.", - "demo": "messaging\/update-apns-provider.md", - "public": false, - "deprecated": { - "since": "1.8.0", - "replaceWith": "messaging.updateAPNSProvider" - } - }, - { - "name": "updateAPNSProvider", - "namespace": "messaging", - "desc": "", - "auth": { - "Project": [] - }, - "parameters": [ - "providerId", - "name", - "enabled", - "authKey", - "authKeyId", - "teamId", - "bundleId", - "sandbox" - ], - "required": [ - "providerId" - ], - "responses": [ - { - "code": 200, - "model": "#\/components\/schemas\/provider" - } - ], - "description": "Update a Apple Push Notification service provider by its unique ID.", - "demo": "messaging\/update-apns-provider.md", - "public": true - } - ], + "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/messaging\/get-topic.md", "auth": { "Project": [] } @@ -35818,173 +37554,54 @@ ], "parameters": [ { - "name": "providerId", - "description": "Provider ID.", + "name": "topicId", + "description": "Topic ID.", "required": true, "schema": { "type": "string", - "x-example": "<PROVIDER_ID>" + "x-example": "<TOPIC_ID>" }, "in": "path" } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "name": { - "type": "string", - "description": "Provider name.", - "default": "", - "x-example": "<NAME>" - }, - "enabled": { - "type": "boolean", - "description": "Set as enabled.", - "x-example": false, - "x-nullable": true - }, - "authKey": { - "type": "string", - "description": "APNS authentication key.", - "default": "", - "x-example": "<AUTH_KEY>" - }, - "authKeyId": { - "type": "string", - "description": "APNS authentication key ID.", - "default": "", - "x-example": "<AUTH_KEY_ID>" - }, - "teamId": { - "type": "string", - "description": "APNS team ID.", - "default": "", - "x-example": "<TEAM_ID>" - }, - "bundleId": { - "type": "string", - "description": "APNS bundle ID.", - "default": "", - "x-example": "<BUNDLE_ID>" - }, - "sandbox": { - "type": "boolean", - "description": "Use APNS sandbox environment.", - "x-example": false, - "x-nullable": true - } - } - } - } - } - } - } - }, - "\/messaging\/providers\/fcm": { - "post": { - "summary": "Create FCM provider", - "operationId": "messagingCreateFcmProvider", + ] + }, + "patch": { + "summary": "Update topic", + "operationId": "messagingUpdateTopic", "tags": [ "messaging" ], - "description": "Create a new Firebase Cloud Messaging provider.", + "description": "Update a topic by its unique ID.\n", "responses": { - "201": { - "description": "Provider", + "200": { + "description": "Topic", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/provider" + "$ref": "#\/components\/schemas\/topic" } } } } }, - "deprecated": true, + "deprecated": false, "x-appwrite": { - "method": "createFcmProvider", - "group": "providers", + "method": "updateTopic", + "group": "topics", "cookies": false, "type": "", - "demo": "messaging\/create-fcm-provider.md", + "demo": "messaging\/update-topic.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "providers.write", + "scope": "topics.write", "platforms": [ "console", "server" ], "packaging": false, - "public": false, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/messaging\/create-fcm-provider.md", - "deprecated": { - "since": "1.8.0", - "replaceWith": "messaging.createFCMProvider" - }, - "methods": [ - { - "name": "createFcmProvider", - "namespace": "messaging", - "desc": "", - "auth": { - "Project": [] - }, - "parameters": [ - "providerId", - "name", - "serviceAccountJSON", - "enabled" - ], - "required": [ - "providerId", - "name" - ], - "responses": [ - { - "code": 201, - "model": "#\/components\/schemas\/provider" - } - ], - "description": "Create a new Firebase Cloud Messaging provider.", - "demo": "messaging\/create-fcm-provider.md", - "public": false, - "deprecated": { - "since": "1.8.0", - "replaceWith": "messaging.createFCMProvider" - } - }, - { - "name": "createFCMProvider", - "namespace": "messaging", - "desc": "", - "auth": { - "Project": [] - }, - "parameters": [ - "providerId", - "name", - "serviceAccountJSON", - "enabled" - ], - "required": [ - "providerId", - "name" - ], - "responses": [ - { - "code": 201, - "model": "#\/components\/schemas\/provider" - } - ], - "description": "Create a new Firebase Cloud Messaging provider.", - "demo": "messaging\/create-fcm-provider.md", - "public": true - } - ], + "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/messaging\/update-topic.md", "auth": { "Project": [] } @@ -35995,149 +37612,75 @@ "Key": [] } ], + "parameters": [ + { + "name": "topicId", + "description": "Topic ID.", + "required": true, + "schema": { + "type": "string", + "x-example": "<TOPIC_ID>" + }, + "in": "path" + } + ], "requestBody": { "content": { "application\/json": { "schema": { "type": "object", "properties": { - "providerId": { - "type": "string", - "description": "Provider ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.", - "x-example": "<PROVIDER_ID>", - "x-appwrite": { - "idGenerator": "ID.unique" - } - }, "name": { "type": "string", - "description": "Provider name.", - "x-example": "<NAME>" - }, - "serviceAccountJSON": { - "type": "object", - "description": "FCM service account JSON.", - "default": {}, - "x-example": "{}", + "description": "Topic Name.", + "x-example": "<NAME>", "x-nullable": true }, - "enabled": { - "type": "boolean", - "description": "Set as enabled.", - "x-example": false, + "subscribe": { + "type": "array", + "description": "An array of role strings with subscribe permission. By default all users are granted with any subscribe permission. [learn more about roles](https:\/\/appwrite.io\/docs\/permissions#permission-roles). Maximum of 100 roles are allowed, each 64 characters long.", + "x-example": "[\"any\"]", + "items": { + "type": "string" + }, "x-nullable": true } - }, - "required": [ - "providerId", - "name" - ] + } } } } } - } - }, - "\/messaging\/providers\/fcm\/{providerId}": { - "patch": { - "summary": "Update FCM provider", - "operationId": "messagingUpdateFcmProvider", + }, + "delete": { + "summary": "Delete topic", + "operationId": "messagingDeleteTopic", "tags": [ "messaging" ], - "description": "Update a Firebase Cloud Messaging provider by its unique ID.", + "description": "Delete a topic by its unique ID.", "responses": { - "200": { - "description": "Provider", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/provider" - } - } - } + "204": { + "description": "No content" } }, - "deprecated": true, + "deprecated": false, "x-appwrite": { - "method": "updateFcmProvider", - "group": "providers", + "method": "deleteTopic", + "group": "topics", "cookies": false, "type": "", - "demo": "messaging\/update-fcm-provider.md", + "demo": "messaging\/delete-topic.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "providers.write", + "scope": "topics.write", "platforms": [ "console", "server" ], "packaging": false, - "public": false, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/messaging\/update-fcm-provider.md", - "deprecated": { - "since": "1.8.0", - "replaceWith": "messaging.updateFCMProvider" - }, - "methods": [ - { - "name": "updateFcmProvider", - "namespace": "messaging", - "desc": "", - "auth": { - "Project": [] - }, - "parameters": [ - "providerId", - "name", - "enabled", - "serviceAccountJSON" - ], - "required": [ - "providerId" - ], - "responses": [ - { - "code": 200, - "model": "#\/components\/schemas\/provider" - } - ], - "description": "Update a Firebase Cloud Messaging provider by its unique ID.", - "demo": "messaging\/update-fcm-provider.md", - "public": false, - "deprecated": { - "since": "1.8.0", - "replaceWith": "messaging.updateFCMProvider" - } - }, - { - "name": "updateFCMProvider", - "namespace": "messaging", - "desc": "", - "auth": { - "Project": [] - }, - "parameters": [ - "providerId", - "name", - "enabled", - "serviceAccountJSON" - ], - "required": [ - "providerId" - ], - "responses": [ - { - "code": 200, - "model": "#\/components\/schemas\/provider" - } - ], - "description": "Update a Firebase Cloud Messaging provider by its unique ID.", - "demo": "messaging\/update-fcm-provider.md", - "public": true - } - ], + "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/messaging\/delete-topic.md", "auth": { "Project": [] } @@ -36150,63 +37693,33 @@ ], "parameters": [ { - "name": "providerId", - "description": "Provider ID.", + "name": "topicId", + "description": "Topic ID.", "required": true, "schema": { "type": "string", - "x-example": "<PROVIDER_ID>" + "x-example": "<TOPIC_ID>" }, "in": "path" } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "name": { - "type": "string", - "description": "Provider name.", - "default": "", - "x-example": "<NAME>" - }, - "enabled": { - "type": "boolean", - "description": "Set as enabled.", - "x-example": false, - "x-nullable": true - }, - "serviceAccountJSON": { - "type": "object", - "description": "FCM service account JSON.", - "default": {}, - "x-example": "{}", - "x-nullable": true - } - } - } - } - } - } + ] } }, - "\/messaging\/providers\/mailgun": { - "post": { - "summary": "Create Mailgun provider", - "operationId": "messagingCreateMailgunProvider", + "\/messaging\/topics\/{topicId}\/subscribers": { + "get": { + "summary": "List subscribers", + "operationId": "messagingListSubscribers", "tags": [ "messaging" ], - "description": "Create a new Mailgun provider.", + "description": "Get a list of all subscribers from the current Appwrite project.", "responses": { - "201": { - "description": "Provider", + "200": { + "description": "Subscriber list", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/provider" + "$ref": "#\/components\/schemas\/subscriberList" } } } @@ -36214,22 +37727,22 @@ }, "deprecated": false, "x-appwrite": { - "method": "createMailgunProvider", - "group": "providers", + "method": "listSubscribers", + "group": "subscribers", "cookies": false, "type": "", - "demo": "messaging\/create-mailgun-provider.md", + "demo": "messaging\/list-subscribers.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "providers.write", + "scope": "subscribers.read", "platforms": [ "console", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/messaging\/create-mailgun-provider.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/messaging\/list-subscribers.md", "auth": { "Project": [] } @@ -36240,101 +37753,68 @@ "Key": [] } ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "providerId": { - "type": "string", - "description": "Provider ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.", - "x-example": "<PROVIDER_ID>", - "x-appwrite": { - "idGenerator": "ID.unique" - } - }, - "name": { - "type": "string", - "description": "Provider name.", - "x-example": "<NAME>" - }, - "apiKey": { - "type": "string", - "description": "Mailgun API Key.", - "default": "", - "x-example": "<API_KEY>" - }, - "domain": { - "type": "string", - "description": "Mailgun Domain.", - "default": "", - "x-example": "<DOMAIN>" - }, - "isEuRegion": { - "type": "boolean", - "description": "Set as EU region.", - "x-example": false, - "x-nullable": true - }, - "fromName": { - "type": "string", - "description": "Sender Name.", - "default": "", - "x-example": "<FROM_NAME>" - }, - "fromEmail": { - "type": "string", - "description": "Sender email address.", - "default": "", - "x-example": "email@example.com", - "format": "email" - }, - "replyToName": { - "type": "string", - "description": "Name set in the reply to field for the mail. Default value is sender name. Reply to name must have reply to email as well.", - "default": "", - "x-example": "<REPLY_TO_NAME>" - }, - "replyToEmail": { - "type": "string", - "description": "Email set in the reply to field for the mail. Default value is sender email. Reply to email must have reply to name as well.", - "default": "", - "x-example": "email@example.com", - "format": "email" - }, - "enabled": { - "type": "boolean", - "description": "Set as enabled.", - "x-example": false, - "x-nullable": true - } - }, - "required": [ - "providerId", - "name" - ] - } - } + "parameters": [ + { + "name": "topicId", + "description": "Topic ID. The topic ID subscribed to.", + "required": true, + "schema": { + "type": "string", + "x-example": "<TOPIC_ID>" + }, + "in": "path" + }, + { + "name": "queries", + "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/queries). Maximum of 100 queries are allowed, each 4096 characters long. You may filter on the following attributes: targetId, topicId, userId, providerType", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string" + }, + "default": [] + }, + "in": "query" + }, + { + "name": "search", + "description": "Search term to filter your list results. Max length: 256 chars.", + "required": false, + "schema": { + "type": "string", + "x-example": "<SEARCH>", + "default": "" + }, + "in": "query" + }, + { + "name": "total", + "description": "When set to false, the total count returned will be 0 and will not be calculated.", + "required": false, + "schema": { + "type": "boolean", + "x-example": false, + "default": true + }, + "in": "query" } - } - } - }, - "\/messaging\/providers\/mailgun\/{providerId}": { - "patch": { - "summary": "Update Mailgun provider", - "operationId": "messagingUpdateMailgunProvider", + ] + }, + "post": { + "summary": "Create subscriber", + "operationId": "messagingCreateSubscriber", "tags": [ "messaging" ], - "description": "Update a Mailgun provider by its unique ID.", + "description": "Create a new subscriber.", "responses": { - "200": { - "description": "Provider", + "201": { + "description": "Subscriber", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/provider" + "$ref": "#\/components\/schemas\/subscriber" } } } @@ -36342,22 +37822,23 @@ }, "deprecated": false, "x-appwrite": { - "method": "updateMailgunProvider", - "group": "providers", + "method": "createSubscriber", + "group": "subscribers", "cookies": false, "type": "", - "demo": "messaging\/update-mailgun-provider.md", + "demo": "messaging\/create-subscriber.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "providers.write", + "scope": "subscribers.write", "platforms": [ - "console", - "server" + "server", + "client", + "console" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/messaging\/update-mailgun-provider.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/messaging\/create-subscriber.md", "auth": { "Project": [] } @@ -36365,17 +37846,19 @@ "security": [ { "Project": [], + "JWT": [], + "Session": [], "Key": [] } ], "parameters": [ { - "name": "providerId", - "description": "Provider ID.", + "name": "topicId", + "description": "Topic ID. The topic ID to subscribe to.", "required": true, "schema": { "type": "string", - "x-example": "<PROVIDER_ID>" + "x-example": "<TOPIC_ID>" }, "in": "path" } @@ -36386,83 +37869,45 @@ "schema": { "type": "object", "properties": { - "name": { - "type": "string", - "description": "Provider name.", - "default": "", - "x-example": "<NAME>" - }, - "apiKey": { - "type": "string", - "description": "Mailgun API Key.", - "default": "", - "x-example": "<API_KEY>" - }, - "domain": { - "type": "string", - "description": "Mailgun Domain.", - "default": "", - "x-example": "<DOMAIN>" - }, - "isEuRegion": { - "type": "boolean", - "description": "Set as EU region.", - "x-example": false, - "x-nullable": true - }, - "enabled": { - "type": "boolean", - "description": "Set as enabled.", - "x-example": false, - "x-nullable": true - }, - "fromName": { - "type": "string", - "description": "Sender Name.", - "default": "", - "x-example": "<FROM_NAME>" - }, - "fromEmail": { - "type": "string", - "description": "Sender email address.", - "default": "", - "x-example": "email@example.com", - "format": "email" - }, - "replyToName": { + "subscriberId": { "type": "string", - "description": "Name set in the reply to field for the mail. Default value is sender name.", - "default": "", - "x-example": "<REPLY_TO_NAME>" + "description": "Subscriber ID. Choose a custom Subscriber ID or a new Subscriber ID.", + "x-example": "<SUBSCRIBER_ID>", + "x-appwrite": { + "idGenerator": "ID.unique" + } }, - "replyToEmail": { + "targetId": { "type": "string", - "description": "Email set in the reply to field for the mail. Default value is sender email.", - "default": "", - "x-example": "<REPLY_TO_EMAIL>" + "description": "Target ID. The target ID to link to the specified Topic ID.", + "x-example": "<TARGET_ID>" } - } + }, + "required": [ + "subscriberId", + "targetId" + ] } } } } } }, - "\/messaging\/providers\/msg91": { - "post": { - "summary": "Create Msg91 provider", - "operationId": "messagingCreateMsg91Provider", + "\/messaging\/topics\/{topicId}\/subscribers\/{subscriberId}": { + "get": { + "summary": "Get subscriber", + "operationId": "messagingGetSubscriber", "tags": [ "messaging" ], - "description": "Create a new MSG91 provider.", + "description": "Get a subscriber by its unique ID.\n", "responses": { - "201": { - "description": "Provider", + "200": { + "description": "Subscriber", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/provider" + "$ref": "#\/components\/schemas\/subscriber" } } } @@ -36470,22 +37915,22 @@ }, "deprecated": false, "x-appwrite": { - "method": "createMsg91Provider", - "group": "providers", + "method": "getSubscriber", + "group": "subscribers", "cookies": false, "type": "", - "demo": "messaging\/create-msg-91-provider.md", + "demo": "messaging\/get-subscriber.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "providers.write", + "scope": "subscribers.read", "platforms": [ "console", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/messaging\/create-msg91-provider.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/messaging\/get-subscriber.md", "auth": { "Project": [] } @@ -36496,98 +37941,60 @@ "Key": [] } ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "providerId": { - "type": "string", - "description": "Provider ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.", - "x-example": "<PROVIDER_ID>", - "x-appwrite": { - "idGenerator": "ID.unique" - } - }, - "name": { - "type": "string", - "description": "Provider name.", - "x-example": "<NAME>" - }, - "templateId": { - "type": "string", - "description": "Msg91 template ID", - "default": "", - "x-example": "<TEMPLATE_ID>" - }, - "senderId": { - "type": "string", - "description": "Msg91 sender ID.", - "default": "", - "x-example": "<SENDER_ID>" - }, - "authKey": { - "type": "string", - "description": "Msg91 auth key.", - "default": "", - "x-example": "<AUTH_KEY>" - }, - "enabled": { - "type": "boolean", - "description": "Set as enabled.", - "x-example": false, - "x-nullable": true - } - }, - "required": [ - "providerId", - "name" - ] - } - } + "parameters": [ + { + "name": "topicId", + "description": "Topic ID. The topic ID subscribed to.", + "required": true, + "schema": { + "type": "string", + "x-example": "<TOPIC_ID>" + }, + "in": "path" + }, + { + "name": "subscriberId", + "description": "Subscriber ID.", + "required": true, + "schema": { + "type": "string", + "x-example": "<SUBSCRIBER_ID>" + }, + "in": "path" } - } - } - }, - "\/messaging\/providers\/msg91\/{providerId}": { - "patch": { - "summary": "Update Msg91 provider", - "operationId": "messagingUpdateMsg91Provider", + ] + }, + "delete": { + "summary": "Delete subscriber", + "operationId": "messagingDeleteSubscriber", "tags": [ "messaging" ], - "description": "Update a MSG91 provider by its unique ID.", + "description": "Delete a subscriber by its unique ID.", "responses": { - "200": { - "description": "Provider", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/provider" - } - } - } + "204": { + "description": "No content" } }, "deprecated": false, "x-appwrite": { - "method": "updateMsg91Provider", - "group": "providers", + "method": "deleteSubscriber", + "group": "subscribers", "cookies": false, "type": "", - "demo": "messaging\/update-msg-91-provider.md", + "demo": "messaging\/delete-subscriber.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "providers.write", + "scope": "subscribers.write", "platforms": [ - "console", - "server" + "server", + "client", + "console" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/messaging\/update-msg91-provider.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/messaging\/delete-subscriber.md", "auth": { "Project": [] } @@ -36595,79 +38002,50 @@ "security": [ { "Project": [], + "JWT": [], + "Session": [], "Key": [] } ], "parameters": [ { - "name": "providerId", - "description": "Provider ID.", + "name": "topicId", + "description": "Topic ID. The topic ID subscribed to.", "required": true, "schema": { "type": "string", - "x-example": "<PROVIDER_ID>" + "x-example": "<TOPIC_ID>" + }, + "in": "path" + }, + { + "name": "subscriberId", + "description": "Subscriber ID.", + "required": true, + "schema": { + "type": "string", + "x-example": "<SUBSCRIBER_ID>" }, "in": "path" } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "name": { - "type": "string", - "description": "Provider name.", - "default": "", - "x-example": "<NAME>" - }, - "enabled": { - "type": "boolean", - "description": "Set as enabled.", - "x-example": false, - "x-nullable": true - }, - "templateId": { - "type": "string", - "description": "Msg91 template ID.", - "default": "", - "x-example": "<TEMPLATE_ID>" - }, - "senderId": { - "type": "string", - "description": "Msg91 sender ID.", - "default": "", - "x-example": "<SENDER_ID>" - }, - "authKey": { - "type": "string", - "description": "Msg91 auth key.", - "default": "", - "x-example": "<AUTH_KEY>" - } - } - } - } - } - } + ] } }, - "\/messaging\/providers\/resend": { - "post": { - "summary": "Create Resend provider", - "operationId": "messagingCreateResendProvider", + "\/migrations": { + "get": { + "summary": "List migrations", + "operationId": "migrationsList", "tags": [ - "messaging" + "migrations" ], - "description": "Create a new Resend provider.", + "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": { - "201": { - "description": "Provider", + "200": { + "description": "Migrations List", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/provider" + "$ref": "#\/components\/schemas\/migrationList" } } } @@ -36675,115 +38053,84 @@ }, "deprecated": false, "x-appwrite": { - "method": "createResendProvider", - "group": "providers", + "method": "list", + "group": null, "cookies": false, "type": "", - "demo": "messaging\/create-resend-provider.md", + "demo": "migrations\/list.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "providers.write", + "scope": "migrations.read", "platforms": [ - "console", - "server" + "console" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/messaging\/create-resend-provider.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/migrations\/list-migrations.md", "auth": { "Project": [] } }, "security": [ { - "Project": [], - "Key": [] + "Project": [] } ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "providerId": { - "type": "string", - "description": "Provider ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.", - "x-example": "<PROVIDER_ID>", - "x-appwrite": { - "idGenerator": "ID.unique" - } - }, - "name": { - "type": "string", - "description": "Provider name.", - "x-example": "<NAME>" - }, - "apiKey": { - "type": "string", - "description": "Resend API key.", - "default": "", - "x-example": "<API_KEY>" - }, - "fromName": { - "type": "string", - "description": "Sender Name.", - "default": "", - "x-example": "<FROM_NAME>" - }, - "fromEmail": { - "type": "string", - "description": "Sender email address.", - "default": "", - "x-example": "email@example.com", - "format": "email" - }, - "replyToName": { - "type": "string", - "description": "Name set in the reply to field for the mail. Default value is sender name.", - "default": "", - "x-example": "<REPLY_TO_NAME>" - }, - "replyToEmail": { - "type": "string", - "description": "Email set in the reply to field for the mail. Default value is sender email.", - "default": "", - "x-example": "email@example.com", - "format": "email" - }, - "enabled": { - "type": "boolean", - "description": "Set as enabled.", - "x-example": false, - "x-nullable": true - } - }, - "required": [ - "providerId", - "name" - ] - } - } + "parameters": [ + { + "name": "queries", + "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/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", + "x-example": "<SEARCH>", + "default": "" + }, + "in": "query" + }, + { + "name": "total", + "description": "When set to false, the total count returned will be 0 and will not be calculated.", + "required": false, + "schema": { + "type": "boolean", + "x-example": false, + "default": true + }, + "in": "query" } - } + ] } }, - "\/messaging\/providers\/resend\/{providerId}": { - "patch": { - "summary": "Update Resend provider", - "operationId": "messagingUpdateResendProvider", + "\/migrations\/appwrite": { + "post": { + "summary": "Create Appwrite migration", + "operationId": "migrationsCreateAppwriteMigration", "tags": [ - "messaging" + "migrations" ], - "description": "Update a Resend provider by its unique ID.", + "description": "Migrate data from another Appwrite project to your current project. This endpoint allows you to migrate resources like databases, collections, documents, users, and files from an existing Appwrite project. ", "responses": { - "200": { - "description": "Provider", + "202": { + "description": "Migration", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/provider" + "$ref": "#\/components\/schemas\/migration" } } } @@ -36791,42 +38138,28 @@ }, "deprecated": false, "x-appwrite": { - "method": "updateResendProvider", - "group": "providers", + "method": "createAppwriteMigration", + "group": null, "cookies": false, "type": "", - "demo": "messaging\/update-resend-provider.md", + "demo": "migrations\/create-appwrite-migration.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "providers.write", + "scope": "migrations.write", "platforms": [ - "console", - "server" + "console" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/messaging\/update-resend-provider.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/migrations\/migration-appwrite.md", "auth": { "Project": [] } }, "security": [ { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "providerId", - "description": "Provider ID.", - "required": true, - "schema": { - "type": "string", - "x-example": "<PROVIDER_ID>" - }, - "in": "path" + "Project": [] } ], "requestBody": { @@ -36835,71 +38168,158 @@ "schema": { "type": "object", "properties": { - "name": { - "type": "string", - "description": "Provider name.", - "default": "", - "x-example": "<NAME>" - }, - "enabled": { - "type": "boolean", - "description": "Set as enabled.", - "x-example": false, - "x-nullable": true - }, - "apiKey": { - "type": "string", - "description": "Resend API key.", - "default": "", - "x-example": "<API_KEY>" + "resources": { + "type": "array", + "description": "List of resources to migrate", + "x-example": null, + "items": { + "type": "string", + "enum": [ + "user", + "team", + "membership", + "auth-methods", + "policies", + "oauth2-provider", + "database", + "table", + "column", + "index", + "row", + "document", + "attribute", + "collection", + "documentsdb", + "vectorsdb", + "bucket", + "file", + "function", + "deployment", + "environment-variable", + "provider", + "topic", + "subscriber", + "message", + "site", + "site-deployment", + "site-variable", + "platform", + "api-key", + "webhook", + "smtp", + "backup-policy", + "project-variable", + "project-protocols", + "project-labels", + "project-services", + "project-email-template", + "rule" + ], + "x-enum-name": "AppwriteMigrationResource", + "x-enum-keys": [ + "user", + "team", + "membership", + "auth-methods", + "policies", + "oauth2-provider", + "database", + "table", + "column", + "index", + "row", + "document", + "attribute", + "collection", + "documentsdb", + "vectorsdb", + "bucket", + "file", + "function", + "deployment", + "environment-variable", + "provider", + "topic", + "subscriber", + "message", + "site", + "site-deployment", + "site-variable", + "platform", + "api-key", + "webhook", + "smtp", + "backup-policy", + "project-variable", + "project-protocols", + "project-labels", + "project-services", + "project-email-template", + "rule" + ] + } }, - "fromName": { + "endpoint": { "type": "string", - "description": "Sender Name.", - "default": "", - "x-example": "<FROM_NAME>" + "description": "Source Appwrite endpoint", + "x-example": "https:\/\/example.com", + "format": "url" }, - "fromEmail": { + "projectId": { "type": "string", - "description": "Sender email address.", - "default": "", - "x-example": "email@example.com", - "format": "email" + "description": "Source Project ID", + "x-example": "<PROJECT_ID>" }, - "replyToName": { + "apiKey": { "type": "string", - "description": "Name set in the Reply To field for the mail. Default value is Sender Name.", - "default": "", - "x-example": "<REPLY_TO_NAME>" + "description": "Source API Key", + "x-example": "<API_KEY>" }, - "replyToEmail": { + "onDuplicate": { "type": "string", - "description": "Email set in the Reply To field for the mail. Default value is Sender Email.", - "default": "", - "x-example": "<REPLY_TO_EMAIL>" + "description": "Behavior when a row with an existing $id is encountered. \"fail\" (default): abort on first conflict. \"skip\": silently ignore. \"overwrite\": replace existing row.", + "default": "fail", + "x-example": "fail", + "enum": [ + "fail", + "skip", + "overwrite" + ], + "x-enum-name": "OnDuplicate", + "x-enum-keys": [ + "fail", + "skip", + "overwrite" + ] } - } + }, + "required": [ + "resources", + "endpoint", + "projectId", + "apiKey" + ] } } } } } }, - "\/messaging\/providers\/sendgrid": { - "post": { - "summary": "Create Sendgrid provider", - "operationId": "messagingCreateSendgridProvider", + "\/migrations\/appwrite\/report": { + "get": { + "summary": "Get Appwrite migration report", + "operationId": "migrationsGetAppwriteReport", "tags": [ - "messaging" + "migrations" ], - "description": "Create a new Sendgrid provider.", + "description": "Generate a report of the data in an Appwrite project before migrating. This endpoint analyzes the source project and returns information about the resources that can be migrated.", "responses": { - "201": { - "description": "Provider", + "200": { + "description": "Migration Report", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/provider" + "$ref": "#\/components\/schemas\/migrationReport" } } } @@ -36907,115 +38327,175 @@ }, "deprecated": false, "x-appwrite": { - "method": "createSendgridProvider", - "group": "providers", + "method": "getAppwriteReport", + "group": null, "cookies": false, "type": "", - "demo": "messaging\/create-sendgrid-provider.md", + "demo": "migrations\/get-appwrite-report.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "providers.write", + "scope": "migrations.write", "platforms": [ - "console", - "server" + "console" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/messaging\/create-sendgrid-provider.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/migrations\/migration-appwrite-report.md", "auth": { "Project": [] } }, "security": [ { - "Project": [], - "Key": [] + "Project": [] } ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "providerId": { - "type": "string", - "description": "Provider ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.", - "x-example": "<PROVIDER_ID>", - "x-appwrite": { - "idGenerator": "ID.unique" - } - }, - "name": { - "type": "string", - "description": "Provider name.", - "x-example": "<NAME>" - }, - "apiKey": { - "type": "string", - "description": "Sendgrid API key.", - "default": "", - "x-example": "<API_KEY>" - }, - "fromName": { - "type": "string", - "description": "Sender Name.", - "default": "", - "x-example": "<FROM_NAME>" - }, - "fromEmail": { - "type": "string", - "description": "Sender email address.", - "default": "", - "x-example": "email@example.com", - "format": "email" - }, - "replyToName": { - "type": "string", - "description": "Name set in the reply to field for the mail. Default value is sender name.", - "default": "", - "x-example": "<REPLY_TO_NAME>" - }, - "replyToEmail": { - "type": "string", - "description": "Email set in the reply to field for the mail. Default value is sender email.", - "default": "", - "x-example": "email@example.com", - "format": "email" - }, - "enabled": { - "type": "boolean", - "description": "Set as enabled.", - "x-example": false, - "x-nullable": true - } - }, - "required": [ - "providerId", - "name" + "parameters": [ + { + "name": "resources", + "description": "List of resources to migrate", + "required": true, + "schema": { + "type": "array", + "items": { + "type": "string", + "enum": [ + "user", + "team", + "membership", + "auth-methods", + "policies", + "oauth2-provider", + "database", + "table", + "column", + "index", + "row", + "document", + "attribute", + "collection", + "documentsdb", + "vectorsdb", + "bucket", + "file", + "function", + "deployment", + "environment-variable", + "provider", + "topic", + "subscriber", + "message", + "site", + "site-deployment", + "site-variable", + "platform", + "api-key", + "webhook", + "smtp", + "backup-policy", + "project-variable", + "project-protocols", + "project-labels", + "project-services", + "project-email-template", + "rule" + ], + "x-enum-name": "AppwriteMigrationResource", + "x-enum-keys": [ + "user", + "team", + "membership", + "auth-methods", + "policies", + "oauth2-provider", + "database", + "table", + "column", + "index", + "row", + "document", + "attribute", + "collection", + "documentsdb", + "vectorsdb", + "bucket", + "file", + "function", + "deployment", + "environment-variable", + "provider", + "topic", + "subscriber", + "message", + "site", + "site-deployment", + "site-variable", + "platform", + "api-key", + "webhook", + "smtp", + "backup-policy", + "project-variable", + "project-protocols", + "project-labels", + "project-services", + "project-email-template", + "rule" ] } - } + }, + "in": "query" + }, + { + "name": "endpoint", + "description": "Source's Appwrite Endpoint", + "required": true, + "schema": { + "type": "string", + "format": "url", + "x-example": "https:\/\/example.com" + }, + "in": "query" + }, + { + "name": "projectID", + "description": "Source's Project ID", + "required": true, + "schema": { + "type": "string", + "x-example": "<PROJECT_ID>" + }, + "in": "query" + }, + { + "name": "key", + "description": "Source's API Key", + "required": true, + "schema": { + "type": "string", + "x-example": "<KEY>" + }, + "in": "query" } - } + ] } }, - "\/messaging\/providers\/sendgrid\/{providerId}": { - "patch": { - "summary": "Update Sendgrid provider", - "operationId": "messagingUpdateSendgridProvider", + "\/migrations\/csv\/exports": { + "post": { + "summary": "Export documents to CSV", + "operationId": "migrationsCreateCSVExport", "tags": [ - "messaging" + "migrations" ], - "description": "Update a Sendgrid provider by its unique ID.", + "description": "Export documents to a CSV file from your Appwrite database. This endpoint allows you to export documents to a CSV file stored in a secure internal bucket. You'll receive an email with a download link when the export is complete.", "responses": { - "200": { - "description": "Provider", + "202": { + "description": "Migration", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/provider" + "$ref": "#\/components\/schemas\/migration" } } } @@ -37023,42 +38503,28 @@ }, "deprecated": false, "x-appwrite": { - "method": "updateSendgridProvider", - "group": "providers", + "method": "createCSVExport", + "group": null, "cookies": false, "type": "", - "demo": "messaging\/update-sendgrid-provider.md", + "demo": "migrations\/create-csv-export.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "providers.write", + "scope": "migrations.write", "platforms": [ - "console", - "server" + "console" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/messaging\/update-sendgrid-provider.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/migrations\/migration-csv-export.md", "auth": { "Project": [] } }, "security": [ { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "providerId", - "description": "Provider ID.", - "required": true, - "schema": { - "type": "string", - "x-example": "<PROVIDER_ID>" - }, - "in": "path" + "Project": [] } ], "requestBody": { @@ -37067,71 +38533,96 @@ "schema": { "type": "object", "properties": { - "name": { + "databaseId": { "type": "string", - "description": "Provider name.", - "default": "", - "x-example": "<NAME>" - }, - "enabled": { - "type": "boolean", - "description": "Set as enabled.", - "x-example": false, - "x-nullable": true + "description": "Database ID containing the source collection.", + "x-example": "<DATABASE_ID>" }, - "apiKey": { + "collectionId": { "type": "string", - "description": "Sendgrid API key.", - "default": "", - "x-example": "<API_KEY>" + "description": "Collection ID to export documents from.", + "x-example": "<COLLECTION_ID>" }, - "fromName": { + "filename": { "type": "string", - "description": "Sender Name.", - "default": "", - "x-example": "<FROM_NAME>" + "description": "The name of the file to be created for the export, excluding the .csv extension.", + "x-example": "<FILENAME>" }, - "fromEmail": { + "columns": { + "type": "array", + "description": "List of attributes to export. If empty, all attributes will be exported. You can use the `*` wildcard to export all attributes from the collection.", + "default": [], + "x-example": null, + "items": { + "type": "string" + } + }, + "queries": { + "type": "array", + "description": "Array of query strings generated using the Query class provided by the SDK to filter documents to export. [Learn more about queries](https:\/\/appwrite.io\/docs\/databases#querying-documents). Maximum of 100 queries are allowed, each 4096 characters long.", + "default": [], + "x-example": null, + "items": { + "type": "string" + } + }, + "delimiter": { "type": "string", - "description": "Sender email address.", - "default": "", - "x-example": "email@example.com", - "format": "email" + "description": "The character that separates each column value. Default is comma.", + "default": ",", + "x-example": "<DELIMITER>" }, - "replyToName": { + "enclosure": { "type": "string", - "description": "Name set in the Reply To field for the mail. Default value is Sender Name.", - "default": "", - "x-example": "<REPLY_TO_NAME>" + "description": "The character that encloses each column value. Default is double quotes.", + "default": "\"", + "x-example": "<ENCLOSURE>" }, - "replyToEmail": { + "escape": { "type": "string", - "description": "Email set in the Reply To field for the mail. Default value is Sender Email.", - "default": "", - "x-example": "<REPLY_TO_EMAIL>" + "description": "The escape character for the enclosure character. Default is double quotes.", + "default": "\"", + "x-example": "<ESCAPE>" + }, + "header": { + "type": "boolean", + "description": "Whether to include the header row with column names. Default is true.", + "default": true, + "x-example": false + }, + "notify": { + "type": "boolean", + "description": "Set to true to receive an email when the export is complete. Default is true.", + "default": true, + "x-example": false } - } + }, + "required": [ + "databaseId", + "collectionId", + "filename" + ] } } } } } }, - "\/messaging\/providers\/ses": { + "\/migrations\/csv\/imports": { "post": { - "summary": "Create Amazon SES provider", - "operationId": "messagingCreateSesProvider", + "summary": "Import documents from a CSV", + "operationId": "migrationsCreateCSVImport", "tags": [ - "messaging" + "migrations" ], - "description": "Create a new Amazon SES provider.", + "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": { - "201": { - "description": "Provider", + "202": { + "description": "Migration", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/provider" + "$ref": "#\/components\/schemas\/migration" } } } @@ -37139,30 +38630,28 @@ }, "deprecated": false, "x-appwrite": { - "method": "createSesProvider", - "group": "providers", + "method": "createCSVImport", + "group": null, "cookies": false, "type": "", - "demo": "messaging\/create-ses-provider.md", + "demo": "migrations\/create-csv-import.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "providers.write", + "scope": "migrations.write", "platforms": [ - "console", - "server" + "console" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/messaging\/create-ses-provider.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/migrations\/migration-csv-import.md", "auth": { "Project": [] } }, "security": [ { - "Project": [], - "Key": [] + "Project": [] } ], "requestBody": { @@ -37171,73 +38660,55 @@ "schema": { "type": "object", "properties": { - "providerId": { - "type": "string", - "description": "Provider ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.", - "x-example": "<PROVIDER_ID>", - "x-appwrite": { - "idGenerator": "ID.unique" - } - }, - "name": { - "type": "string", - "description": "Provider name.", - "x-example": "<NAME>" - }, - "accessKey": { - "type": "string", - "description": "AWS access key ID.", - "default": "", - "x-example": "<ACCESS_KEY>" - }, - "secretKey": { + "bucketId": { "type": "string", - "description": "AWS secret access key.", - "default": "", - "x-example": "<SECRET_KEY>" + "description": "Storage bucket unique ID. You can create a new storage bucket using the Storage service [server integration](https:\/\/appwrite.io\/docs\/server\/storage#createBucket).", + "x-example": "<BUCKET_ID>" }, - "region": { + "fileId": { "type": "string", - "description": "AWS region, for example us-east-1.", - "default": "", - "x-example": "<REGION>" + "description": "File ID.", + "x-example": "<FILE_ID>" }, - "fromName": { + "databaseId": { "type": "string", - "description": "Sender Name.", - "default": "", - "x-example": "<FROM_NAME>" + "description": "Database ID containing the target collection.", + "x-example": "<DATABASE_ID>" }, - "fromEmail": { + "collectionId": { "type": "string", - "description": "Sender email address.", - "default": "", - "x-example": "email@example.com", - "format": "email" + "description": "Collection ID to import documents into.", + "x-example": "<COLLECTION_ID>" }, - "replyToName": { - "type": "string", - "description": "Name set in the reply to field for the mail. Default value is sender name.", - "default": "", - "x-example": "<REPLY_TO_NAME>" + "internalFile": { + "type": "boolean", + "description": "Is the file stored in an internal bucket?", + "default": false, + "x-example": false }, - "replyToEmail": { + "onDuplicate": { "type": "string", - "description": "Email set in the reply to field for the mail. Default value is sender email.", - "default": "", - "x-example": "email@example.com", - "format": "email" - }, - "enabled": { - "type": "boolean", - "description": "Set as enabled.", - "x-example": false, - "x-nullable": true + "description": "Behavior when a row with an existing $id is encountered. \"fail\" (default): abort on first conflict. \"skip\": silently ignore. \"overwrite\": replace existing row.", + "default": "fail", + "x-example": "fail", + "enum": [ + "fail", + "skip", + "overwrite" + ], + "x-enum-name": "OnDuplicate", + "x-enum-keys": [ + "fail", + "skip", + "overwrite" + ] } }, "required": [ - "providerId", - "name" + "bucketId", + "fileId", + "databaseId", + "collectionId" ] } } @@ -37245,21 +38716,21 @@ } } }, - "\/messaging\/providers\/ses\/{providerId}": { - "patch": { - "summary": "Update Amazon SES provider", - "operationId": "messagingUpdateSesProvider", + "\/migrations\/firebase": { + "post": { + "summary": "Create Firebase migration", + "operationId": "migrationsCreateFirebaseMigration", "tags": [ - "messaging" + "migrations" ], - "description": "Update an Amazon SES provider by its unique ID.", + "description": "Migrate data from a Firebase project to your Appwrite project. This endpoint allows you to migrate resources like authentication and other supported services from a Firebase project. ", "responses": { - "200": { - "description": "Provider", + "202": { + "description": "Migration", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/provider" + "$ref": "#\/components\/schemas\/migration" } } } @@ -37267,42 +38738,28 @@ }, "deprecated": false, "x-appwrite": { - "method": "updateSesProvider", - "group": "providers", + "method": "createFirebaseMigration", + "group": null, "cookies": false, "type": "", - "demo": "messaging\/update-ses-provider.md", + "demo": "migrations\/create-firebase-migration.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "providers.write", + "scope": "migrations.write", "platforms": [ - "console", - "server" + "console" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/messaging\/update-ses-provider.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/migrations\/migration-firebase.md", "auth": { "Project": [] } }, "security": [ { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "providerId", - "description": "Provider ID.", - "required": true, - "schema": { - "type": "string", - "x-example": "<PROVIDER_ID>" - }, - "in": "path" + "Project": [] } ], "requestBody": { @@ -37311,458 +38768,196 @@ "schema": { "type": "object", "properties": { - "name": { - "type": "string", - "description": "Provider name.", - "default": "", - "x-example": "<NAME>" - }, - "enabled": { - "type": "boolean", - "description": "Set as enabled.", - "x-example": false, - "x-nullable": true - }, - "accessKey": { - "type": "string", - "description": "AWS access key ID.", - "default": "", - "x-example": "<ACCESS_KEY>" - }, - "secretKey": { - "type": "string", - "description": "AWS secret access key.", - "default": "", - "x-example": "<SECRET_KEY>" - }, - "region": { - "type": "string", - "description": "AWS region, for example us-east-1.", - "default": "", - "x-example": "<REGION>" - }, - "fromName": { - "type": "string", - "description": "Sender Name.", - "default": "", - "x-example": "<FROM_NAME>" - }, - "fromEmail": { - "type": "string", - "description": "Sender email address.", - "default": "", - "x-example": "email@example.com", - "format": "email" - }, - "replyToName": { - "type": "string", - "description": "Name set in the Reply To field for the mail. Default value is Sender Name.", - "default": "", - "x-example": "<REPLY_TO_NAME>" + "resources": { + "type": "array", + "description": "List of resources to migrate", + "x-example": null, + "items": { + "type": "string", + "enum": [ + "user", + "database", + "table", + "column", + "row", + "document", + "attribute", + "collection", + "bucket", + "file" + ], + "x-enum-name": "FirebaseMigrationResource", + "x-enum-keys": [ + "user", + "database", + "table", + "column", + "row", + "document", + "attribute", + "collection", + "bucket", + "file" + ] + } }, - "replyToEmail": { + "serviceAccount": { "type": "string", - "description": "Email set in the Reply To field for the mail. Default value is Sender Email.", - "default": "", - "x-example": "<REPLY_TO_EMAIL>" + "description": "JSON of the Firebase service account credentials", + "x-example": "<SERVICE_ACCOUNT>" } - } + }, + "required": [ + "resources", + "serviceAccount" + ] } } } } } }, - "\/messaging\/providers\/smtp": { - "post": { - "summary": "Create SMTP provider", - "operationId": "messagingCreateSmtpProvider", + "\/migrations\/firebase\/report": { + "get": { + "summary": "Get Firebase migration report", + "operationId": "migrationsGetFirebaseReport", "tags": [ - "messaging" + "migrations" ], - "description": "Create a new SMTP provider.", + "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": { - "201": { - "description": "Provider", + "200": { + "description": "Migration Report", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/provider" + "$ref": "#\/components\/schemas\/migrationReport" } } } } }, - "deprecated": true, + "deprecated": false, "x-appwrite": { - "method": "createSmtpProvider", - "group": "providers", + "method": "getFirebaseReport", + "group": null, "cookies": false, "type": "", - "demo": "messaging\/create-smtp-provider.md", + "demo": "migrations\/get-firebase-report.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "providers.write", + "scope": "migrations.write", "platforms": [ - "console", - "server" + "console" ], "packaging": false, - "public": false, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/messaging\/create-smtp-provider.md", - "deprecated": { - "since": "1.8.0", - "replaceWith": "messaging.createSMTPProvider" - }, - "methods": [ - { - "name": "createSmtpProvider", - "namespace": "messaging", - "desc": "", - "auth": { - "Project": [] - }, - "parameters": [ - "providerId", - "name", - "host", - "port", - "username", - "password", - "encryption", - "autoTLS", - "mailer", - "fromName", - "fromEmail", - "replyToName", - "replyToEmail", - "enabled" - ], - "required": [ - "providerId", - "name", - "host" - ], - "responses": [ - { - "code": 201, - "model": "#\/components\/schemas\/provider" - } - ], - "description": "Create a new SMTP provider.", - "demo": "messaging\/create-smtp-provider.md", - "public": false, - "deprecated": { - "since": "1.8.0", - "replaceWith": "messaging.createSMTPProvider" - } - }, - { - "name": "createSMTPProvider", - "namespace": "messaging", - "desc": "", - "auth": { - "Project": [] - }, - "parameters": [ - "providerId", - "name", - "host", - "port", - "username", - "password", - "encryption", - "autoTLS", - "mailer", - "fromName", - "fromEmail", - "replyToName", - "replyToEmail", - "enabled" - ], - "required": [ - "providerId", - "name", - "host" - ], - "responses": [ - { - "code": 201, - "model": "#\/components\/schemas\/provider" - } - ], - "description": "Create a new SMTP provider.", - "demo": "messaging\/create-smtp-provider.md", - "public": true - } - ], + "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/migrations\/migration-firebase-report.md", "auth": { "Project": [] } }, "security": [ { - "Project": [], - "Key": [] + "Project": [] } ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "providerId": { - "type": "string", - "description": "Provider ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.", - "x-example": "<PROVIDER_ID>", - "x-appwrite": { - "idGenerator": "ID.unique" - } - }, - "name": { - "type": "string", - "description": "Provider name.", - "x-example": "<NAME>" - }, - "host": { - "type": "string", - "description": "SMTP hosts. Either a single hostname or multiple semicolon-delimited hostnames. You can also specify a different port for each host such as `smtp1.example.com:25;smtp2.example.com`. You can also specify encryption type, for example: `tls:\/\/smtp1.example.com:587;ssl:\/\/smtp2.example.com:465\"`. Hosts will be tried in order.", - "x-example": "<HOST>" - }, - "port": { - "type": "integer", - "description": "The default SMTP server port.", - "default": 587, - "x-example": 1, - "format": "int32" - }, - "username": { - "type": "string", - "description": "Authentication username.", - "default": "", - "x-example": "<USERNAME>" - }, - "password": { - "type": "string", - "description": "Authentication password.", - "default": "", - "x-example": "password", - "format": "password" - }, - "encryption": { - "type": "string", - "description": "Encryption type. Can be omitted, 'ssl', or 'tls'", - "x-example": "none", - "enum": [ - "none", - "ssl", - "tls" - ], - "x-enum-name": "SmtpEncryption", - "x-enum-keys": [ - "none", - "ssl", - "tls" - ] - }, - "autoTLS": { - "type": "boolean", - "description": "Enable SMTP AutoTLS feature.", - "default": true, - "x-example": false - }, - "mailer": { - "type": "string", - "description": "The value to use for the X-Mailer header.", - "default": "", - "x-example": "<MAILER>" - }, - "fromName": { - "type": "string", - "description": "Sender Name.", - "default": "", - "x-example": "<FROM_NAME>" - }, - "fromEmail": { - "type": "string", - "description": "Sender email address.", - "default": "", - "x-example": "email@example.com", - "format": "email" - }, - "replyToName": { - "type": "string", - "description": "Name set in the reply to field for the mail. Default value is sender name.", - "default": "", - "x-example": "<REPLY_TO_NAME>" - }, - "replyToEmail": { - "type": "string", - "description": "Email set in the reply to field for the mail. Default value is sender email.", - "default": "", - "x-example": "email@example.com", - "format": "email" - }, - "enabled": { - "type": "boolean", - "description": "Set as enabled.", - "x-example": false, - "x-nullable": true - } - }, - "required": [ - "providerId", - "name", - "host" + "parameters": [ + { + "name": "resources", + "description": "List of resources to migrate", + "required": true, + "schema": { + "type": "array", + "items": { + "type": "string", + "enum": [ + "user", + "database", + "table", + "column", + "row", + "document", + "attribute", + "collection", + "bucket", + "file" + ], + "x-enum-name": "FirebaseMigrationResource", + "x-enum-keys": [ + "user", + "database", + "table", + "column", + "row", + "document", + "attribute", + "collection", + "bucket", + "file" ] } - } + }, + "in": "query" + }, + { + "name": "serviceAccount", + "description": "JSON of the Firebase service account credentials", + "required": true, + "schema": { + "type": "string", + "x-example": "<SERVICE_ACCOUNT>" + }, + "in": "query" } - } + ] } }, - "\/messaging\/providers\/smtp\/{providerId}": { - "patch": { - "summary": "Update SMTP provider", - "operationId": "messagingUpdateSmtpProvider", + "\/migrations\/json\/exports": { + "post": { + "summary": "Export documents to JSON", + "operationId": "migrationsCreateJSONExport", "tags": [ - "messaging" + "migrations" ], - "description": "Update a SMTP provider by its unique ID.", + "description": "Export documents to a JSON file from your Appwrite database. This endpoint allows you to export documents to a JSON file stored in a secure internal bucket. You'll receive an email with a download link when the export is complete.\n", "responses": { - "200": { - "description": "Provider", + "202": { + "description": "Migration", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/provider" + "$ref": "#\/components\/schemas\/migration" } } } } }, - "deprecated": true, + "deprecated": false, "x-appwrite": { - "method": "updateSmtpProvider", - "group": "providers", + "method": "createJSONExport", + "group": null, "cookies": false, "type": "", - "demo": "messaging\/update-smtp-provider.md", + "demo": "migrations\/create-json-export.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "providers.write", + "scope": "migrations.write", "platforms": [ - "console", - "server" + "console" ], "packaging": false, - "public": false, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/messaging\/update-smtp-provider.md", - "deprecated": { - "since": "1.8.0", - "replaceWith": "messaging.updateSMTPProvider" - }, - "methods": [ - { - "name": "updateSmtpProvider", - "namespace": "messaging", - "desc": "", - "auth": { - "Project": [] - }, - "parameters": [ - "providerId", - "name", - "host", - "port", - "username", - "password", - "encryption", - "autoTLS", - "mailer", - "fromName", - "fromEmail", - "replyToName", - "replyToEmail", - "enabled" - ], - "required": [ - "providerId" - ], - "responses": [ - { - "code": 200, - "model": "#\/components\/schemas\/provider" - } - ], - "description": "Update a SMTP provider by its unique ID.", - "demo": "messaging\/update-smtp-provider.md", - "public": false, - "deprecated": { - "since": "1.8.0", - "replaceWith": "messaging.updateSMTPProvider" - } - }, - { - "name": "updateSMTPProvider", - "namespace": "messaging", - "desc": "", - "auth": { - "Project": [] - }, - "parameters": [ - "providerId", - "name", - "host", - "port", - "username", - "password", - "encryption", - "autoTLS", - "mailer", - "fromName", - "fromEmail", - "replyToName", - "replyToEmail", - "enabled" - ], - "required": [ - "providerId" - ], - "responses": [ - { - "code": 200, - "model": "#\/components\/schemas\/provider" - } - ], - "description": "Update a SMTP provider by its unique ID.", - "demo": "messaging\/update-smtp-provider.md", - "public": true - } - ], + "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/migrations\/migration-json-export.md", "auth": { "Project": [] } }, "security": [ { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "providerId", - "description": "Provider ID.", - "required": true, - "schema": { - "type": "string", - "x-example": "<PROVIDER_ID>" - }, - "in": "path" + "Project": [] } ], "requestBody": { @@ -37771,119 +38966,72 @@ "schema": { "type": "object", "properties": { - "name": { - "type": "string", - "description": "Provider name.", - "default": "", - "x-example": "<NAME>" - }, - "host": { - "type": "string", - "description": "SMTP hosts. Either a single hostname or multiple semicolon-delimited hostnames. You can also specify a different port for each host such as `smtp1.example.com:25;smtp2.example.com`. You can also specify encryption type, for example: `tls:\/\/smtp1.example.com:587;ssl:\/\/smtp2.example.com:465\"`. Hosts will be tried in order.", - "default": "", - "x-example": "<HOST>" - }, - "port": { - "type": "integer", - "description": "SMTP port.", - "x-example": 1, - "format": "int32", - "x-nullable": true - }, - "username": { - "type": "string", - "description": "Authentication username.", - "default": "", - "x-example": "<USERNAME>" - }, - "password": { - "type": "string", - "description": "Authentication password.", - "default": "", - "x-example": "password", - "format": "password" - }, - "encryption": { - "type": "string", - "description": "Encryption type. Can be 'ssl' or 'tls'", - "x-example": "none", - "enum": [ - "none", - "ssl", - "tls" - ], - "x-enum-name": "SmtpEncryption", - "x-enum-keys": [ - "none", - "ssl", - "tls" - ] - }, - "autoTLS": { - "type": "boolean", - "description": "Enable SMTP AutoTLS feature.", - "x-example": false, - "x-nullable": true - }, - "mailer": { + "databaseId": { "type": "string", - "description": "The value to use for the X-Mailer header.", - "default": "", - "x-example": "<MAILER>" + "description": "Database ID containing the source collection.", + "x-example": "<DATABASE_ID>" }, - "fromName": { + "collectionId": { "type": "string", - "description": "Sender Name.", - "default": "", - "x-example": "<FROM_NAME>" + "description": "Collection ID to export documents from.", + "x-example": "<COLLECTION_ID>" }, - "fromEmail": { + "filename": { "type": "string", - "description": "Sender email address.", - "default": "", - "x-example": "email@example.com", - "format": "email" + "description": "The name of the file to be created for the export, excluding the .json extension.", + "x-example": "<FILENAME>" }, - "replyToName": { - "type": "string", - "description": "Name set in the Reply To field for the mail. Default value is Sender Name.", - "default": "", - "x-example": "<REPLY_TO_NAME>" + "columns": { + "type": "array", + "description": "List of attributes to export. If empty, all attributes will be exported. You can use the `*` wildcard to export all attributes from the collection.", + "default": [], + "x-example": null, + "items": { + "type": "string" + } }, - "replyToEmail": { - "type": "string", - "description": "Email set in the Reply To field for the mail. Default value is Sender Email.", - "default": "", - "x-example": "<REPLY_TO_EMAIL>" + "queries": { + "type": "array", + "description": "Array of query strings generated using the Query class provided by the SDK to filter documents to export. [Learn more about queries](https:\/\/appwrite.io\/docs\/databases#querying-documents). Maximum of 100 queries are allowed, each 4096 characters long.", + "default": [], + "x-example": null, + "items": { + "type": "string" + } }, - "enabled": { + "notify": { "type": "boolean", - "description": "Set as enabled.", - "x-example": false, - "x-nullable": true + "description": "Set to true to receive an email when the export is complete. Default is true.", + "default": true, + "x-example": false } - } + }, + "required": [ + "databaseId", + "collectionId", + "filename" + ] } } } } } }, - "\/messaging\/providers\/telesign": { + "\/migrations\/json\/imports": { "post": { - "summary": "Create Telesign provider", - "operationId": "messagingCreateTelesignProvider", + "summary": "Import documents from a JSON", + "operationId": "migrationsCreateJSONImport", "tags": [ - "messaging" + "migrations" ], - "description": "Create a new Telesign provider.", + "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": { - "201": { - "description": "Provider", + "202": { + "description": "Migration", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/provider" + "$ref": "#\/components\/schemas\/migration" } } } @@ -37891,30 +39039,28 @@ }, "deprecated": false, "x-appwrite": { - "method": "createTelesignProvider", - "group": "providers", + "method": "createJSONImport", + "group": null, "cookies": false, "type": "", - "demo": "messaging\/create-telesign-provider.md", + "demo": "migrations\/create-json-import.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "providers.write", + "scope": "migrations.write", "platforms": [ - "console", - "server" + "console" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/messaging\/create-telesign-provider.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/migrations\/migration-json-import.md", "auth": { "Project": [] } }, "security": [ { - "Project": [], - "Key": [] + "Project": [] } ], "requestBody": { @@ -37923,48 +39069,55 @@ "schema": { "type": "object", "properties": { - "providerId": { - "type": "string", - "description": "Provider ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.", - "x-example": "<PROVIDER_ID>", - "x-appwrite": { - "idGenerator": "ID.unique" - } - }, - "name": { + "bucketId": { "type": "string", - "description": "Provider name.", - "x-example": "<NAME>" + "description": "Storage bucket unique ID. You can create a new storage bucket using the Storage service [server integration](https:\/\/appwrite.io\/docs\/server\/storage#createBucket).", + "x-example": "<BUCKET_ID>" }, - "from": { + "fileId": { "type": "string", - "description": "Sender Phone number. Format this number with a leading '+' and a country code, e.g., +16175551212.", - "default": "", - "x-example": "+12065550100", - "format": "phone" + "description": "File ID.", + "x-example": "<FILE_ID>" }, - "customerId": { + "databaseId": { "type": "string", - "description": "Telesign customer ID.", - "default": "", - "x-example": "<CUSTOMER_ID>" + "description": "Database ID containing the target collection.", + "x-example": "<DATABASE_ID>" }, - "apiKey": { + "collectionId": { "type": "string", - "description": "Telesign API key.", - "default": "", - "x-example": "<API_KEY>" + "description": "Collection ID to import documents into.", + "x-example": "<COLLECTION_ID>" }, - "enabled": { + "internalFile": { "type": "boolean", - "description": "Set as enabled.", - "x-example": false, - "x-nullable": true + "description": "Is the file stored in an internal bucket?", + "default": false, + "x-example": false + }, + "onDuplicate": { + "type": "string", + "description": "Behavior when a row with an existing $id is encountered. \"fail\" (default): abort on first conflict. \"skip\": silently ignore. \"overwrite\": replace existing row.", + "default": "fail", + "x-example": "fail", + "enum": [ + "fail", + "skip", + "overwrite" + ], + "x-enum-name": "OnDuplicate", + "x-enum-keys": [ + "fail", + "skip", + "overwrite" + ] } }, "required": [ - "providerId", - "name" + "bucketId", + "fileId", + "databaseId", + "collectionId" ] } } @@ -37972,21 +39125,21 @@ } } }, - "\/messaging\/providers\/telesign\/{providerId}": { - "patch": { - "summary": "Update Telesign provider", - "operationId": "messagingUpdateTelesignProvider", + "\/migrations\/nhost": { + "post": { + "summary": "Create NHost migration", + "operationId": "migrationsCreateNHostMigration", "tags": [ - "messaging" + "migrations" ], - "description": "Update a Telesign provider by its unique ID.", + "description": "Migrate data from an NHost project to your Appwrite project. This endpoint allows you to migrate resources like authentication, databases, and other supported services from an NHost project. ", "responses": { - "200": { - "description": "Provider", + "202": { + "description": "Migration", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/provider" + "$ref": "#\/components\/schemas\/migration" } } } @@ -37994,42 +39147,28 @@ }, "deprecated": false, "x-appwrite": { - "method": "updateTelesignProvider", - "group": "providers", + "method": "createNHostMigration", + "group": null, "cookies": false, "type": "", - "demo": "messaging\/update-telesign-provider.md", + "demo": "migrations\/create-n-host-migration.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "providers.write", + "scope": "migrations.write", "platforms": [ - "console", - "server" + "console" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/messaging\/update-telesign-provider.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/migrations\/migration-nhost.md", "auth": { "Project": [] } }, "security": [ { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "providerId", - "description": "Provider ID.", - "required": true, - "schema": { - "type": "string", - "x-example": "<PROVIDER_ID>" - }, - "in": "path" + "Project": [] } ], "requestBody": { @@ -38038,139 +39177,88 @@ "schema": { "type": "object", "properties": { - "name": { - "type": "string", - "description": "Provider name.", - "default": "", - "x-example": "<NAME>" - }, - "enabled": { - "type": "boolean", - "description": "Set as enabled.", - "x-example": false, - "x-nullable": true - }, - "customerId": { - "type": "string", - "description": "Telesign customer ID.", - "default": "", - "x-example": "<CUSTOMER_ID>" - }, - "apiKey": { - "type": "string", - "description": "Telesign API key.", - "default": "", - "x-example": "<API_KEY>" + "resources": { + "type": "array", + "description": "List of resources to migrate", + "x-example": null, + "items": { + "type": "string", + "enum": [ + "user", + "database", + "table", + "column", + "index", + "row", + "document", + "attribute", + "collection", + "bucket", + "file" + ], + "x-enum-name": "NHostMigrationResource", + "x-enum-keys": [ + "user", + "database", + "table", + "column", + "index", + "row", + "document", + "attribute", + "collection", + "bucket", + "file" + ] + } }, - "from": { + "subdomain": { "type": "string", - "description": "Sender number.", - "default": "", - "x-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": { - "method": "createTextmagicProvider", - "group": "providers", - "cookies": false, - "type": "", - "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, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/messaging\/create-textmagic-provider.md", - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "providerId": { + "description": "Source's Subdomain", + "x-example": "<SUBDOMAIN>" + }, + "region": { "type": "string", - "description": "Provider ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.", - "x-example": "<PROVIDER_ID>", - "x-appwrite": { - "idGenerator": "ID.unique" - } + "description": "Source's Region", + "x-example": "<REGION>" }, - "name": { + "adminSecret": { "type": "string", - "description": "Provider name.", - "x-example": "<NAME>" + "description": "Source's Admin Secret", + "x-example": "<ADMIN_SECRET>" }, - "from": { + "database": { "type": "string", - "description": "Sender Phone number. Format this number with a leading '+' and a country code, e.g., +16175551212.", - "default": "", - "x-example": "+12065550100", - "format": "phone" + "description": "Source's Database Name", + "x-example": "<DATABASE>" }, "username": { "type": "string", - "description": "Textmagic username.", - "default": "", + "description": "Source's Database Username", "x-example": "<USERNAME>" }, - "apiKey": { + "password": { "type": "string", - "description": "Textmagic apiKey.", - "default": "", - "x-example": "<API_KEY>" + "description": "Source's Database Password", + "x-example": "password", + "format": "password" }, - "enabled": { - "type": "boolean", - "description": "Set as enabled.", - "x-example": false, - "x-nullable": true + "port": { + "type": "integer", + "description": "Source's Database Port", + "default": 5432, + "x-example": null, + "format": "int32" } }, "required": [ - "providerId", - "name" + "resources", + "subdomain", + "region", + "adminSecret", + "database", + "username", + "password" ] } } @@ -38178,21 +39266,21 @@ } } }, - "\/messaging\/providers\/textmagic\/{providerId}": { - "patch": { - "summary": "Update Textmagic provider", - "operationId": "messagingUpdateTextmagicProvider", + "\/migrations\/nhost\/report": { + "get": { + "summary": "Get NHost migration report", + "operationId": "migrationsGetNHostReport", "tags": [ - "messaging" + "migrations" ], - "description": "Update a Textmagic provider by its unique ID.", + "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": "Provider", + "description": "Migration Report", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/provider" + "$ref": "#\/components\/schemas\/migrationReport" } } } @@ -38200,102 +39288,160 @@ }, "deprecated": false, "x-appwrite": { - "method": "updateTextmagicProvider", - "group": "providers", + "method": "getNHostReport", + "group": null, "cookies": false, "type": "", - "demo": "messaging\/update-textmagic-provider.md", + "demo": "migrations\/get-n-host-report.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "providers.write", + "scope": "migrations.write", "platforms": [ - "console", - "server" + "console" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/messaging\/update-textmagic-provider.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/migrations\/migration-nhost-report.md", "auth": { "Project": [] } }, "security": [ { - "Project": [], - "Key": [] + "Project": [] } ], "parameters": [ { - "name": "providerId", - "description": "Provider ID.", + "name": "resources", + "description": "List of resources to migrate.", + "required": true, + "schema": { + "type": "array", + "items": { + "type": "string", + "enum": [ + "user", + "database", + "table", + "column", + "index", + "row", + "document", + "attribute", + "collection", + "bucket", + "file" + ], + "x-enum-name": "NHostMigrationResource", + "x-enum-keys": [ + "user", + "database", + "table", + "column", + "index", + "row", + "document", + "attribute", + "collection", + "bucket", + "file" + ] + } + }, + "in": "query" + }, + { + "name": "subdomain", + "description": "Source's Subdomain.", "required": true, "schema": { "type": "string", - "x-example": "<PROVIDER_ID>" + "x-example": "<SUBDOMAIN>" }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "name": { - "type": "string", - "description": "Provider name.", - "default": "", - "x-example": "<NAME>" - }, - "enabled": { - "type": "boolean", - "description": "Set as enabled.", - "x-example": false, - "x-nullable": true - }, - "username": { - "type": "string", - "description": "Textmagic username.", - "default": "", - "x-example": "<USERNAME>" - }, - "apiKey": { - "type": "string", - "description": "Textmagic apiKey.", - "default": "", - "x-example": "<API_KEY>" - }, - "from": { - "type": "string", - "description": "Sender number.", - "default": "", - "x-example": "<FROM>" - } - } - } - } + "in": "query" + }, + { + "name": "region", + "description": "Source's Region.", + "required": true, + "schema": { + "type": "string", + "x-example": "<REGION>" + }, + "in": "query" + }, + { + "name": "adminSecret", + "description": "Source's Admin Secret.", + "required": true, + "schema": { + "type": "string", + "x-example": "<ADMIN_SECRET>" + }, + "in": "query" + }, + { + "name": "database", + "description": "Source's Database Name.", + "required": true, + "schema": { + "type": "string", + "x-example": "<DATABASE>" + }, + "in": "query" + }, + { + "name": "username", + "description": "Source's Database Username.", + "required": true, + "schema": { + "type": "string", + "x-example": "<USERNAME>" + }, + "in": "query" + }, + { + "name": "password", + "description": "Source's Database Password.", + "required": true, + "schema": { + "type": "string", + "format": "password", + "x-example": "password" + }, + "in": "query" + }, + { + "name": "port", + "description": "Source's Database Port.", + "required": false, + "schema": { + "type": "integer", + "format": "int32", + "default": 5432 + }, + "in": "query" } - } + ] } }, - "\/messaging\/providers\/twilio": { + "\/migrations\/supabase": { "post": { - "summary": "Create Twilio provider", - "operationId": "messagingCreateTwilioProvider", + "summary": "Create Supabase migration", + "operationId": "migrationsCreateSupabaseMigration", "tags": [ - "messaging" + "migrations" ], - "description": "Create a new Twilio provider.", + "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": { - "201": { - "description": "Provider", + "202": { + "description": "Migration", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/provider" + "$ref": "#\/components\/schemas\/migration" } } } @@ -38303,30 +39449,28 @@ }, "deprecated": false, "x-appwrite": { - "method": "createTwilioProvider", - "group": "providers", + "method": "createSupabaseMigration", + "group": null, "cookies": false, "type": "", - "demo": "messaging\/create-twilio-provider.md", + "demo": "migrations\/create-supabase-migration.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "providers.write", + "scope": "migrations.write", "platforms": [ - "console", - "server" + "console" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/messaging\/create-twilio-provider.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/migrations\/migration-supabase.md", "auth": { "Project": [] } }, "security": [ { - "Project": [], - "Key": [] + "Project": [] } ], "requestBody": { @@ -38335,48 +39479,83 @@ "schema": { "type": "object", "properties": { - "providerId": { - "type": "string", - "description": "Provider ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.", - "x-example": "<PROVIDER_ID>", - "x-appwrite": { - "idGenerator": "ID.unique" + "resources": { + "type": "array", + "description": "List of resources to migrate", + "x-example": null, + "items": { + "type": "string", + "enum": [ + "user", + "database", + "table", + "column", + "index", + "row", + "document", + "attribute", + "collection", + "bucket", + "file" + ], + "x-enum-name": "SupabaseMigrationResource", + "x-enum-keys": [ + "user", + "database", + "table", + "column", + "index", + "row", + "document", + "attribute", + "collection", + "bucket", + "file" + ] } }, - "name": { + "endpoint": { "type": "string", - "description": "Provider name.", - "x-example": "<NAME>" + "description": "Source's Supabase Endpoint", + "x-example": "https:\/\/example.com", + "format": "url" }, - "from": { + "apiKey": { "type": "string", - "description": "Sender Phone number. Format this number with a leading '+' and a country code, e.g., +16175551212.", - "default": "", - "x-example": "+12065550100", - "format": "phone" + "description": "Source's API Key", + "x-example": "<API_KEY>" }, - "accountSid": { + "databaseHost": { "type": "string", - "description": "Twilio account secret ID.", - "default": "", - "x-example": "<ACCOUNT_SID>" + "description": "Source's Database Host", + "x-example": "<DATABASE_HOST>" }, - "authToken": { + "username": { "type": "string", - "description": "Twilio authentication token.", - "default": "", - "x-example": "<AUTH_TOKEN>" + "description": "Source's Database Username", + "x-example": "<USERNAME>" }, - "enabled": { - "type": "boolean", - "description": "Set as enabled.", - "x-example": false, - "x-nullable": true + "password": { + "type": "string", + "description": "Source's Database Password", + "x-example": "password", + "format": "password" + }, + "port": { + "type": "integer", + "description": "Source's Database Port", + "default": 5432, + "x-example": null, + "format": "int32" } }, "required": [ - "providerId", - "name" + "resources", + "endpoint", + "apiKey", + "databaseHost", + "username", + "password" ] } } @@ -38384,21 +39563,21 @@ } } }, - "\/messaging\/providers\/twilio\/{providerId}": { - "patch": { - "summary": "Update Twilio provider", - "operationId": "messagingUpdateTwilioProvider", + "\/migrations\/supabase\/report": { + "get": { + "summary": "Get Supabase migration report", + "operationId": "migrationsGetSupabaseReport", "tags": [ - "messaging" + "migrations" ], - "description": "Update a Twilio provider by its unique ID.", + "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": "Provider", + "description": "Migration Report", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/provider" + "$ref": "#\/components\/schemas\/migrationReport" } } } @@ -38406,205 +39585,151 @@ }, "deprecated": false, "x-appwrite": { - "method": "updateTwilioProvider", - "group": "providers", + "method": "getSupabaseReport", + "group": null, "cookies": false, "type": "", - "demo": "messaging\/update-twilio-provider.md", + "demo": "migrations\/get-supabase-report.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "providers.write", + "scope": "migrations.write", "platforms": [ - "console", - "server" + "console" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/messaging\/update-twilio-provider.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/migrations\/migration-supabase-report.md", "auth": { "Project": [] } }, "security": [ { - "Project": [], - "Key": [] + "Project": [] } ], "parameters": [ { - "name": "providerId", - "description": "Provider ID.", + "name": "resources", + "description": "List of resources to migrate", "required": true, "schema": { - "type": "string", - "x-example": "<PROVIDER_ID>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "name": { - "type": "string", - "description": "Provider name.", - "default": "", - "x-example": "<NAME>" - }, - "enabled": { - "type": "boolean", - "description": "Set as enabled.", - "x-example": false, - "x-nullable": true - }, - "accountSid": { - "type": "string", - "description": "Twilio account secret ID.", - "default": "", - "x-example": "<ACCOUNT_SID>" - }, - "authToken": { - "type": "string", - "description": "Twilio authentication token.", - "default": "", - "x-example": "<AUTH_TOKEN>" - }, - "from": { - "type": "string", - "description": "Sender number.", - "default": "", - "x-example": "<FROM>" - } - } - } - } - } - } - } - }, - "\/messaging\/providers\/vonage": { - "post": { - "summary": "Create Vonage provider", - "operationId": "messagingCreateVonageProvider", - "tags": [ - "messaging" - ], - "description": "Create a new Vonage provider.", - "responses": { - "201": { - "description": "Provider", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/provider" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "method": "createVonageProvider", - "group": "providers", - "cookies": false, - "type": "", - "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, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/messaging\/create-vonage-provider.md", - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "providerId": { - "type": "string", - "description": "Provider ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.", - "x-example": "<PROVIDER_ID>", - "x-appwrite": { - "idGenerator": "ID.unique" - } - }, - "name": { - "type": "string", - "description": "Provider name.", - "x-example": "<NAME>" - }, - "from": { - "type": "string", - "description": "Sender Phone number. Format this number with a leading '+' and a country code, e.g., +16175551212.", - "default": "", - "x-example": "+12065550100", - "format": "phone" - }, - "apiKey": { - "type": "string", - "description": "Vonage API key.", - "default": "", - "x-example": "<API_KEY>" - }, - "apiSecret": { - "type": "string", - "description": "Vonage API secret.", - "default": "", - "x-example": "<API_SECRET>" - }, - "enabled": { - "type": "boolean", - "description": "Set as enabled.", - "x-example": false, - "x-nullable": true - } - }, - "required": [ - "providerId", - "name" + "type": "array", + "items": { + "type": "string", + "enum": [ + "user", + "database", + "table", + "column", + "index", + "row", + "document", + "attribute", + "collection", + "bucket", + "file" + ], + "x-enum-name": "SupabaseMigrationResource", + "x-enum-keys": [ + "user", + "database", + "table", + "column", + "index", + "row", + "document", + "attribute", + "collection", + "bucket", + "file" ] } - } + }, + "in": "query" + }, + { + "name": "endpoint", + "description": "Source's Supabase Endpoint.", + "required": true, + "schema": { + "type": "string", + "format": "url", + "x-example": "https:\/\/example.com" + }, + "in": "query" + }, + { + "name": "apiKey", + "description": "Source's API Key.", + "required": true, + "schema": { + "type": "string", + "x-example": "<API_KEY>" + }, + "in": "query" + }, + { + "name": "databaseHost", + "description": "Source's Database Host.", + "required": true, + "schema": { + "type": "string", + "x-example": "<DATABASE_HOST>" + }, + "in": "query" + }, + { + "name": "username", + "description": "Source's Database Username.", + "required": true, + "schema": { + "type": "string", + "x-example": "<USERNAME>" + }, + "in": "query" + }, + { + "name": "password", + "description": "Source's Database Password.", + "required": true, + "schema": { + "type": "string", + "format": "password", + "x-example": "password" + }, + "in": "query" + }, + { + "name": "port", + "description": "Source's Database Port.", + "required": false, + "schema": { + "type": "integer", + "format": "int32", + "default": 5432 + }, + "in": "query" } - } + ] } }, - "\/messaging\/providers\/vonage\/{providerId}": { - "patch": { - "summary": "Update Vonage provider", - "operationId": "messagingUpdateVonageProvider", + "\/migrations\/{migrationId}": { + "get": { + "summary": "Get migration", + "operationId": "migrationsGet", "tags": [ - "messaging" + "migrations" ], - "description": "Update a Vonage provider by its unique ID.", + "description": "Get a migration by its unique ID. This endpoint returns detailed information about a specific migration including its current status, progress, and any errors that occurred during the migration process. ", "responses": { "200": { - "description": "Provider", + "description": "Migration", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/provider" + "$ref": "#\/components\/schemas\/migration" } } } @@ -38612,102 +39737,57 @@ }, "deprecated": false, "x-appwrite": { - "method": "updateVonageProvider", - "group": "providers", + "method": "get", + "group": null, "cookies": false, "type": "", - "demo": "messaging\/update-vonage-provider.md", + "demo": "migrations\/get.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "providers.write", + "scope": "migrations.read", "platforms": [ - "console", - "server" + "console" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/messaging\/update-vonage-provider.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/migrations\/get-migration.md", "auth": { "Project": [] } }, "security": [ { - "Project": [], - "Key": [] + "Project": [] } ], "parameters": [ { - "name": "providerId", - "description": "Provider ID.", + "name": "migrationId", + "description": "Migration unique ID.", "required": true, "schema": { "type": "string", - "x-example": "<PROVIDER_ID>" + "x-example": "<MIGRATION_ID>" }, "in": "path" } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "name": { - "type": "string", - "description": "Provider name.", - "default": "", - "x-example": "<NAME>" - }, - "enabled": { - "type": "boolean", - "description": "Set as enabled.", - "x-example": false, - "x-nullable": true - }, - "apiKey": { - "type": "string", - "description": "Vonage API key.", - "default": "", - "x-example": "<API_KEY>" - }, - "apiSecret": { - "type": "string", - "description": "Vonage API secret.", - "default": "", - "x-example": "<API_SECRET>" - }, - "from": { - "type": "string", - "description": "Sender number.", - "default": "", - "x-example": "<FROM>" - } - } - } - } - } - } - } - }, - "\/messaging\/providers\/{providerId}": { - "get": { - "summary": "Get provider", - "operationId": "messagingGetProvider", + ] + }, + "patch": { + "summary": "Update retry migration", + "operationId": "migrationsRetry", "tags": [ - "messaging" + "migrations" ], - "description": "Get a provider by its unique ID.\n", + "description": "Retry a failed migration. This endpoint allows you to retry a migration that has previously failed.", "responses": { - "200": { - "description": "Provider", + "202": { + "description": "Migration", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/provider" + "$ref": "#\/components\/schemas\/migration" } } } @@ -38715,52 +39795,50 @@ }, "deprecated": false, "x-appwrite": { - "method": "getProvider", - "group": "providers", + "method": "retry", + "group": null, "cookies": false, "type": "", - "demo": "messaging\/get-provider.md", + "demo": "migrations\/retry.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "providers.read", + "scope": "migrations.write", "platforms": [ - "console", - "server" + "console" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/messaging\/get-provider.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/migrations\/retry-migration.md", "auth": { "Project": [] } }, "security": [ { - "Project": [], - "Key": [] + "Project": [] } ], "parameters": [ { - "name": "providerId", - "description": "Provider ID.", + "name": "migrationId", + "description": "Migration unique ID.", "required": true, "schema": { "type": "string", - "x-example": "<PROVIDER_ID>" + "x-example": "<MIGRATION_ID>" }, "in": "path" } ] }, "delete": { - "summary": "Delete provider", - "operationId": "messagingDeleteProvider", + "summary": "Delete migration", + "operationId": "migrationsDelete", "tags": [ - "messaging" + "migrations" ], - "description": "Delete a provider by its unique ID.", + "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" @@ -38768,61 +39846,59 @@ }, "deprecated": false, "x-appwrite": { - "method": "deleteProvider", - "group": "providers", + "method": "delete", + "group": null, "cookies": false, "type": "", - "demo": "messaging\/delete-provider.md", + "demo": "migrations\/delete.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "providers.write", + "scope": "migrations.write", "platforms": [ - "console", - "server" + "console" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/messaging\/delete-provider.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/migrations\/delete-migration.md", "auth": { "Project": [] } }, "security": [ { - "Project": [], - "Key": [] + "Project": [] } ], "parameters": [ { - "name": "providerId", - "description": "Provider ID.", + "name": "migrationId", + "description": "Migration ID.", "required": true, "schema": { "type": "string", - "x-example": "<PROVIDER_ID>" + "x-example": "<MIGRATION_ID>" }, "in": "path" } ] } }, - "\/messaging\/topics": { + "\/mongo": { "get": { - "summary": "List topics", - "operationId": "messagingListTopics", + "summary": "List dedicated databases.", + "operationId": "mongoList", "tags": [ - "messaging" + "mongo" ], - "description": "Get a list of all topics from the current Appwrite project.", + "description": "List all dedicated databases. Results support pagination.", "responses": { "200": { - "description": "Topic list", + "description": "Dedicated databases list", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/topicList" + "$ref": "#\/components\/schemas\/dedicatedDatabaseList" } } } @@ -38830,22 +39906,21 @@ }, "deprecated": false, "x-appwrite": { - "method": "listTopics", - "group": "topics", + "method": "list", + "group": "databases", "cookies": false, "type": "", - "demo": "messaging\/list-topics.md", + "demo": "mongo\/list.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "topics.read", + "scope": "databases.read", "platforms": [ "console", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/messaging\/list-topics.md", "auth": { "Project": [] } @@ -38859,7 +39934,7 @@ "parameters": [ { "name": "queries", - "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/queries). Maximum of 100 queries are allowed, each 4096 characters long. You may filter on the following attributes: name, description, emailTotal, smsTotal, pushTotal", + "description": "Array of query strings.", "required": false, "schema": { "type": "array", @@ -38869,45 +39944,23 @@ "default": [] }, "in": "query" - }, - { - "name": "search", - "description": "Search term to filter your list results. Max length: 256 chars.", - "required": false, - "schema": { - "type": "string", - "x-example": "<SEARCH>", - "default": "" - }, - "in": "query" - }, - { - "name": "total", - "description": "When set to false, the total count returned will be 0 and will not be calculated.", - "required": false, - "schema": { - "type": "boolean", - "x-example": false, - "default": true - }, - "in": "query" } ] }, "post": { - "summary": "Create topic", - "operationId": "messagingCreateTopic", + "summary": "Create a dedicated database.", + "operationId": "mongoCreate", "tags": [ - "messaging" + "mongo" ], - "description": "Create a new topic.", + "description": "Create a new dedicated database with the chosen engine and configuration. Status will be 'provisioning' until the database is ready.", "responses": { "201": { - "description": "Topic", + "description": "DedicatedDatabase", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/topic" + "$ref": "#\/components\/schemas\/dedicatedDatabase" } } } @@ -38915,22 +39968,21 @@ }, "deprecated": false, "x-appwrite": { - "method": "createTopic", - "group": "topics", + "method": "create", + "group": "databases", "cookies": false, "type": "", - "demo": "messaging\/create-topic.md", + "demo": "mongo\/create.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "topics.write", + "scope": "databases.write", "platforms": [ "console", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/messaging\/create-topic.md", "auth": { "Project": [] } @@ -38947,33 +39999,114 @@ "schema": { "type": "object", "properties": { - "topicId": { + "databaseId": { "type": "string", - "description": "Topic ID. Choose a custom Topic ID or a new Topic ID.", - "x-example": "<TOPIC_ID>", + "description": "Database ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.", + "x-example": "<DATABASE_ID>", "x-appwrite": { "idGenerator": "ID.unique" } }, "name": { "type": "string", - "description": "Topic Name.", + "description": "Database display name. Max length: 128 chars.", "x-example": "<NAME>" }, - "subscribe": { + "version": { + "type": "string", + "description": "Database engine version. Defaults to latest for selected engine.", + "x-example": "17", + "x-nullable": true + }, + "specification": { + "type": "string", + "description": "Specification identifier. Drives the allocated CPU, memory, storage, storage class, and connection ceiling.", + "default": "s-1vcpu-1gb", + "x-example": "<SPECIFICATION>" + }, + "replicas": { + "type": "integer", + "description": "Number of high availability replicas (0-5). High availability is enabled when greater than 0.", + "default": 0, + "x-example": 0, + "format": "int32" + }, + "syncMode": { + "type": "string", + "description": "Replication sync mode preference. Allowed values: async, sync, quorum.", + "x-example": "async", + "x-nullable": true + }, + "standbyRegion": { + "type": "string", + "description": "Standby region for a cross-region replica. When set, a replica is provisioned in this region for cross-region high availability. Must differ from the database region.", + "x-example": "<STANDBY_REGION>", + "x-nullable": true + }, + "networkIdleTimeoutSeconds": { + "type": "integer", + "description": "Connection idle timeout in seconds.", + "default": 900, + "x-example": 60, + "format": "int32" + }, + "networkIPAllowlist": { "type": "array", - "description": "An array of role strings with subscribe permission. By default all users are granted with any subscribe permission. [learn more about roles](https:\/\/appwrite.io\/docs\/permissions#permission-roles). Maximum of 100 roles are allowed, each 64 characters long.", - "default": [ - "users" - ], - "x-example": "[\"any\"]", + "description": "IP addresses\/CIDR ranges allowed to connect.", + "x-example": null, "items": { "type": "string" - } - } - }, - "required": [ - "topicId", + }, + "x-nullable": true + }, + "idleTimeoutMinutes": { + "type": "integer", + "description": "Minutes of inactivity before container scales to zero.", + "default": 15, + "x-example": 5, + "format": "int32" + }, + "pitr": { + "type": "boolean", + "description": "Enable point-in-time recovery (PITR). Continuously archives changes so the database can be restored to any moment within the retention window.", + "default": true, + "x-example": false + }, + "pitrRetentionDays": { + "type": "integer", + "description": "Number of days to retain PITR data.", + "default": 7, + "x-example": 1, + "format": "int32" + }, + "storageAutoscaling": { + "type": "boolean", + "description": "Enable automatic storage expansion when usage exceeds threshold.", + "default": false, + "x-example": false + }, + "storageAutoscalingThresholdPercent": { + "type": "integer", + "description": "Storage usage percentage (50-95) that triggers automatic expansion.", + "default": 85, + "x-example": 50, + "format": "int32" + }, + "storageAutoscalingMaxGb": { + "type": "integer", + "description": "Maximum storage size in GB for autoscaling. 0 means no limit.", + "default": 0, + "x-example": 0, + "format": "int32" + }, + "api": { + "type": "string", + "description": "Product API that owns this database: tablesdb, documentsdb, or vectorsdb. Omit for a raw database reached directly; its api is its engine. tablesdb\/documentsdb\/vectorsdb databases are reached only through their product APIs.", + "x-example": "tablesdb" + } + }, + "required": [ + "databaseId", "name" ] } @@ -38982,21 +40115,21 @@ } } }, - "\/messaging\/topics\/{topicId}": { + "\/mongo\/specifications": { "get": { - "summary": "Get topic", - "operationId": "messagingGetTopic", + "summary": "List dedicated database specifications.", + "operationId": "mongoListSpecifications", "tags": [ - "messaging" + "mongo" ], - "description": "Get a topic by its unique ID.\n", + "description": "List the dedicated database specifications available on the current plan. Each specification reports its resource limits, pricing, and whether it is enabled for the organization.", "responses": { "200": { - "description": "Topic", + "description": "SpecificationList", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/topic" + "$ref": "#\/components\/schemas\/dedicatedDatabaseSpecificationList" } } } @@ -39004,22 +40137,70 @@ }, "deprecated": false, "x-appwrite": { - "method": "getTopic", - "group": "topics", + "method": "listSpecifications", + "group": "databases", "cookies": false, "type": "", - "demo": "messaging\/get-topic.md", + "demo": "mongo\/list-specifications.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "topics.read", + "scope": "databases.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ] + } + }, + "\/mongo\/{databaseId}": { + "get": { + "summary": "Get dedicated 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": { + "method": "get", + "group": "databases", + "cookies": false, + "type": "", + "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, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/messaging\/get-topic.md", "auth": { "Project": [] } @@ -39032,31 +40213,31 @@ ], "parameters": [ { - "name": "topicId", - "description": "Topic ID.", + "name": "databaseId", + "description": "Database ID.", "required": true, "schema": { "type": "string", - "x-example": "<TOPIC_ID>" + "x-example": "<DATABASE_ID>" }, "in": "path" } ] }, "patch": { - "summary": "Update topic", - "operationId": "messagingUpdateTopic", + "summary": "Update dedicated database.", + "operationId": "mongoUpdate", "tags": [ - "messaging" + "mongo" ], - "description": "Update a topic by its unique ID.\n", + "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": "Topic", + "description": "DedicatedDatabase", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/topic" + "$ref": "#\/components\/schemas\/dedicatedDatabase" } } } @@ -39064,22 +40245,21 @@ }, "deprecated": false, "x-appwrite": { - "method": "updateTopic", - "group": "topics", + "method": "update", + "group": "databases", "cookies": false, "type": "", - "demo": "messaging\/update-topic.md", + "demo": "mongo\/update.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "topics.write", + "scope": "databases.write", "platforms": [ "console", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/messaging\/update-topic.md", "auth": { "Project": [] } @@ -39092,12 +40272,12 @@ ], "parameters": [ { - "name": "topicId", - "description": "Topic ID.", + "name": "databaseId", + "description": "Database ID.", "required": true, "schema": { "type": "string", - "x-example": "<TOPIC_ID>" + "x-example": "<DATABASE_ID>" }, "in": "path" } @@ -39110,18 +40290,153 @@ "properties": { "name": { "type": "string", - "description": "Topic Name.", + "description": "Database display name.", "x-example": "<NAME>", "x-nullable": true }, - "subscribe": { + "status": { + "type": "string", + "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.", + "x-example": "ready", + "x-nullable": true + }, + "specification": { + "type": "string", + "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.", + "x-example": "<SPECIFICATION>", + "x-nullable": true + }, + "replicas": { + "type": "integer", + "description": "Number of high availability replicas (0-5). High availability is enabled when greater than 0.", + "x-example": 0, + "format": "int32", + "x-nullable": true + }, + "syncMode": { + "type": "string", + "description": "Replication sync mode preference. Allowed values: async, sync, quorum.", + "x-example": "async", + "x-nullable": true + }, + "crossRegionReplicas": { + "type": "integer", + "description": "Number of cross-region standby replicas (0-1). Cross-region replication is enabled when greater than 0.", + "x-example": 0, + "format": "int32", + "x-nullable": true + }, + "standbyRegion": { + "type": "string", + "description": "Standby region for the cross-region replica. Required when enabling cross-region replication and no standby region is already configured. Must differ from the database region.", + "x-example": "<STANDBY_REGION>", + "x-nullable": true + }, + "networkIdleTimeoutSeconds": { + "type": "integer", + "description": "Connection idle timeout in seconds (60-86400).", + "x-example": 60, + "format": "int32", + "x-nullable": true + }, + "networkIPAllowlist": { "type": "array", - "description": "An array of role strings with subscribe permission. By default all users are granted with any subscribe permission. [learn more about roles](https:\/\/appwrite.io\/docs\/permissions#permission-roles). Maximum of 100 roles are allowed, each 64 characters long.", - "x-example": "[\"any\"]", + "description": "IP addresses\/CIDR ranges allowed to connect.", + "x-example": null, + "items": { + "type": "string" + }, + "x-nullable": true + }, + "idleTimeoutMinutes": { + "type": "integer", + "description": "Minutes before container scales to zero.", + "x-example": 5, + "format": "int32", + "x-nullable": true + }, + "pitr": { + "type": "boolean", + "description": "Enable or disable point-in-time recovery (PITR).", + "x-example": false, + "x-nullable": true + }, + "pitrRetentionDays": { + "type": "integer", + "description": "Days to retain PITR data.", + "x-example": 1, + "format": "int32", + "x-nullable": true + }, + "storageAutoscaling": { + "type": "boolean", + "description": "Enable automatic storage expansion when usage exceeds threshold.", + "x-example": false, + "x-nullable": true + }, + "storageAutoscalingThresholdPercent": { + "type": "integer", + "description": "Storage usage percentage (50-95) that triggers automatic expansion.", + "x-example": 50, + "format": "int32", + "x-nullable": true + }, + "storageAutoscalingMaxGb": { + "type": "integer", + "description": "Maximum storage size in GB for autoscaling. 0 means no limit.", + "x-example": 0, + "format": "int32", + "x-nullable": true + }, + "metricsTraceSampleRate": { + "type": "number", + "description": "Fraction of queries to trace (0.0\u20131.0). Forwarded to the sidecar.", + "x-example": null, + "format": "float", + "x-nullable": true + }, + "metricsSlowQueryLogThresholdMs": { + "type": "integer", + "description": "Threshold in ms above which queries are logged as slow. Forwarded to the sidecar.", + "x-example": 0, + "format": "int32", + "x-nullable": true + }, + "sqlApiEnabled": { + "type": "boolean", + "description": "Enable the SQL API sidecar for this database.", + "x-example": false, + "x-nullable": true + }, + "sqlApiAllowedStatements": { + "type": "array", + "description": "Statement types the SQL API accepts. Allowed values: SELECT, INSERT, UPDATE, DELETE, CREATE, ALTER, DROP, TRUNCATE, GRANT, REVOKE.", + "x-example": null, "items": { "type": "string" }, "x-nullable": true + }, + "sqlApiMaxRows": { + "type": "integer", + "description": "Maximum rows returned per SQL API execution (1-1000000).", + "x-example": 1, + "format": "int32", + "x-nullable": true + }, + "sqlApiMaxBytes": { + "type": "integer", + "description": "Maximum serialised SQL API result payload in bytes (1024-104857600).", + "x-example": 1024, + "format": "int32", + "x-nullable": true + }, + "sqlApiTimeoutSeconds": { + "type": "integer", + "description": "Per-call SQL API execution timeout in seconds (1-300).", + "x-example": 1, + "format": "int32", + "x-nullable": true } } } @@ -39130,12 +40445,12 @@ } }, "delete": { - "summary": "Delete topic", - "operationId": "messagingDeleteTopic", + "summary": "Delete dedicated database.", + "operationId": "mongoDelete", "tags": [ - "messaging" + "mongo" ], - "description": "Delete a topic by its unique ID.", + "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" @@ -39143,22 +40458,24 @@ }, "deprecated": false, "x-appwrite": { - "method": "deleteTopic", - "group": "topics", + "method": "delete", + "group": "databases", "cookies": false, "type": "", - "demo": "messaging\/delete-topic.md", + "demo": "mongo\/delete.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "topics.write", + "scope": "databases.write", "platforms": [ "console", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/messaging\/delete-topic.md", + "produces": [ + "application\/json" + ], "auth": { "Project": [] } @@ -39171,33 +40488,33 @@ ], "parameters": [ { - "name": "topicId", - "description": "Topic ID.", + "name": "databaseId", + "description": "Database ID.", "required": true, "schema": { "type": "string", - "x-example": "<TOPIC_ID>" + "x-example": "<DATABASE_ID>" }, "in": "path" } ] } }, - "\/messaging\/topics\/{topicId}\/subscribers": { + "\/mongo\/{databaseId}\/backups": { "get": { - "summary": "List subscribers", - "operationId": "messagingListSubscribers", + "summary": "List database backups.", + "operationId": "mongoListBackups", "tags": [ - "messaging" + "mongo" ], - "description": "Get a list of all subscribers from the current Appwrite project.", + "description": "List all backups for a dedicated database. Results can be filtered by status and type.", "responses": { "200": { - "description": "Subscriber list", + "description": "BackupList", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/subscriberList" + "$ref": "#\/components\/schemas\/dedicatedDatabaseBackupList" } } } @@ -39205,22 +40522,21 @@ }, "deprecated": false, "x-appwrite": { - "method": "listSubscribers", - "group": "subscribers", + "method": "listBackups", + "group": "databases", "cookies": false, "type": "", - "demo": "messaging\/list-subscribers.md", + "demo": "mongo\/list-backups.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "subscribers.read", + "scope": "databases.read", "platforms": [ "console", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/messaging\/list-subscribers.md", "auth": { "Project": [] } @@ -39233,18 +40549,18 @@ ], "parameters": [ { - "name": "topicId", - "description": "Topic ID. The topic ID subscribed to.", + "name": "databaseId", + "description": "Database ID.", "required": true, "schema": { "type": "string", - "x-example": "<TOPIC_ID>" + "x-example": "<DATABASE_ID>" }, "in": "path" }, { "name": "queries", - "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/queries). Maximum of 100 queries are allowed, each 4096 characters long. You may filter on the following attributes: targetId, topicId, userId, providerType", + "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/queries). Maximum of 100 queries are allowed, each 4096 characters long. You may filter on the following attributes: status, type, databaseId", "required": false, "schema": { "type": "array", @@ -39254,45 +40570,23 @@ "default": [] }, "in": "query" - }, - { - "name": "search", - "description": "Search term to filter your list results. Max length: 256 chars.", - "required": false, - "schema": { - "type": "string", - "x-example": "<SEARCH>", - "default": "" - }, - "in": "query" - }, - { - "name": "total", - "description": "When set to false, the total count returned will be 0 and will not be calculated.", - "required": false, - "schema": { - "type": "boolean", - "x-example": false, - "default": true - }, - "in": "query" } ] }, "post": { - "summary": "Create subscriber", - "operationId": "messagingCreateSubscriber", + "summary": "Create a database backup.", + "operationId": "mongoCreateBackup", "tags": [ - "messaging" + "mongo" ], - "description": "Create a new subscriber.", + "description": "Create a manual backup of a dedicated database. The backup will be created asynchronously and its status can be checked via the get backup endpoint.", "responses": { - "201": { - "description": "Subscriber", + "202": { + "description": "Backup", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/subscriber" + "$ref": "#\/components\/schemas\/dedicatedDatabaseBackup" } } } @@ -39300,23 +40594,21 @@ }, "deprecated": false, "x-appwrite": { - "method": "createSubscriber", - "group": "subscribers", + "method": "createBackup", + "group": "databases", "cookies": false, "type": "", - "demo": "messaging\/create-subscriber.md", + "demo": "mongo\/create-backup.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "subscribers.write", + "scope": "databases.write", "platforms": [ - "server", - "client", - "console" + "console", + "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/messaging\/create-subscriber.md", "auth": { "Project": [] } @@ -39324,19 +40616,17 @@ "security": [ { "Project": [], - "JWT": [], - "Session": [], "Key": [] } ], "parameters": [ { - "name": "topicId", - "description": "Topic ID. The topic ID to subscribe to.", + "name": "databaseId", + "description": "Database ID.", "required": true, "schema": { "type": "string", - "x-example": "<TOPIC_ID>" + "x-example": "<DATABASE_ID>" }, "in": "path" } @@ -39347,45 +40637,34 @@ "schema": { "type": "object", "properties": { - "subscriberId": { - "type": "string", - "description": "Subscriber ID. Choose a custom Subscriber ID or a new Subscriber ID.", - "x-example": "<SUBSCRIBER_ID>", - "x-appwrite": { - "idGenerator": "ID.unique" - } - }, - "targetId": { + "type": { "type": "string", - "description": "Target ID. The target ID to link to the specified Topic ID.", - "x-example": "<TARGET_ID>" + "description": "Backup type: full or incremental.", + "default": "full", + "x-example": "full" } - }, - "required": [ - "subscriberId", - "targetId" - ] + } } } } } } }, - "\/messaging\/topics\/{topicId}\/subscribers\/{subscriberId}": { + "\/mongo\/{databaseId}\/backups\/policies": { "get": { - "summary": "Get subscriber", - "operationId": "messagingGetSubscriber", + "summary": "List database backup policies.", + "operationId": "mongoListBackupPolicies", "tags": [ - "messaging" + "mongo" ], - "description": "Get a subscriber by its unique ID.\n", + "description": "List scheduled backup policies for a dedicated database.", "responses": { "200": { - "description": "Subscriber", + "description": "Backup policy list", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/subscriber" + "$ref": "#\/components\/schemas\/backupPolicyList" } } } @@ -39393,22 +40672,21 @@ }, "deprecated": false, "x-appwrite": { - "method": "getSubscriber", - "group": "subscribers", + "method": "listBackupPolicies", + "group": "databases", "cookies": false, "type": "", - "demo": "messaging\/get-subscriber.md", + "demo": "mongo\/list-backup-policies.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "subscribers.read", + "scope": "databases.read", "platforms": [ "console", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/messaging\/get-subscriber.md", "auth": { "Project": [] } @@ -39421,58 +40699,66 @@ ], "parameters": [ { - "name": "topicId", - "description": "Topic ID. The topic ID subscribed to.", + "name": "databaseId", + "description": "Database ID.", "required": true, "schema": { "type": "string", - "x-example": "<TOPIC_ID>" + "x-example": "<DATABASE_ID>" }, "in": "path" }, { - "name": "subscriberId", - "description": "Subscriber ID.", - "required": true, + "name": "queries", + "description": "Array of query strings generated using the Query class provided by the SDK.", + "required": false, "schema": { - "type": "string", - "x-example": "<SUBSCRIBER_ID>" + "type": "array", + "items": { + "type": "string" + }, + "default": [] }, - "in": "path" + "in": "query" } ] }, - "delete": { - "summary": "Delete subscriber", - "operationId": "messagingDeleteSubscriber", + "post": { + "summary": "Create a database backup policy.", + "operationId": "mongoCreateBackupPolicy", "tags": [ - "messaging" + "mongo" ], - "description": "Delete a subscriber by its unique ID.", + "description": "Create a scheduled backup policy for a dedicated database.", "responses": { - "204": { - "description": "No content" + "201": { + "description": "backup", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/backupPolicy" + } + } + } } }, "deprecated": false, "x-appwrite": { - "method": "deleteSubscriber", - "group": "subscribers", + "method": "createBackupPolicy", + "group": "databases", "cookies": false, "type": "", - "demo": "messaging\/delete-subscriber.md", + "demo": "mongo\/create-backup-policy.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "subscribers.write", + "scope": "databases.write", "platforms": [ - "server", - "client", - "console" + "console", + "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/messaging\/delete-subscriber.md", "auth": { "Project": [] } @@ -39480,50 +40766,160 @@ "security": [ { "Project": [], - "JWT": [], - "Session": [], "Key": [] } ], "parameters": [ { - "name": "topicId", - "description": "Topic ID. The topic ID subscribed to.", + "name": "databaseId", + "description": "Database ID.", "required": true, "schema": { "type": "string", - "x-example": "<TOPIC_ID>" + "x-example": "<DATABASE_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "policyId": { + "type": "string", + "description": "Policy ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.", + "x-example": "<POLICY_ID>", + "x-appwrite": { + "idGenerator": "ID.unique" + } + }, + "name": { + "type": "string", + "description": "Policy name. Max length: 128 chars.", + "x-example": "<NAME>" + }, + "schedule": { + "type": "string", + "description": "Schedule CRON syntax.", + "x-example": null + }, + "retention": { + "type": "integer", + "description": "Days to keep backups before deletion.", + "x-example": 1, + "format": "int32" + }, + "type": { + "type": "string", + "description": "Backup type: full or incremental.", + "default": "full", + "x-example": "full" + }, + "enabled": { + "type": "boolean", + "description": "Is policy enabled? When disabled, no backups will be taken.", + "default": true, + "x-example": false + } + }, + "required": [ + "policyId", + "name", + "schedule", + "retention" + ] + } + } + } + } + } + }, + "\/mongo\/{databaseId}\/backups\/policies\/{policyId}": { + "get": { + "summary": "Get a database 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": { + "method": "getBackupPolicy", + "group": "databases", + "cookies": false, + "type": "", + "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", + "x-example": "<DATABASE_ID>" }, "in": "path" }, { - "name": "subscriberId", - "description": "Subscriber ID.", + "name": "policyId", + "description": "Policy ID.", "required": true, "schema": { "type": "string", - "x-example": "<SUBSCRIBER_ID>" + "x-example": "<POLICY_ID>" }, "in": "path" } ] - } - }, - "\/migrations": { - "get": { - "summary": "List migrations", - "operationId": "migrationsList", + }, + "patch": { + "summary": "Update a database backup policy.", + "operationId": "mongoUpdateBackupPolicy", "tags": [ - "migrations" + "mongo" ], - "description": "List all migrations in the current project. This endpoint returns a list of all migrations including their status, progress, and any errors that occurred during the migration process.", + "description": "Update a scheduled backup policy for a dedicated database.", "responses": { "200": { - "description": "Migrations List", + "description": "backup", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/migrationList" + "$ref": "#\/components\/schemas\/backupPolicy" } } } @@ -39531,84 +40927,170 @@ }, "deprecated": false, "x-appwrite": { - "method": "list", - "group": null, + "method": "updateBackupPolicy", + "group": "databases", "cookies": false, "type": "", - "demo": "migrations\/list.md", + "demo": "mongo\/update-backup-policy.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "migrations.read", + "scope": "databases.write", "platforms": [ - "console" + "console", + "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/migrations\/list-migrations.md", "auth": { "Project": [] } }, "security": [ { - "Project": [] + "Project": [], + "Key": [] } ], "parameters": [ { - "name": "queries", - "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/databases#querying-documents). Maximum of 100 queries are allowed, each 4096 characters long. You may filter on the following attributes: status, stage, source, destination, resources, resourceId, resourceType, statusCounters, resourceData, errors", - "required": false, + "name": "databaseId", + "description": "Database ID.", + "required": true, "schema": { - "type": "array", - "items": { - "type": "string" - }, - "default": [] + "type": "string", + "x-example": "<DATABASE_ID>" }, - "in": "query" + "in": "path" }, { - "name": "search", - "description": "Search term to filter your list results. Max length: 256 chars.", - "required": false, + "name": "policyId", + "description": "Policy ID.", + "required": true, "schema": { "type": "string", - "x-example": "<SEARCH>", - "default": "" + "x-example": "<POLICY_ID>" }, - "in": "query" + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "Policy name. Max length: 128 chars.", + "x-example": "<NAME>", + "x-nullable": true + }, + "schedule": { + "type": "string", + "description": "Schedule CRON syntax.", + "x-example": null + }, + "retention": { + "type": "integer", + "description": "Days to keep backups before deletion.", + "x-example": 1, + "format": "int32", + "x-nullable": true + }, + "enabled": { + "type": "boolean", + "description": "Is policy enabled? When disabled, no backups will be taken.", + "x-example": false, + "x-nullable": true + } + } + } + } + } + } + }, + "delete": { + "summary": "Delete a database 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": { + "method": "deleteBackupPolicy", + "group": "databases", + "cookies": false, + "type": "", + "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, + "produces": [ + "application\/json" + ], + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "x-example": "<DATABASE_ID>" + }, + "in": "path" }, { - "name": "total", - "description": "When set to false, the total count returned will be 0 and will not be calculated.", - "required": false, + "name": "policyId", + "description": "Policy ID.", + "required": true, "schema": { - "type": "boolean", - "x-example": false, - "default": true + "type": "string", + "x-example": "<POLICY_ID>" }, - "in": "query" + "in": "path" } ] } }, - "\/migrations\/appwrite": { - "post": { - "summary": "Create Appwrite migration", - "operationId": "migrationsCreateAppwriteMigration", + "\/mongo\/{databaseId}\/backups\/storage": { + "put": { + "summary": "Update database backup storage.", + "operationId": "mongoUpdateBackupStorage", "tags": [ - "migrations" + "mongo" ], - "description": "Migrate data from another Appwrite project to your current project. This endpoint allows you to migrate resources like databases, collections, documents, users, and files from an existing Appwrite project. ", + "description": "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": { - "202": { - "description": "Migration", + "200": { + "description": "BackupStorageConfig", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/migration" + "$ref": "#\/components\/schemas\/dedicatedDatabaseBackupStorage" } } } @@ -39616,28 +41098,41 @@ }, "deprecated": false, "x-appwrite": { - "method": "createAppwriteMigration", - "group": null, + "method": "updateBackupStorage", + "group": "databases", "cookies": false, "type": "", - "demo": "migrations\/create-appwrite-migration.md", + "demo": "mongo\/update-backup-storage.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "migrations.write", + "scope": "databases.write", "platforms": [ - "console" + "console", + "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/migrations\/migration-appwrite.md", "auth": { "Project": [] } }, "security": [ { - "Project": [] + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "x-example": "<DATABASE_ID>" + }, + "in": "path" } ], "requestBody": { @@ -39646,136 +41141,50 @@ "schema": { "type": "object", "properties": { - "resources": { - "type": "array", - "description": "List of resources to migrate", - "x-example": null, - "items": { - "type": "string", - "enum": [ - "user", - "team", - "membership", - "auth-methods", - "policies", - "oauth2-provider", - "database", - "table", - "column", - "index", - "row", - "document", - "attribute", - "collection", - "documentsdb", - "vectorsdb", - "bucket", - "file", - "function", - "deployment", - "environment-variable", - "provider", - "topic", - "subscriber", - "message", - "site", - "site-deployment", - "site-variable", - "platform", - "api-key", - "webhook", - "smtp", - "backup-policy", - "project-variable", - "project-protocols", - "project-labels", - "project-services", - "project-email-template", - "rule" - ], - "x-enum-name": "AppwriteMigrationResource", - "x-enum-keys": [ - "user", - "team", - "membership", - "auth-methods", - "policies", - "oauth2-provider", - "database", - "table", - "column", - "index", - "row", - "document", - "attribute", - "collection", - "documentsdb", - "vectorsdb", - "bucket", - "file", - "function", - "deployment", - "environment-variable", - "provider", - "topic", - "subscriber", - "message", - "site", - "site-deployment", - "site-variable", - "platform", - "api-key", - "webhook", - "smtp", - "backup-policy", - "project-variable", - "project-protocols", - "project-labels", - "project-services", - "project-email-template", - "rule" - ] - } + "provider": { + "type": "string", + "description": "Storage provider for off-cluster backups. Allowed values: s3 (Amazon S3 or S3-compatible), gcs (Google Cloud Storage), azure (Azure Blob Storage).", + "x-example": "s3" }, - "endpoint": { + "bucket": { "type": "string", - "description": "Source Appwrite endpoint", - "x-example": "https:\/\/example.com", - "format": "url" + "description": "Storage bucket or container name.", + "x-example": "<BUCKET>" }, - "projectId": { + "region": { "type": "string", - "description": "Source Project ID", - "x-example": "<PROJECT_ID>" + "description": "Storage region.", + "default": "", + "x-example": "<REGION>" }, - "apiKey": { + "prefix": { "type": "string", - "description": "Source API Key", - "x-example": "<API_KEY>" + "description": "Object key prefix for backups.", + "default": "backups\/", + "x-example": "<PREFIX>" }, - "onDuplicate": { + "endpoint": { "type": "string", - "description": "Behavior when a row with an existing $id is encountered. \"fail\" (default): abort on first conflict. \"skip\": silently ignore. \"overwrite\": replace existing row.", - "default": "fail", - "x-example": "fail", - "enum": [ - "fail", - "skip", - "overwrite" - ], - "x-enum-name": "OnDuplicate", - "x-enum-keys": [ - "fail", - "skip", - "overwrite" - ] + "description": "Custom endpoint for S3-compatible storage (e.g. MinIO).", + "default": "", + "x-example": "<ENDPOINT>" + }, + "accessKey": { + "type": "string", + "description": "Access key or client ID for authentication.", + "x-example": "<ACCESS_KEY>" + }, + "secretKey": { + "type": "string", + "description": "Secret key or service account JSON for authentication.", + "x-example": "<SECRET_KEY>" } }, "required": [ - "resources", - "endpoint", - "projectId", - "apiKey" + "provider", + "bucket", + "accessKey", + "secretKey" ] } } @@ -39783,21 +41192,21 @@ } } }, - "\/migrations\/appwrite\/report": { + "\/mongo\/{databaseId}\/backups\/{backupId}": { "get": { - "summary": "Get Appwrite migration report", - "operationId": "migrationsGetAppwriteReport", + "summary": "Get a database backup.", + "operationId": "mongoGetBackup", "tags": [ - "migrations" + "mongo" ], - "description": "Generate a report of the data in an Appwrite project before migrating. This endpoint analyzes the source project and returns information about the resources that can be migrated.", + "description": "Get details of a specific database backup including its status, size, and timestamps.", "responses": { "200": { - "description": "Migration Report", + "description": "Backup", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/migrationReport" + "$ref": "#\/components\/schemas\/dedicatedDatabaseBackup" } } } @@ -39805,175 +41214,135 @@ }, "deprecated": false, "x-appwrite": { - "method": "getAppwriteReport", - "group": null, + "method": "getBackup", + "group": "databases", "cookies": false, "type": "", - "demo": "migrations\/get-appwrite-report.md", + "demo": "mongo\/get-backup.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "migrations.write", + "scope": "databases.read", "platforms": [ - "console" + "console", + "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/migrations\/migration-appwrite-report.md", "auth": { "Project": [] } }, "security": [ { - "Project": [] + "Project": [], + "Key": [] } ], "parameters": [ { - "name": "resources", - "description": "List of resources to migrate", + "name": "databaseId", + "description": "Database ID.", "required": true, "schema": { - "type": "array", - "items": { - "type": "string", - "enum": [ - "user", - "team", - "membership", - "auth-methods", - "policies", - "oauth2-provider", - "database", - "table", - "column", - "index", - "row", - "document", - "attribute", - "collection", - "documentsdb", - "vectorsdb", - "bucket", - "file", - "function", - "deployment", - "environment-variable", - "provider", - "topic", - "subscriber", - "message", - "site", - "site-deployment", - "site-variable", - "platform", - "api-key", - "webhook", - "smtp", - "backup-policy", - "project-variable", - "project-protocols", - "project-labels", - "project-services", - "project-email-template", - "rule" - ], - "x-enum-name": "AppwriteMigrationResource", - "x-enum-keys": [ - "user", - "team", - "membership", - "auth-methods", - "policies", - "oauth2-provider", - "database", - "table", - "column", - "index", - "row", - "document", - "attribute", - "collection", - "documentsdb", - "vectorsdb", - "bucket", - "file", - "function", - "deployment", - "environment-variable", - "provider", - "topic", - "subscriber", - "message", - "site", - "site-deployment", - "site-variable", - "platform", - "api-key", - "webhook", - "smtp", - "backup-policy", - "project-variable", - "project-protocols", - "project-labels", - "project-services", - "project-email-template", - "rule" - ] - } + "type": "string", + "x-example": "<DATABASE_ID>" }, - "in": "query" + "in": "path" }, { - "name": "endpoint", - "description": "Source's Appwrite Endpoint", + "name": "backupId", + "description": "Backup ID.", "required": true, "schema": { "type": "string", - "format": "url", - "x-example": "https:\/\/example.com" + "x-example": "<BACKUP_ID>" }, - "in": "query" - }, + "in": "path" + } + ] + }, + "delete": { + "summary": "Delete a database 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": { + "method": "deleteBackup", + "group": "databases", + "cookies": false, + "type": "", + "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, + "produces": [ + "application\/json" + ], + "auth": { + "Project": [] + } + }, + "security": [ { - "name": "projectID", - "description": "Source's Project ID", + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", "required": true, "schema": { "type": "string", - "x-example": "<PROJECT_ID>" + "x-example": "<DATABASE_ID>" }, - "in": "query" + "in": "path" }, { - "name": "key", - "description": "Source's API Key", + "name": "backupId", + "description": "Backup ID.", "required": true, "schema": { "type": "string", - "x-example": "<KEY>" + "x-example": "<BACKUP_ID>" }, - "in": "query" + "in": "path" } ] } }, - "\/migrations\/csv\/exports": { - "post": { - "summary": "Export documents to CSV", - "operationId": "migrationsCreateCSVExport", + "\/mongo\/{databaseId}\/branches": { + "get": { + "summary": "List database branches.", + "operationId": "mongoListBranches", "tags": [ - "migrations" + "mongo" ], - "description": "Export documents to a CSV file from your Appwrite database. This endpoint allows you to export documents to a CSV file stored in a secure internal bucket. You'll receive an email with a download link when the export is complete.", + "description": "List all ephemeral branches for a dedicated database. Returns branch metadata including ID, name, namespace, and expiration time.", "responses": { - "202": { - "description": "Migration", + "200": { + "description": "BranchList", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/migration" + "$ref": "#\/components\/schemas\/dedicatedDatabaseBranchList" } } } @@ -39981,120 +41350,58 @@ }, "deprecated": false, "x-appwrite": { - "method": "createCSVExport", - "group": null, + "method": "listBranches", + "group": "databases", "cookies": false, "type": "", - "demo": "migrations\/create-csv-export.md", + "demo": "mongo\/list-branches.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "migrations.write", + "scope": "databases.read", "platforms": [ - "console" + "console", + "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/migrations\/migration-csv-export.md", "auth": { "Project": [] } }, "security": [ { - "Project": [] + "Project": [], + "Key": [] } ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "resourceId": { - "type": "string", - "description": "Composite ID in the format {databaseId:collectionId}, identifying a collection within a database to export.", - "x-example": "<ID1:ID2>" - }, - "filename": { - "type": "string", - "description": "The name of the file to be created for the export, excluding the .csv extension.", - "x-example": "<FILENAME>" - }, - "columns": { - "type": "array", - "description": "List of attributes to export. If empty, all attributes will be exported. You can use the `*` wildcard to export all attributes from the collection.", - "default": [], - "x-example": null, - "items": { - "type": "string" - } - }, - "queries": { - "type": "array", - "description": "Array of query strings generated using the Query class provided by the SDK to filter documents to export. [Learn more about queries](https:\/\/appwrite.io\/docs\/databases#querying-documents). Maximum of 100 queries are allowed, each 4096 characters long.", - "default": [], - "x-example": null, - "items": { - "type": "string" - } - }, - "delimiter": { - "type": "string", - "description": "The character that separates each column value. Default is comma.", - "default": ",", - "x-example": "<DELIMITER>" - }, - "enclosure": { - "type": "string", - "description": "The character that encloses each column value. Default is double quotes.", - "default": "\"", - "x-example": "<ENCLOSURE>" - }, - "escape": { - "type": "string", - "description": "The escape character for the enclosure character. Default is double quotes.", - "default": "\"", - "x-example": "<ESCAPE>" - }, - "header": { - "type": "boolean", - "description": "Whether to include the header row with column names. Default is true.", - "default": true, - "x-example": false - }, - "notify": { - "type": "boolean", - "description": "Set to true to receive an email when the export is complete. Default is true.", - "default": true, - "x-example": false - } - }, - "required": [ - "resourceId", - "filename" - ] - } - } + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "x-example": "<DATABASE_ID>" + }, + "in": "path" } - } - } - }, - "\/migrations\/csv\/imports": { + ] + }, "post": { - "summary": "Import documents from a CSV", - "operationId": "migrationsCreateCSVImport", + "summary": "Create a database branch.", + "operationId": "mongoCreateBranch", "tags": [ - "migrations" + "mongo" ], - "description": "Import documents from a CSV file into your Appwrite database. This endpoint allows you to import documents from a CSV file uploaded to Appwrite Storage bucket.", + "description": "Create 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": "Migration", + "description": "DedicatedDatabase", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/migration" + "$ref": "#\/components\/schemas\/dedicatedDatabase" } } } @@ -40102,28 +41409,41 @@ }, "deprecated": false, "x-appwrite": { - "method": "createCSVImport", - "group": null, + "method": "createBranch", + "group": "databases", "cookies": false, "type": "", - "demo": "migrations\/create-csv-import.md", + "demo": "mongo\/create-branch.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "migrations.write", + "scope": "databases.write", "platforms": [ - "console" + "console", + "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/migrations\/migration-csv-import.md", "auth": { "Project": [] } }, "security": [ { - "Project": [] + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "x-example": "<DATABASE_ID>" + }, + "in": "path" } ], "requestBody": { @@ -40132,71 +41452,44 @@ "schema": { "type": "object", "properties": { - "bucketId": { - "type": "string", - "description": "Storage bucket unique ID. You can create a new storage bucket using the Storage service [server integration](https:\/\/appwrite.io\/docs\/server\/storage#createBucket).", - "x-example": "<BUCKET_ID>" - }, - "fileId": { - "type": "string", - "description": "File ID.", - "x-example": "<FILE_ID>" - }, - "resourceId": { + "branchId": { "type": "string", - "description": "Composite ID in the format {databaseId:collectionId}, identifying a collection within a database.", - "x-example": "<ID1:ID2>" - }, - "internalFile": { - "type": "boolean", - "description": "Is the file stored in an internal bucket?", - "default": false, - "x-example": false + "description": "Branch ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.", + "default": "", + "x-example": "<BRANCH_ID>", + "x-appwrite": { + "idGenerator": "ID.unique" + } }, - "onDuplicate": { - "type": "string", - "description": "Behavior when a row with an existing $id is encountered. \"fail\" (default): abort on first conflict. \"skip\": silently ignore. \"overwrite\": replace existing row.", - "default": "fail", - "x-example": "fail", - "enum": [ - "fail", - "skip", - "overwrite" - ], - "x-enum-name": "OnDuplicate", - "x-enum-keys": [ - "fail", - "skip", - "overwrite" - ] + "ttl": { + "type": "integer", + "description": "Time-to-live in seconds before the branch expires. Min 300 (5 min), max 604800 (7 days). Default: 86400 (24h).", + "default": 86400, + "x-example": 300, + "format": "int32" } - }, - "required": [ - "bucketId", - "fileId", - "resourceId" - ] + } } } } } } }, - "\/migrations\/firebase": { - "post": { - "summary": "Create Firebase migration", - "operationId": "migrationsCreateFirebaseMigration", + "\/mongo\/{databaseId}\/branches\/{branchId}": { + "delete": { + "summary": "Delete a database branch.", + "operationId": "mongoDeleteBranch", "tags": [ - "migrations" + "mongo" ], - "description": "Migrate data from a Firebase project to your Appwrite project. This endpoint allows you to migrate resources like authentication and other supported services from a Firebase project. ", + "description": "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": "Migration", + "description": "DedicatedDatabase", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/migration" + "$ref": "#\/components\/schemas\/dedicatedDatabase" } } } @@ -40204,100 +41497,70 @@ }, "deprecated": false, "x-appwrite": { - "method": "createFirebaseMigration", - "group": null, + "method": "deleteBranch", + "group": "databases", "cookies": false, "type": "", - "demo": "migrations\/create-firebase-migration.md", + "demo": "mongo\/delete-branch.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "migrations.write", + "scope": "databases.write", "platforms": [ - "console" + "console", + "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/migrations\/migration-firebase.md", "auth": { "Project": [] } }, "security": [ { - "Project": [] + "Project": [], + "Key": [] } ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "resources": { - "type": "array", - "description": "List of resources to migrate", - "x-example": null, - "items": { - "type": "string", - "enum": [ - "user", - "database", - "table", - "column", - "row", - "document", - "attribute", - "collection", - "bucket", - "file" - ], - "x-enum-name": "FirebaseMigrationResource", - "x-enum-keys": [ - "user", - "database", - "table", - "column", - "row", - "document", - "attribute", - "collection", - "bucket", - "file" - ] - } - }, - "serviceAccount": { - "type": "string", - "description": "JSON of the Firebase service account credentials", - "x-example": "<SERVICE_ACCOUNT>" - } - }, - "required": [ - "resources", - "serviceAccount" - ] - } - } + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "x-example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "branchId", + "description": "Branch ID.", + "required": true, + "schema": { + "type": "string", + "x-example": "<BRANCH_ID>" + }, + "in": "path" } - } + ] } }, - "\/migrations\/firebase\/report": { - "get": { - "summary": "Get Firebase migration report", - "operationId": "migrationsGetFirebaseReport", + "\/mongo\/{databaseId}\/credentials": { + "patch": { + "summary": "Rotate database credentials.", + "operationId": "mongoUpdateCredentials", "tags": [ - "migrations" + "mongo" ], - "description": "Generate a report of the data in a Firebase project before migrating. This endpoint analyzes the source project and returns information about the resources that can be migrated.", + "description": "Rotate the primary connection credentials for a dedicated database. Generates a new password and updates the database atomically. Previous credentials stop working immediately. Returns the database with a refreshed connection string carrying the new password.", "responses": { "200": { - "description": "Migration Report", + "description": "DedicatedDatabase", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/migrationReport" + "$ref": "#\/components\/schemas\/dedicatedDatabase" } } } @@ -40305,96 +41568,60 @@ }, "deprecated": false, "x-appwrite": { - "method": "getFirebaseReport", - "group": null, + "method": "updateCredentials", + "group": "databases", "cookies": false, "type": "", - "demo": "migrations\/get-firebase-report.md", + "demo": "mongo\/update-credentials.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "migrations.write", + "scope": "databases.write", "platforms": [ - "console" + "console", + "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/migrations\/migration-firebase-report.md", "auth": { "Project": [] } }, "security": [ { - "Project": [] + "Project": [], + "Key": [] } ], "parameters": [ { - "name": "resources", - "description": "List of resources to migrate", - "required": true, - "schema": { - "type": "array", - "items": { - "type": "string", - "enum": [ - "user", - "database", - "table", - "column", - "row", - "document", - "attribute", - "collection", - "bucket", - "file" - ], - "x-enum-name": "FirebaseMigrationResource", - "x-enum-keys": [ - "user", - "database", - "table", - "column", - "row", - "document", - "attribute", - "collection", - "bucket", - "file" - ] - } - }, - "in": "query" - }, - { - "name": "serviceAccount", - "description": "JSON of the Firebase service account credentials", + "name": "databaseId", + "description": "Database ID.", "required": true, "schema": { "type": "string", - "x-example": "<SERVICE_ACCOUNT>" + "x-example": "<DATABASE_ID>" }, - "in": "query" + "in": "path" } ] } }, - "\/migrations\/json\/exports": { + "\/mongo\/{databaseId}\/failovers": { "post": { - "summary": "Export documents to JSON", - "operationId": "migrationsCreateJSONExport", + "summary": "Trigger manual failover.", + "operationId": "mongoCreateFailover", "tags": [ - "migrations" + "mongo" ], - "description": "Export documents to a JSON file from your Appwrite database. This endpoint allows you to export documents to a JSON file stored in a secure internal bucket. You'll receive an email with a download link when the export is complete.\n", + "description": "Trigger a manual failover for a dedicated database with high availability enabled. Promotes a replica to primary. The failover runs asynchronously; poll the database document for status updates.", "responses": { "202": { - "description": "Migration", + "description": "DedicatedDatabase", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/migration" + "$ref": "#\/components\/schemas\/dedicatedDatabase" } } } @@ -40402,28 +41629,41 @@ }, "deprecated": false, "x-appwrite": { - "method": "createJSONExport", - "group": null, + "method": "createFailover", + "group": "databases", "cookies": false, "type": "", - "demo": "migrations\/create-json-export.md", + "demo": "mongo\/create-failover.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "migrations.write", + "scope": "databases.write", "platforms": [ - "console" + "console", + "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/migrations\/migration-json-export.md", "auth": { "Project": [] } }, "security": [ { - "Project": [] + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "x-example": "<DATABASE_ID>" + }, + "in": "path" } ], "requestBody": { @@ -40432,66 +41672,34 @@ "schema": { "type": "object", "properties": { - "resourceId": { - "type": "string", - "description": "Composite ID in the format {databaseId:collectionId}, identifying a collection within a database to export.", - "x-example": "<ID1:ID2>" - }, - "filename": { + "targetReplicaId": { "type": "string", - "description": "The name of the file to be created for the export, excluding the .json extension.", - "x-example": "<FILENAME>" - }, - "columns": { - "type": "array", - "description": "List of attributes to export. If empty, all attributes will be exported. You can use the `*` wildcard to export all attributes from the collection.", - "default": [], - "x-example": null, - "items": { - "type": "string" - } - }, - "queries": { - "type": "array", - "description": "Array of query strings generated using the Query class provided by the SDK to filter documents to export. [Learn more about queries](https:\/\/appwrite.io\/docs\/databases#querying-documents). Maximum of 100 queries are allowed, each 4096 characters long.", - "default": [], - "x-example": null, - "items": { - "type": "string" - } - }, - "notify": { - "type": "boolean", - "description": "Set to true to receive an email when the export is complete. Default is true.", - "default": true, - "x-example": false + "description": "Target replica ID to promote. If not specified, the healthiest replica is selected.", + "x-example": "<TARGET_REPLICA_ID>", + "x-nullable": true } - }, - "required": [ - "resourceId", - "filename" - ] + } } } } } } }, - "\/migrations\/json\/imports": { - "post": { - "summary": "Import documents from a JSON", - "operationId": "migrationsCreateJSONImport", + "\/mongo\/{databaseId}\/maintenance": { + "patch": { + "summary": "Update database maintenance window.", + "operationId": "mongoUpdateMaintenance", "tags": [ - "migrations" + "mongo" ], - "description": "Import documents from a JSON file into your Appwrite database. This endpoint allows you to import documents from a JSON file uploaded to Appwrite Storage bucket.\n", + "description": "Update the maintenance window for a dedicated database. Maintenance operations like minor version upgrades will be performed during this window.", "responses": { - "202": { - "description": "Migration", + "200": { + "description": "DedicatedDatabase", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/migration" + "$ref": "#\/components\/schemas\/dedicatedDatabase" } } } @@ -40499,28 +41707,41 @@ }, "deprecated": false, "x-appwrite": { - "method": "createJSONImport", - "group": null, + "method": "updateMaintenance", + "group": "databases", "cookies": false, "type": "", - "demo": "migrations\/create-json-import.md", + "demo": "mongo\/update-maintenance.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "migrations.write", + "scope": "databases.write", "platforms": [ - "console" + "console", + "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/migrations\/migration-json-import.md", "auth": { "Project": [] } }, "security": [ { - "Project": [] + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "x-example": "<DATABASE_ID>" + }, + "in": "path" } ], "requestBody": { @@ -40529,49 +41750,21 @@ "schema": { "type": "object", "properties": { - "bucketId": { - "type": "string", - "description": "Storage bucket unique ID. You can create a new storage bucket using the Storage service [server integration](https:\/\/appwrite.io\/docs\/server\/storage#createBucket).", - "x-example": "<BUCKET_ID>" - }, - "fileId": { - "type": "string", - "description": "File ID.", - "x-example": "<FILE_ID>" - }, - "resourceId": { + "day": { "type": "string", - "description": "Composite ID in the format {databaseId:collectionId}, identifying a collection within a database.", - "x-example": "<ID1:ID2>" - }, - "internalFile": { - "type": "boolean", - "description": "Is the file stored in an internal bucket?", - "default": false, - "x-example": false + "description": "Day of the week for the maintenance window. Allowed values: sun, mon, tue, wed, thu, fri, sat.", + "x-example": "sun" }, - "onDuplicate": { - "type": "string", - "description": "Behavior when a row with an existing $id is encountered. \"fail\" (default): abort on first conflict. \"skip\": silently ignore. \"overwrite\": replace existing row.", - "default": "fail", - "x-example": "fail", - "enum": [ - "fail", - "skip", - "overwrite" - ], - "x-enum-name": "OnDuplicate", - "x-enum-keys": [ - "fail", - "skip", - "overwrite" - ] + "hourUtc": { + "type": "integer", + "description": "Hour in UTC (0-23) for maintenance window start.", + "x-example": 0, + "format": "int32" } }, "required": [ - "bucketId", - "fileId", - "resourceId" + "day", + "hourUtc" ] } } @@ -40579,21 +41772,21 @@ } } }, - "\/migrations\/nhost": { + "\/mongo\/{databaseId}\/migrations": { "post": { - "summary": "Create NHost migration", - "operationId": "migrationsCreateNHostMigration", + "summary": "Migrate database between shared and dedicated.", + "operationId": "mongoCreateMigration", "tags": [ - "migrations" + "mongo" ], - "description": "Migrate data from an NHost project to your Appwrite project. This endpoint allows you to migrate resources like authentication, databases, and other supported services from an NHost project. ", + "description": "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": { - "202": { - "description": "Migration", + "200": { + "description": "DedicatedDatabase", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/migration" + "$ref": "#\/components\/schemas\/dedicatedDatabase" } } } @@ -40601,28 +41794,41 @@ }, "deprecated": false, "x-appwrite": { - "method": "createNHostMigration", - "group": null, + "method": "createMigration", + "group": "databases", "cookies": false, "type": "", - "demo": "migrations\/create-n-host-migration.md", + "demo": "mongo\/create-migration.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "migrations.write", + "scope": "databases.write", "platforms": [ - "console" + "console", + "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/migrations\/migration-nhost.md", "auth": { "Project": [] } }, "security": [ { - "Project": [] + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "x-example": "<DATABASE_ID>" + }, + "in": "path" } ], "requestBody": { @@ -40631,88 +41837,20 @@ "schema": { "type": "object", "properties": { - "resources": { - "type": "array", - "description": "List of resources to migrate", - "x-example": null, - "items": { - "type": "string", - "enum": [ - "user", - "database", - "table", - "column", - "index", - "row", - "document", - "attribute", - "collection", - "bucket", - "file" - ], - "x-enum-name": "NHostMigrationResource", - "x-enum-keys": [ - "user", - "database", - "table", - "column", - "index", - "row", - "document", - "attribute", - "collection", - "bucket", - "file" - ] - } - }, - "subdomain": { - "type": "string", - "description": "Source's Subdomain", - "x-example": "<SUBDOMAIN>" - }, - "region": { - "type": "string", - "description": "Source's Region", - "x-example": "<REGION>" - }, - "adminSecret": { - "type": "string", - "description": "Source's Admin Secret", - "x-example": "<ADMIN_SECRET>" - }, - "database": { - "type": "string", - "description": "Source's Database Name", - "x-example": "<DATABASE>" - }, - "username": { + "targetType": { "type": "string", - "description": "Source's Database Username", - "x-example": "<USERNAME>" + "description": "Target database type to migrate to. Allowed values: shared (serverless, scales to zero when idle), dedicated (always-on with persistent resources).", + "x-example": "shared" }, - "password": { + "specification": { "type": "string", - "description": "Source's Database Password", - "x-example": "password", - "format": "password" - }, - "port": { - "type": "integer", - "description": "Source's Database Port", - "default": 5432, - "x-example": null, - "format": "int32" + "description": "Target specification to provision when migrating to dedicated. Ignored for shared. Defaults to the database's current specification.", + "x-example": "<SPECIFICATION>", + "x-nullable": true } }, "required": [ - "resources", - "subdomain", - "region", - "adminSecret", - "database", - "username", - "password" + "targetType" ] } } @@ -40720,21 +41858,21 @@ } } }, - "\/migrations\/nhost\/report": { + "\/mongo\/{databaseId}\/pitr": { "get": { - "summary": "Get NHost migration report", - "operationId": "migrationsGetNHostReport", + "summary": "Get PITR recovery windows.", + "operationId": "mongoGetPitr", "tags": [ - "migrations" + "mongo" ], - "description": "Generate a detailed report of the data in an NHost project before migrating. This endpoint analyzes the source project and returns information about the resources that can be migrated. ", + "description": "Get available point-in-time recovery windows for a dedicated database. Returns the earliest and latest recovery points.", "responses": { "200": { - "description": "Migration Report", + "description": "PITRWindows", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/migrationReport" + "$ref": "#\/components\/schemas\/dedicatedDatabasePITRWindows" } } } @@ -40742,160 +41880,60 @@ }, "deprecated": false, "x-appwrite": { - "method": "getNHostReport", - "group": null, + "method": "getPitr", + "group": "databases", "cookies": false, "type": "", - "demo": "migrations\/get-n-host-report.md", + "demo": "mongo\/get-pitr.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "migrations.write", + "scope": "databases.read", "platforms": [ - "console" + "console", + "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/migrations\/migration-nhost-report.md", "auth": { "Project": [] } }, "security": [ { - "Project": [] + "Project": [], + "Key": [] } ], "parameters": [ { - "name": "resources", - "description": "List of resources to migrate.", - "required": true, - "schema": { - "type": "array", - "items": { - "type": "string", - "enum": [ - "user", - "database", - "table", - "column", - "index", - "row", - "document", - "attribute", - "collection", - "bucket", - "file" - ], - "x-enum-name": "NHostMigrationResource", - "x-enum-keys": [ - "user", - "database", - "table", - "column", - "index", - "row", - "document", - "attribute", - "collection", - "bucket", - "file" - ] - } - }, - "in": "query" - }, - { - "name": "subdomain", - "description": "Source's Subdomain.", - "required": true, - "schema": { - "type": "string", - "x-example": "<SUBDOMAIN>" - }, - "in": "query" - }, - { - "name": "region", - "description": "Source's Region.", - "required": true, - "schema": { - "type": "string", - "x-example": "<REGION>" - }, - "in": "query" - }, - { - "name": "adminSecret", - "description": "Source's Admin Secret.", - "required": true, - "schema": { - "type": "string", - "x-example": "<ADMIN_SECRET>" - }, - "in": "query" - }, - { - "name": "database", - "description": "Source's Database Name.", - "required": true, - "schema": { - "type": "string", - "x-example": "<DATABASE>" - }, - "in": "query" - }, - { - "name": "username", - "description": "Source's Database Username.", - "required": true, - "schema": { - "type": "string", - "x-example": "<USERNAME>" - }, - "in": "query" - }, - { - "name": "password", - "description": "Source's Database Password.", + "name": "databaseId", + "description": "Database ID.", "required": true, "schema": { "type": "string", - "format": "password", - "x-example": "password" - }, - "in": "query" - }, - { - "name": "port", - "description": "Source's Database Port.", - "required": false, - "schema": { - "type": "integer", - "format": "int32", - "default": 5432 + "x-example": "<DATABASE_ID>" }, - "in": "query" + "in": "path" } ] } }, - "\/migrations\/supabase": { - "post": { - "summary": "Create Supabase migration", - "operationId": "migrationsCreateSupabaseMigration", + "\/mongo\/{databaseId}\/replicas": { + "get": { + "summary": "Get replica status.", + "operationId": "mongoGetReplicas", "tags": [ - "migrations" + "mongo" ], - "description": "Migrate data from a Supabase project to your Appwrite project. This endpoint allows you to migrate resources like authentication, databases, and other supported services from a Supabase project. ", + "description": "Get high availability status for a dedicated database. Returns replica statuses, replication lag, and sync mode.", "responses": { - "202": { - "description": "Migration", + "200": { + "description": "Replicas", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/migration" + "$ref": "#\/components\/schemas\/dedicatedDatabaseReplicas" } } } @@ -40903,135 +41941,60 @@ }, "deprecated": false, "x-appwrite": { - "method": "createSupabaseMigration", - "group": null, + "method": "getReplicas", + "group": "databases", "cookies": false, "type": "", - "demo": "migrations\/create-supabase-migration.md", + "demo": "mongo\/get-replicas.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "migrations.write", + "scope": "databases.read", "platforms": [ - "console" + "console", + "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/migrations\/migration-supabase.md", "auth": { "Project": [] } }, "security": [ { - "Project": [] + "Project": [], + "Key": [] } ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "resources": { - "type": "array", - "description": "List of resources to migrate", - "x-example": null, - "items": { - "type": "string", - "enum": [ - "user", - "database", - "table", - "column", - "index", - "row", - "document", - "attribute", - "collection", - "bucket", - "file" - ], - "x-enum-name": "SupabaseMigrationResource", - "x-enum-keys": [ - "user", - "database", - "table", - "column", - "index", - "row", - "document", - "attribute", - "collection", - "bucket", - "file" - ] - } - }, - "endpoint": { - "type": "string", - "description": "Source's Supabase Endpoint", - "x-example": "https:\/\/example.com", - "format": "url" - }, - "apiKey": { - "type": "string", - "description": "Source's API Key", - "x-example": "<API_KEY>" - }, - "databaseHost": { - "type": "string", - "description": "Source's Database Host", - "x-example": "<DATABASE_HOST>" - }, - "username": { - "type": "string", - "description": "Source's Database Username", - "x-example": "<USERNAME>" - }, - "password": { - "type": "string", - "description": "Source's Database Password", - "x-example": "password", - "format": "password" - }, - "port": { - "type": "integer", - "description": "Source's Database Port", - "default": 5432, - "x-example": null, - "format": "int32" - } - }, - "required": [ - "resources", - "endpoint", - "apiKey", - "databaseHost", - "username", - "password" - ] - } - } + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "x-example": "<DATABASE_ID>" + }, + "in": "path" } - } + ] } }, - "\/migrations\/supabase\/report": { + "\/mongo\/{databaseId}\/restorations": { "get": { - "summary": "Get Supabase migration report", - "operationId": "migrationsGetSupabaseReport", + "summary": "List database restorations.", + "operationId": "mongoListRestorations", "tags": [ - "migrations" + "mongo" ], - "description": "Generate a report of the data in a Supabase project before migrating. This endpoint analyzes the source project and returns information about the resources that can be migrated. ", + "description": "List all restorations for a dedicated database. Results can be filtered by status and type.", "responses": { "200": { - "description": "Migration Report", + "description": "Dedicated database restorations list", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/migrationReport" + "$ref": "#\/components\/schemas\/dedicatedDatabaseRestorationList" } } } @@ -41039,151 +42002,193 @@ }, "deprecated": false, "x-appwrite": { - "method": "getSupabaseReport", - "group": null, + "method": "listRestorations", + "group": "databases", "cookies": false, "type": "", - "demo": "migrations\/get-supabase-report.md", + "demo": "mongo\/list-restorations.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "migrations.write", + "scope": "databases.read", "platforms": [ - "console" + "console", + "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/migrations\/migration-supabase-report.md", "auth": { "Project": [] } }, "security": [ { - "Project": [] + "Project": [], + "Key": [] } ], "parameters": [ { - "name": "resources", - "description": "List of resources to migrate", - "required": true, - "schema": { - "type": "array", - "items": { - "type": "string", - "enum": [ - "user", - "database", - "table", - "column", - "index", - "row", - "document", - "attribute", - "collection", - "bucket", - "file" - ], - "x-enum-name": "SupabaseMigrationResource", - "x-enum-keys": [ - "user", - "database", - "table", - "column", - "index", - "row", - "document", - "attribute", - "collection", - "bucket", - "file" - ] - } - }, - "in": "query" - }, - { - "name": "endpoint", - "description": "Source's Supabase Endpoint.", - "required": true, - "schema": { - "type": "string", - "format": "url", - "x-example": "https:\/\/example.com" - }, - "in": "query" - }, - { - "name": "apiKey", - "description": "Source's API Key.", + "name": "databaseId", + "description": "Database ID.", "required": true, "schema": { "type": "string", - "x-example": "<API_KEY>" + "x-example": "<DATABASE_ID>" }, - "in": "query" + "in": "path" }, { - "name": "databaseHost", - "description": "Source's Database Host.", - "required": true, + "name": "status", + "description": "Filter by restoration status.", + "required": false, "schema": { "type": "string", - "x-example": "<DATABASE_HOST>" + "x-example": "pending" }, "in": "query" }, { - "name": "username", - "description": "Source's Database Username.", - "required": true, + "name": "type", + "description": "Filter by restoration type.", + "required": false, "schema": { "type": "string", - "x-example": "<USERNAME>" + "x-example": "backup" }, "in": "query" }, { - "name": "password", - "description": "Source's Database Password.", - "required": true, + "name": "limit", + "description": "Maximum number of restorations to return.", + "required": false, "schema": { - "type": "string", - "format": "password", - "x-example": "password" + "type": "integer", + "format": "int32", + "x-example": 1, + "default": 25 }, "in": "query" }, { - "name": "port", - "description": "Source's Database Port.", + "name": "offset", + "description": "Number of restorations to skip.", "required": false, "schema": { "type": "integer", "format": "int32", - "default": 5432 + "x-example": 0, + "default": 0 }, "in": "query" } ] + }, + "post": { + "summary": "Create a database 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": { + "method": "createRestoration", + "group": "databases", + "cookies": false, + "type": "", + "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", + "x-example": "<DATABASE_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "type": { + "type": "string", + "description": "Restoration type. Allowed values: backup, pitr. Use \"backup\" to restore from a specific backup, or \"pitr\" for point-in-time recovery.", + "default": "backup", + "x-example": "backup" + }, + "backupId": { + "type": "string", + "description": "Backup ID to restore from (required for backup type).", + "x-example": "<BACKUP_ID>", + "x-nullable": true + }, + "targetTime": { + "type": "string", + "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.", + "x-example": "2020-10-15T06:38:00.000+00:00", + "format": "datetime", + "x-nullable": true + } + } + } + } + } + } } }, - "\/migrations\/{migrationId}": { + "\/mongo\/{databaseId}\/restorations\/{restorationId}": { "get": { - "summary": "Get migration", - "operationId": "migrationsGet", + "summary": "Get a database restoration.", + "operationId": "mongoGetRestoration", "tags": [ - "migrations" + "mongo" ], - "description": "Get a migration by its unique ID. This endpoint returns detailed information about a specific migration including its current status, progress, and any errors that occurred during the migration process. ", + "description": "Get details of a specific database restoration including its status, type, and timestamps.", "responses": { "200": { - "description": "Migration", + "description": "Restoration", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/migration" + "$ref": "#\/components\/schemas\/dedicatedDatabaseRestoration" } } } @@ -41191,57 +42196,70 @@ }, "deprecated": false, "x-appwrite": { - "method": "get", - "group": null, + "method": "getRestoration", + "group": "databases", "cookies": false, "type": "", - "demo": "migrations\/get.md", + "demo": "mongo\/get-restoration.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "migrations.read", + "scope": "databases.read", "platforms": [ - "console" + "console", + "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/migrations\/get-migration.md", "auth": { "Project": [] } }, "security": [ { - "Project": [] + "Project": [], + "Key": [] } ], "parameters": [ { - "name": "migrationId", - "description": "Migration unique ID.", + "name": "databaseId", + "description": "Database ID.", "required": true, "schema": { "type": "string", - "x-example": "<MIGRATION_ID>" + "x-example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "restorationId", + "description": "Restoration ID.", + "required": true, + "schema": { + "type": "string", + "x-example": "<RESTORATION_ID>" }, "in": "path" } ] - }, - "patch": { - "summary": "Update retry migration", - "operationId": "migrationsRetry", + } + }, + "\/mongo\/{databaseId}\/status": { + "get": { + "summary": "Get database status.", + "operationId": "mongoGetStatus", "tags": [ - "migrations" + "mongo" ], - "description": "Retry a failed migration. This endpoint allows you to retry a migration that has previously failed.", + "description": "Get real-time health and status information for a dedicated database. Returns health status, readiness, uptime, connection info, replica status, and volume information.", "responses": { - "202": { - "description": "Migration", + "200": { + "description": "Status", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/migration" + "$ref": "#\/components\/schemas\/databaseStatus" } } } @@ -41249,101 +42267,131 @@ }, "deprecated": false, "x-appwrite": { - "method": "retry", - "group": null, + "method": "getStatus", + "group": "databases", "cookies": false, "type": "", - "demo": "migrations\/retry.md", + "demo": "mongo\/get-status.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "migrations.write", + "scope": "databases.read", "platforms": [ - "console" + "console", + "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/migrations\/retry-migration.md", "auth": { "Project": [] } }, "security": [ { - "Project": [] + "Project": [], + "Key": [] } ], "parameters": [ { - "name": "migrationId", - "description": "Migration unique ID.", + "name": "databaseId", + "description": "Database ID.", "required": true, "schema": { "type": "string", - "x-example": "<MIGRATION_ID>" + "x-example": "<DATABASE_ID>" }, "in": "path" } ] - }, - "delete": { - "summary": "Delete migration", - "operationId": "migrationsDelete", + } + }, + "\/mongo\/{databaseId}\/upgrades": { + "post": { + "summary": "Upgrade database version.", + "operationId": "mongoCreateUpgrade", "tags": [ - "migrations" + "mongo" ], - "description": "Delete a migration by its unique ID. This endpoint allows you to remove a migration from your project's migration history. ", + "description": "Upgrade a dedicated database to a new engine version. Uses blue-green deployment for zero-downtime cutover.", "responses": { - "204": { - "description": "No content" + "200": { + "description": "DedicatedDatabase", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/dedicatedDatabase" + } + } + } } }, "deprecated": false, "x-appwrite": { - "method": "delete", - "group": null, + "method": "createUpgrade", + "group": "databases", "cookies": false, "type": "", - "demo": "migrations\/delete.md", + "demo": "mongo\/create-upgrade.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "migrations.write", + "scope": "databases.write", "platforms": [ - "console" + "console", + "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/migrations\/delete-migration.md", "auth": { "Project": [] } }, "security": [ { - "Project": [] + "Project": [], + "Key": [] } ], "parameters": [ { - "name": "migrationId", - "description": "Migration ID.", + "name": "databaseId", + "description": "Database ID.", "required": true, "schema": { "type": "string", - "x-example": "<MIGRATION_ID>" + "x-example": "<DATABASE_ID>" }, "in": "path" } - ] + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "targetVersion": { + "type": "string", + "description": "Target engine version to upgrade to.", + "x-example": "<TARGET_VERSION>" + } + }, + "required": [ + "targetVersion" + ] + } + } + } + } } }, - "\/mongo": { + "\/mysql": { "get": { "summary": "List dedicated databases.", - "operationId": "mongoList", + "operationId": "mysqlList", "tags": [ - "mongo" + "mysql" ], "description": "List all dedicated databases. Results support pagination.", "responses": { @@ -41364,13 +42412,14 @@ "group": "databases", "cookies": false, "type": "", - "demo": "mongo\/list.md", + "demo": "mysql\/list.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", "scope": "databases.read", "platforms": [ - "console" + "console", + "server" ], "packaging": false, "public": true, @@ -41380,7 +42429,8 @@ }, "security": [ { - "Project": [] + "Project": [], + "Key": [] } ], "parameters": [ @@ -41401,9 +42451,9 @@ }, "post": { "summary": "Create a dedicated database.", - "operationId": "mongoCreate", + "operationId": "mysqlCreate", "tags": [ - "mongo" + "mysql" ], "description": "Create a new dedicated database with the chosen engine and configuration. Status will be 'provisioning' until the database is ready.", "responses": { @@ -41424,13 +42474,14 @@ "group": "databases", "cookies": false, "type": "", - "demo": "mongo\/create.md", + "demo": "mysql\/create.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", "scope": "databases.write", "platforms": [ - "console" + "console", + "server" ], "packaging": false, "public": true, @@ -41440,7 +42491,8 @@ }, "security": [ { - "Project": [] + "Project": [], + "Key": [] } ], "requestBody": { @@ -41487,6 +42539,12 @@ "x-example": "async", "x-nullable": true }, + "standbyRegion": { + "type": "string", + "description": "Standby region for a cross-region replica. When set, a replica is provisioned in this region for cross-region high availability. Must differ from the database region.", + "x-example": "<STANDBY_REGION>", + "x-nullable": true + }, "networkIdleTimeoutSeconds": { "type": "integer", "description": "Connection idle timeout in seconds.", @@ -41545,9 +42603,8 @@ }, "api": { "type": "string", - "description": "Product API that owns this database: nativedb (raw, direct-access), tablesdb, documentsdb, or vectorsdb. tablesdb\/documentsdb\/vectorsdb databases are reached only through their product APIs.", - "default": "nativedb", - "x-example": "nativedb" + "description": "Product API that owns this database: tablesdb, documentsdb, or vectorsdb. Omit for a raw database reached directly; its api is its engine. tablesdb\/documentsdb\/vectorsdb databases are reached only through their product APIs.", + "x-example": "tablesdb" } }, "required": [ @@ -41560,12 +42617,12 @@ } } }, - "\/mongo\/specifications": { + "\/mysql\/specifications": { "get": { "summary": "List dedicated database specifications.", - "operationId": "mongoListSpecifications", + "operationId": "mysqlListSpecifications", "tags": [ - "mongo" + "mysql" ], "description": "List the dedicated database specifications available on the current plan. Each specification reports its resource limits, pricing, and whether it is enabled for the organization.", "responses": { @@ -41586,13 +42643,14 @@ "group": "databases", "cookies": false, "type": "", - "demo": "mongo\/list-specifications.md", + "demo": "mysql\/list-specifications.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", "scope": "databases.read", "platforms": [ - "console" + "console", + "server" ], "packaging": false, "public": true, @@ -41602,17 +42660,18 @@ }, "security": [ { - "Project": [] + "Project": [], + "Key": [] } ] } }, - "\/mongo\/{databaseId}": { + "\/mysql\/{databaseId}": { "get": { "summary": "Get dedicated database.", - "operationId": "mongoGet", + "operationId": "mysqlGet", "tags": [ - "mongo" + "mysql" ], "description": "Get a dedicated database by its unique ID. Returns the database configuration and current status.", "responses": { @@ -41633,13 +42692,14 @@ "group": "databases", "cookies": false, "type": "", - "demo": "mongo\/get.md", + "demo": "mysql\/get.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", "scope": "databases.read", "platforms": [ - "console" + "console", + "server" ], "packaging": false, "public": true, @@ -41649,7 +42709,8 @@ }, "security": [ { - "Project": [] + "Project": [], + "Key": [] } ], "parameters": [ @@ -41667,9 +42728,9 @@ }, "patch": { "summary": "Update dedicated database.", - "operationId": "mongoUpdate", + "operationId": "mysqlUpdate", "tags": [ - "mongo" + "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": { @@ -41690,13 +42751,14 @@ "group": "databases", "cookies": false, "type": "", - "demo": "mongo\/update.md", + "demo": "mysql\/update.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", "scope": "databases.write", "platforms": [ - "console" + "console", + "server" ], "packaging": false, "public": true, @@ -41706,7 +42768,8 @@ }, "security": [ { - "Project": [] + "Project": [], + "Key": [] } ], "parameters": [ @@ -41758,6 +42821,19 @@ "x-example": "async", "x-nullable": true }, + "crossRegionReplicas": { + "type": "integer", + "description": "Number of cross-region standby replicas (0-1). Cross-region replication is enabled when greater than 0.", + "x-example": 0, + "format": "int32", + "x-nullable": true + }, + "standbyRegion": { + "type": "string", + "description": "Standby region for the cross-region replica. Required when enabling cross-region replication and no standby region is already configured. Must differ from the database region.", + "x-example": "<STANDBY_REGION>", + "x-nullable": true + }, "networkIdleTimeoutSeconds": { "type": "integer", "description": "Connection idle timeout in seconds (60-86400).", @@ -41872,9 +42948,9 @@ }, "delete": { "summary": "Delete dedicated database.", - "operationId": "mongoDelete", + "operationId": "mysqlDelete", "tags": [ - "mongo" + "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": { @@ -41888,13 +42964,14 @@ "group": "databases", "cookies": false, "type": "", - "demo": "mongo\/delete.md", + "demo": "mysql\/delete.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", "scope": "databases.write", "platforms": [ - "console" + "console", + "server" ], "packaging": false, "public": true, @@ -41907,7 +42984,8 @@ }, "security": [ { - "Project": [] + "Project": [], + "Key": [] } ], "parameters": [ @@ -41924,12 +43002,12 @@ ] } }, - "\/mongo\/{databaseId}\/backups": { + "\/mysql\/{databaseId}\/backups": { "get": { "summary": "List database backups.", - "operationId": "mongoListBackups", + "operationId": "mysqlListBackups", "tags": [ - "mongo" + "mysql" ], "description": "List all backups for a dedicated database. Results can be filtered by status and type.", "responses": { @@ -41950,13 +43028,14 @@ "group": "databases", "cookies": false, "type": "", - "demo": "mongo\/list-backups.md", + "demo": "mysql\/list-backups.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", "scope": "databases.read", "platforms": [ - "console" + "console", + "server" ], "packaging": false, "public": true, @@ -41966,7 +43045,8 @@ }, "security": [ { - "Project": [] + "Project": [], + "Key": [] } ], "parameters": [ @@ -41997,9 +43077,9 @@ }, "post": { "summary": "Create a database backup.", - "operationId": "mongoCreateBackup", + "operationId": "mysqlCreateBackup", "tags": [ - "mongo" + "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": { @@ -42020,13 +43100,14 @@ "group": "databases", "cookies": false, "type": "", - "demo": "mongo\/create-backup.md", + "demo": "mysql\/create-backup.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", "scope": "databases.write", "platforms": [ - "console" + "console", + "server" ], "packaging": false, "public": true, @@ -42036,7 +43117,8 @@ }, "security": [ { - "Project": [] + "Project": [], + "Key": [] } ], "parameters": [ @@ -42070,12 +43152,12 @@ } } }, - "\/mongo\/{databaseId}\/backups\/policies": { + "\/mysql\/{databaseId}\/backups\/policies": { "get": { "summary": "List database backup policies.", - "operationId": "mongoListBackupPolicies", + "operationId": "mysqlListBackupPolicies", "tags": [ - "mongo" + "mysql" ], "description": "List scheduled backup policies for a dedicated database.", "responses": { @@ -42096,13 +43178,14 @@ "group": "databases", "cookies": false, "type": "", - "demo": "mongo\/list-backup-policies.md", + "demo": "mysql\/list-backup-policies.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", "scope": "databases.read", "platforms": [ - "console" + "console", + "server" ], "packaging": false, "public": true, @@ -42112,7 +43195,8 @@ }, "security": [ { - "Project": [] + "Project": [], + "Key": [] } ], "parameters": [ @@ -42143,9 +43227,9 @@ }, "post": { "summary": "Create a database backup policy.", - "operationId": "mongoCreateBackupPolicy", + "operationId": "mysqlCreateBackupPolicy", "tags": [ - "mongo" + "mysql" ], "description": "Create a scheduled backup policy for a dedicated database.", "responses": { @@ -42166,13 +43250,14 @@ "group": "databases", "cookies": false, "type": "", - "demo": "mongo\/create-backup-policy.md", + "demo": "mysql\/create-backup-policy.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", "scope": "databases.write", "platforms": [ - "console" + "console", + "server" ], "packaging": false, "public": true, @@ -42182,7 +43267,8 @@ }, "security": [ { - "Project": [] + "Project": [], + "Key": [] } ], "parameters": [ @@ -42252,12 +43338,12 @@ } } }, - "\/mongo\/{databaseId}\/backups\/policies\/{policyId}": { + "\/mysql\/{databaseId}\/backups\/policies\/{policyId}": { "get": { "summary": "Get a database backup policy.", - "operationId": "mongoGetBackupPolicy", + "operationId": "mysqlGetBackupPolicy", "tags": [ - "mongo" + "mysql" ], "description": "Get a scheduled backup policy for a dedicated database.", "responses": { @@ -42278,13 +43364,14 @@ "group": "databases", "cookies": false, "type": "", - "demo": "mongo\/get-backup-policy.md", + "demo": "mysql\/get-backup-policy.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", "scope": "databases.read", "platforms": [ - "console" + "console", + "server" ], "packaging": false, "public": true, @@ -42294,7 +43381,8 @@ }, "security": [ { - "Project": [] + "Project": [], + "Key": [] } ], "parameters": [ @@ -42322,9 +43410,9 @@ }, "patch": { "summary": "Update a database backup policy.", - "operationId": "mongoUpdateBackupPolicy", + "operationId": "mysqlUpdateBackupPolicy", "tags": [ - "mongo" + "mysql" ], "description": "Update a scheduled backup policy for a dedicated database.", "responses": { @@ -42345,13 +43433,14 @@ "group": "databases", "cookies": false, "type": "", - "demo": "mongo\/update-backup-policy.md", + "demo": "mysql\/update-backup-policy.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", "scope": "databases.write", "platforms": [ - "console" + "console", + "server" ], "packaging": false, "public": true, @@ -42361,7 +43450,8 @@ }, "security": [ { - "Project": [] + "Project": [], + "Key": [] } ], "parameters": [ @@ -42424,9 +43514,9 @@ }, "delete": { "summary": "Delete a database backup policy.", - "operationId": "mongoDeleteBackupPolicy", + "operationId": "mysqlDeleteBackupPolicy", "tags": [ - "mongo" + "mysql" ], "description": "Delete a scheduled backup policy for a dedicated database. Backups already taken by the policy are kept until their retention expires.", "responses": { @@ -42440,13 +43530,14 @@ "group": "databases", "cookies": false, "type": "", - "demo": "mongo\/delete-backup-policy.md", + "demo": "mysql\/delete-backup-policy.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", "scope": "databases.write", "platforms": [ - "console" + "console", + "server" ], "packaging": false, "public": true, @@ -42459,7 +43550,8 @@ }, "security": [ { - "Project": [] + "Project": [], + "Key": [] } ], "parameters": [ @@ -42486,12 +43578,12 @@ ] } }, - "\/mongo\/{databaseId}\/backups\/storage": { + "\/mysql\/{databaseId}\/backups\/storage": { "put": { "summary": "Update database backup storage.", - "operationId": "mongoUpdateBackupStorage", + "operationId": "mysqlUpdateBackupStorage", "tags": [ - "mongo" + "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": { @@ -42512,13 +43604,14 @@ "group": "databases", "cookies": false, "type": "", - "demo": "mongo\/update-backup-storage.md", + "demo": "mysql\/update-backup-storage.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", "scope": "databases.write", "platforms": [ - "console" + "console", + "server" ], "packaging": false, "public": true, @@ -42528,7 +43621,8 @@ }, "security": [ { - "Project": [] + "Project": [], + "Key": [] } ], "parameters": [ @@ -42600,12 +43694,12 @@ } } }, - "\/mongo\/{databaseId}\/backups\/{backupId}": { + "\/mysql\/{databaseId}\/backups\/{backupId}": { "get": { "summary": "Get a database backup.", - "operationId": "mongoGetBackup", + "operationId": "mysqlGetBackup", "tags": [ - "mongo" + "mysql" ], "description": "Get details of a specific database backup including its status, size, and timestamps.", "responses": { @@ -42626,13 +43720,14 @@ "group": "databases", "cookies": false, "type": "", - "demo": "mongo\/get-backup.md", + "demo": "mysql\/get-backup.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", "scope": "databases.read", "platforms": [ - "console" + "console", + "server" ], "packaging": false, "public": true, @@ -42642,7 +43737,8 @@ }, "security": [ { - "Project": [] + "Project": [], + "Key": [] } ], "parameters": [ @@ -42670,9 +43766,9 @@ }, "delete": { "summary": "Delete a database backup.", - "operationId": "mongoDeleteBackup", + "operationId": "mysqlDeleteBackup", "tags": [ - "mongo" + "mysql" ], "description": "Delete a database backup. This will permanently remove the backup from storage and cannot be undone.", "responses": { @@ -42686,13 +43782,14 @@ "group": "databases", "cookies": false, "type": "", - "demo": "mongo\/delete-backup.md", + "demo": "mysql\/delete-backup.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", "scope": "databases.write", "platforms": [ - "console" + "console", + "server" ], "packaging": false, "public": true, @@ -42705,7 +43802,8 @@ }, "security": [ { - "Project": [] + "Project": [], + "Key": [] } ], "parameters": [ @@ -42732,12 +43830,12 @@ ] } }, - "\/mongo\/{databaseId}\/branches": { + "\/mysql\/{databaseId}\/branches": { "get": { "summary": "List database branches.", - "operationId": "mongoListBranches", + "operationId": "mysqlListBranches", "tags": [ - "mongo" + "mysql" ], "description": "List all ephemeral branches for a dedicated database. Returns branch metadata including ID, name, namespace, and expiration time.", "responses": { @@ -42758,13 +43856,14 @@ "group": "databases", "cookies": false, "type": "", - "demo": "mongo\/list-branches.md", + "demo": "mysql\/list-branches.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", "scope": "databases.read", "platforms": [ - "console" + "console", + "server" ], "packaging": false, "public": true, @@ -42774,7 +43873,8 @@ }, "security": [ { - "Project": [] + "Project": [], + "Key": [] } ], "parameters": [ @@ -42792,9 +43892,9 @@ }, "post": { "summary": "Create a database branch.", - "operationId": "mongoCreateBranch", + "operationId": "mysqlCreateBranch", "tags": [ - "mongo" + "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": { @@ -42815,13 +43915,14 @@ "group": "databases", "cookies": false, "type": "", - "demo": "mongo\/create-branch.md", + "demo": "mysql\/create-branch.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", "scope": "databases.write", "platforms": [ - "console" + "console", + "server" ], "packaging": false, "public": true, @@ -42831,7 +43932,8 @@ }, "security": [ { - "Project": [] + "Project": [], + "Key": [] } ], "parameters": [ @@ -42875,12 +43977,12 @@ } } }, - "\/mongo\/{databaseId}\/branches\/{branchId}": { + "\/mysql\/{databaseId}\/branches\/{branchId}": { "delete": { "summary": "Delete a database branch.", - "operationId": "mongoDeleteBranch", + "operationId": "mysqlDeleteBranch", "tags": [ - "mongo" + "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": { @@ -42901,13 +44003,14 @@ "group": "databases", "cookies": false, "type": "", - "demo": "mongo\/delete-branch.md", + "demo": "mysql\/delete-branch.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", "scope": "databases.write", "platforms": [ - "console" + "console", + "server" ], "packaging": false, "public": true, @@ -42917,7 +44020,8 @@ }, "security": [ { - "Project": [] + "Project": [], + "Key": [] } ], "parameters": [ @@ -42944,12 +44048,12 @@ ] } }, - "\/mongo\/{databaseId}\/credentials": { + "\/mysql\/{databaseId}\/credentials": { "patch": { "summary": "Rotate database credentials.", - "operationId": "mongoUpdateCredentials", + "operationId": "mysqlUpdateCredentials", "tags": [ - "mongo" + "mysql" ], "description": "Rotate the primary connection credentials for a dedicated database. Generates a new password and updates the database atomically. Previous credentials stop working immediately. Returns the database with a refreshed connection string carrying the new password.", "responses": { @@ -42970,13 +44074,14 @@ "group": "databases", "cookies": false, "type": "", - "demo": "mongo\/update-credentials.md", + "demo": "mysql\/update-credentials.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", "scope": "databases.write", "platforms": [ - "console" + "console", + "server" ], "packaging": false, "public": true, @@ -42986,7 +44091,8 @@ }, "security": [ { - "Project": [] + "Project": [], + "Key": [] } ], "parameters": [ @@ -43003,12 +44109,106 @@ ] } }, - "\/mongo\/{databaseId}\/failovers": { + "\/mysql\/{databaseId}\/executions": { + "post": { + "summary": "Execute a SQL statement against a dedicated database.", + "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": { + "method": "createExecution", + "group": "databases", + "cookies": false, + "type": "", + "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", + "x-example": "<DATABASE_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "sql": { + "type": "string", + "description": "SQL statement to execute. Exactly one statement per request.", + "x-example": "<SQL>" + }, + "bindings": { + "type": "object", + "description": "Optional bound parameters. Pass either a positional list or a name => value map matching the placeholder style used in the SQL.", + "default": {}, + "x-example": "{}", + "x-nullable": true + }, + "timeoutSeconds": { + "type": "integer", + "description": "Per-call execution timeout override. Must be less than or equal to the database's configured sqlApiTimeoutSeconds.", + "x-example": 1, + "format": "int32", + "x-nullable": true + } + }, + "required": [ + "sql" + ] + } + } + } + } + } + }, + "\/mysql\/{databaseId}\/failovers": { "post": { "summary": "Trigger manual failover.", - "operationId": "mongoCreateFailover", + "operationId": "mysqlCreateFailover", "tags": [ - "mongo" + "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.", "responses": { @@ -43029,13 +44229,14 @@ "group": "databases", "cookies": false, "type": "", - "demo": "mongo\/create-failover.md", + "demo": "mysql\/create-failover.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", "scope": "databases.write", "platforms": [ - "console" + "console", + "server" ], "packaging": false, "public": true, @@ -43045,7 +44246,8 @@ }, "security": [ { - "Project": [] + "Project": [], + "Key": [] } ], "parameters": [ @@ -43079,12 +44281,12 @@ } } }, - "\/mongo\/{databaseId}\/maintenance": { + "\/mysql\/{databaseId}\/maintenance": { "patch": { "summary": "Update database maintenance window.", - "operationId": "mongoUpdateMaintenance", + "operationId": "mysqlUpdateMaintenance", "tags": [ - "mongo" + "mysql" ], "description": "Update the maintenance window for a dedicated database. Maintenance operations like minor version upgrades will be performed during this window.", "responses": { @@ -43105,13 +44307,14 @@ "group": "databases", "cookies": false, "type": "", - "demo": "mongo\/update-maintenance.md", + "demo": "mysql\/update-maintenance.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", "scope": "databases.write", "platforms": [ - "console" + "console", + "server" ], "packaging": false, "public": true, @@ -43121,7 +44324,8 @@ }, "security": [ { - "Project": [] + "Project": [], + "Key": [] } ], "parameters": [ @@ -43164,12 +44368,12 @@ } } }, - "\/mongo\/{databaseId}\/migrations": { + "\/mysql\/{databaseId}\/migrations": { "post": { "summary": "Migrate database between shared and dedicated.", - "operationId": "mongoCreateMigration", + "operationId": "mysqlCreateMigration", "tags": [ - "mongo" + "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": { @@ -43190,13 +44394,14 @@ "group": "databases", "cookies": false, "type": "", - "demo": "mongo\/create-migration.md", + "demo": "mysql\/create-migration.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", "scope": "databases.write", "platforms": [ - "console" + "console", + "server" ], "packaging": false, "public": true, @@ -43206,7 +44411,8 @@ }, "security": [ { - "Project": [] + "Project": [], + "Key": [] } ], "parameters": [ @@ -43248,12 +44454,12 @@ } } }, - "\/mongo\/{databaseId}\/pitr": { + "\/mysql\/{databaseId}\/pitr": { "get": { "summary": "Get PITR recovery windows.", - "operationId": "mongoGetPitr", + "operationId": "mysqlGetPitr", "tags": [ - "mongo" + "mysql" ], "description": "Get available point-in-time recovery windows for a dedicated database. Returns the earliest and latest recovery points.", "responses": { @@ -43274,13 +44480,14 @@ "group": "databases", "cookies": false, "type": "", - "demo": "mongo\/get-pitr.md", + "demo": "mysql\/get-pitr.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", "scope": "databases.read", "platforms": [ - "console" + "console", + "server" ], "packaging": false, "public": true, @@ -43290,8 +44497,70 @@ }, "security": [ { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "x-example": "<DATABASE_ID>" + }, + "in": "path" + } + ] + } + }, + "\/mysql\/{databaseId}\/pooler": { + "get": { + "summary": "Get connection pooler configuration.", + "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": { + "method": "getPooler", + "group": "databases", + "cookies": false, + "type": "", + "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": [ { @@ -43305,14 +44574,134 @@ "in": "path" } ] + }, + "patch": { + "summary": "Update connection pooler configuration.", + "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": { + "method": "updatePooler", + "group": "databases", + "cookies": false, + "type": "", + "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", + "x-example": "<DATABASE_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "mode": { + "type": "string", + "description": "Connection pool mode. Allowed values: transaction, session. Transaction mode returns connections to the pool after each transaction; session mode holds connections for the entire session lifetime.", + "x-example": "transaction", + "x-nullable": true + }, + "maxConnections": { + "type": "integer", + "description": "Maximum pooled connections.", + "x-example": 10, + "format": "int32", + "x-nullable": true + }, + "defaultPoolSize": { + "type": "integer", + "description": "Default pool size per user.", + "x-example": 1, + "format": "int32", + "x-nullable": true + }, + "readWriteSplitting": { + "type": "boolean", + "description": "Route SELECTs to HA replicas, writes and locked reads to the primary. Defaults to true when HA is enabled.", + "x-example": false, + "x-nullable": true + }, + "poolerCpuRequest": { + "type": "string", + "description": "Pooler sidecar CPU request override (Kubernetes quantity, e.g. \"250m\" or \"1\"). Leave null for the proportional default (5% of DB CPU, floor 100m).", + "x-example": "<POOLER_CPU_REQUEST>", + "x-nullable": true + }, + "poolerCpuLimit": { + "type": "string", + "description": "Pooler sidecar CPU limit override (Kubernetes quantity, e.g. \"500m\" or \"1\"). Leave null for the proportional default (10% of DB CPU, floor 200m). Changing this field rolls the database pod.", + "x-example": "<POOLER_CPU_LIMIT>", + "x-nullable": true + }, + "poolerMemoryRequest": { + "type": "string", + "description": "Pooler sidecar memory request override (Kubernetes quantity, e.g. \"128Mi\" or \"1Gi\"). Leave null for the proportional default (7.5% of DB memory, floor 64Mi).", + "x-example": "<POOLER_MEMORY_REQUEST>", + "x-nullable": true + }, + "poolerMemoryLimit": { + "type": "string", + "description": "Pooler sidecar memory limit override (Kubernetes quantity, e.g. \"256Mi\" or \"1Gi\"). Leave null for the proportional default (15% of DB memory, floor 128Mi). Changing this field rolls the database pod.", + "x-example": "<POOLER_MEMORY_LIMIT>", + "x-nullable": true + } + } + } + } + } + } } }, - "\/mongo\/{databaseId}\/replicas": { + "\/mysql\/{databaseId}\/replicas": { "get": { "summary": "Get replica status.", - "operationId": "mongoGetReplicas", + "operationId": "mysqlGetReplicas", "tags": [ - "mongo" + "mysql" ], "description": "Get high availability status for a dedicated database. Returns replica statuses, replication lag, and sync mode.", "responses": { @@ -43333,13 +44722,14 @@ "group": "databases", "cookies": false, "type": "", - "demo": "mongo\/get-replicas.md", + "demo": "mysql\/get-replicas.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", "scope": "databases.read", "platforms": [ - "console" + "console", + "server" ], "packaging": false, "public": true, @@ -43349,7 +44739,8 @@ }, "security": [ { - "Project": [] + "Project": [], + "Key": [] } ], "parameters": [ @@ -43366,12 +44757,12 @@ ] } }, - "\/mongo\/{databaseId}\/restorations": { + "\/mysql\/{databaseId}\/restorations": { "get": { "summary": "List database restorations.", - "operationId": "mongoListRestorations", + "operationId": "mysqlListRestorations", "tags": [ - "mongo" + "mysql" ], "description": "List all restorations for a dedicated database. Results can be filtered by status and type.", "responses": { @@ -43392,13 +44783,14 @@ "group": "databases", "cookies": false, "type": "", - "demo": "mongo\/list-restorations.md", + "demo": "mysql\/list-restorations.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", "scope": "databases.read", "platforms": [ - "console" + "console", + "server" ], "packaging": false, "public": true, @@ -43408,7 +44800,8 @@ }, "security": [ { - "Project": [] + "Project": [], + "Key": [] } ], "parameters": [ @@ -43470,9 +44863,9 @@ }, "post": { "summary": "Create a database restoration.", - "operationId": "mongoCreateRestoration", + "operationId": "mysqlCreateRestoration", "tags": [ - "mongo" + "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": { @@ -43493,13 +44886,14 @@ "group": "databases", "cookies": false, "type": "", - "demo": "mongo\/create-restoration.md", + "demo": "mysql\/create-restoration.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", "scope": "databases.write", "platforms": [ - "console" + "console", + "server" ], "packaging": false, "public": true, @@ -43509,7 +44903,8 @@ }, "security": [ { - "Project": [] + "Project": [], + "Key": [] } ], "parameters": [ @@ -43556,12 +44951,12 @@ } } }, - "\/mongo\/{databaseId}\/restorations\/{restorationId}": { + "\/mysql\/{databaseId}\/restorations\/{restorationId}": { "get": { "summary": "Get a database restoration.", - "operationId": "mongoGetRestoration", + "operationId": "mysqlGetRestoration", "tags": [ - "mongo" + "mysql" ], "description": "Get details of a specific database restoration including its status, type, and timestamps.", "responses": { @@ -43582,13 +44977,14 @@ "group": "databases", "cookies": false, "type": "", - "demo": "mongo\/get-restoration.md", + "demo": "mysql\/get-restoration.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", "scope": "databases.read", "platforms": [ - "console" + "console", + "server" ], "packaging": false, "public": true, @@ -43598,7 +44994,8 @@ }, "security": [ { - "Project": [] + "Project": [], + "Key": [] } ], "parameters": [ @@ -43625,12 +45022,12 @@ ] } }, - "\/mongo\/{databaseId}\/status": { + "\/mysql\/{databaseId}\/status": { "get": { "summary": "Get database status.", - "operationId": "mongoGetStatus", + "operationId": "mysqlGetStatus", "tags": [ - "mongo" + "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": { @@ -43651,13 +45048,14 @@ "group": "databases", "cookies": false, "type": "", - "demo": "mongo\/get-status.md", + "demo": "mysql\/get-status.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", "scope": "databases.read", "platforms": [ - "console" + "console", + "server" ], "packaging": false, "public": true, @@ -43667,7 +45065,8 @@ }, "security": [ { - "Project": [] + "Project": [], + "Key": [] } ], "parameters": [ @@ -43684,12 +45083,12 @@ ] } }, - "\/mongo\/{databaseId}\/upgrades": { + "\/mysql\/{databaseId}\/upgrades": { "post": { "summary": "Upgrade database version.", - "operationId": "mongoCreateUpgrade", + "operationId": "mysqlCreateUpgrade", "tags": [ - "mongo" + "mysql" ], "description": "Upgrade a dedicated database to a new engine version. Uses blue-green deployment for zero-downtime cutover.", "responses": { @@ -43710,13 +45109,14 @@ "group": "databases", "cookies": false, "type": "", - "demo": "mongo\/create-upgrade.md", + "demo": "mysql\/create-upgrade.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", "scope": "databases.write", "platforms": [ - "console" + "console", + "server" ], "packaging": false, "public": true, @@ -43726,7 +45126,8 @@ }, "security": [ { - "Project": [] + "Project": [], + "Key": [] } ], "parameters": [ @@ -43762,21 +45163,21 @@ } } }, - "\/mysql": { + "\/notifications": { "get": { - "summary": "List dedicated databases.", - "operationId": "mysqlList", + "summary": "List notifications", + "operationId": "notificationsList", "tags": [ - "mysql" + "notifications" ], - "description": "List all dedicated databases. Results support pagination.", + "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": "Dedicated databases list", + "description": "Notifications List", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/dedicatedDatabaseList" + "$ref": "#\/components\/schemas\/notificationList" } } } @@ -43785,19 +45186,20 @@ "deprecated": false, "x-appwrite": { "method": "list", - "group": "databases", + "group": null, "cookies": false, "type": "", - "demo": "mysql\/list.md", + "demo": "notifications\/list.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "databases.read", + "scope": "account", "platforms": [ "console" ], "packaging": false, "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/notifications\/list-notifications.md", "auth": { "Project": [] } @@ -43810,7 +45212,7 @@ "parameters": [ { "name": "queries", - "description": "Array of query strings.", + "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more 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", @@ -43822,21 +45224,23 @@ "in": "query" } ] - }, - "post": { - "summary": "Create a dedicated database.", - "operationId": "mysqlCreate", + } + }, + "\/notifications\/{notificationId}": { + "patch": { + "summary": "Update notification", + "operationId": "notificationsUpdate", "tags": [ - "mysql" + "notifications" ], - "description": "Create a new dedicated database with the chosen engine and configuration. Status will be 'provisioning' until the database is ready.", + "description": "Update a notification by its unique ID. Use the `read` parameter to mark the notification as read or unread.\n", "responses": { - "201": { - "description": "DedicatedDatabase", + "200": { + "description": "Notification", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/dedicatedDatabase" + "$ref": "#\/components\/schemas\/notification" } } } @@ -43844,20 +45248,21 @@ }, "deprecated": false, "x-appwrite": { - "method": "create", - "group": "databases", + "method": "update", + "group": null, "cookies": false, "type": "", - "demo": "mysql\/create.md", + "demo": "notifications\/update.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "databases.write", + "scope": "account", "platforms": [ "console" ], "packaging": false, "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/notifications\/update-notification.md", "auth": { "Project": [] } @@ -43867,116 +45272,32 @@ "Project": [] } ], + "parameters": [ + { + "name": "notificationId", + "description": "Notification ID.", + "required": true, + "schema": { + "type": "string", + "x-example": "<NOTIFICATION_ID>" + }, + "in": "path" + } + ], "requestBody": { "content": { "application\/json": { "schema": { "type": "object", "properties": { - "databaseId": { - "type": "string", - "description": "Database ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.", - "x-example": "<DATABASE_ID>", - "x-appwrite": { - "idGenerator": "ID.unique" - } - }, - "name": { - "type": "string", - "description": "Database display name. Max length: 128 chars.", - "x-example": "<NAME>" - }, - "version": { - "type": "string", - "description": "Database engine version. Defaults to latest for selected engine.", - "x-example": "17", - "x-nullable": true - }, - "specification": { - "type": "string", - "description": "Specification identifier. Drives the allocated CPU, memory, storage, storage class, and connection ceiling.", - "default": "s-1vcpu-1gb", - "x-example": "<SPECIFICATION>" - }, - "replicas": { - "type": "integer", - "description": "Number of high availability replicas (0-5). High availability is enabled when greater than 0.", - "default": 0, - "x-example": 0, - "format": "int32" - }, - "syncMode": { - "type": "string", - "description": "Replication sync mode preference. Allowed values: async, sync, quorum.", - "x-example": "async", - "x-nullable": true - }, - "networkIdleTimeoutSeconds": { - "type": "integer", - "description": "Connection idle timeout in seconds.", - "default": 900, - "x-example": 60, - "format": "int32" - }, - "networkIPAllowlist": { - "type": "array", - "description": "IP addresses\/CIDR ranges allowed to connect.", - "x-example": null, - "items": { - "type": "string" - }, - "x-nullable": true - }, - "idleTimeoutMinutes": { - "type": "integer", - "description": "Minutes of inactivity before container scales to zero.", - "default": 15, - "x-example": 5, - "format": "int32" - }, - "pitr": { - "type": "boolean", - "description": "Enable point-in-time recovery (PITR). Continuously archives changes so the database can be restored to any moment within the retention window.", - "default": true, - "x-example": false - }, - "pitrRetentionDays": { - "type": "integer", - "description": "Number of days to retain PITR data.", - "default": 7, - "x-example": 1, - "format": "int32" - }, - "storageAutoscaling": { + "read": { "type": "boolean", - "description": "Enable automatic storage expansion when usage exceeds threshold.", - "default": false, + "description": "Notification read status.", "x-example": false - }, - "storageAutoscalingThresholdPercent": { - "type": "integer", - "description": "Storage usage percentage (50-95) that triggers automatic expansion.", - "default": 85, - "x-example": 50, - "format": "int32" - }, - "storageAutoscalingMaxGb": { - "type": "integer", - "description": "Maximum storage size in GB for autoscaling. 0 means no limit.", - "default": 0, - "x-example": 0, - "format": "int32" - }, - "api": { - "type": "string", - "description": "Product API that owns this database: nativedb (raw, direct-access), tablesdb, documentsdb, or vectorsdb. tablesdb\/documentsdb\/vectorsdb databases are reached only through their product APIs.", - "default": "nativedb", - "x-example": "nativedb" } }, "required": [ - "databaseId", - "name" + "read" ] } } @@ -43984,21 +45305,21 @@ } } }, - "\/mysql\/specifications": { - "get": { - "summary": "List dedicated database specifications.", - "operationId": "mysqlListSpecifications", + "\/oauth2\/{project_id}\/approve": { + "post": { + "summary": "Approve OAuth2", + "operationId": "oauth2Approve", "tags": [ - "mysql" + "oauth2" ], - "description": "List the dedicated database specifications available on the current plan. Each specification reports its resource limits, pricing, and whether it is enabled for the organization.", + "description": "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": "SpecificationList", + "description": "OAuth2 Approve", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/dedicatedDatabaseSpecificationList" + "$ref": "#\/components\/schemas\/oauth2Approve" } } } @@ -44006,46 +45327,93 @@ }, "deprecated": false, "x-appwrite": { - "method": "listSpecifications", - "group": "databases", + "method": "approve", + "group": "authorization", "cookies": false, "type": "", - "demo": "mysql\/list-specifications.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "databases.read", + "demo": "oauth2\/approve.md", + "rate-limit": 10, + "rate-time": 60, + "rate-key": "ip:{ip},userId:{userId}", + "scope": "oauth2.write", "platforms": [ - "console" + "console", + "client", + "server" ], "packaging": false, "public": true, "auth": { - "Project": [] + "ProjectPath": [] } }, "security": [ { - "Project": [] + "ProjectPath": [], + "Session": [], + "JWT": [] } - ] + ], + "parameters": [ + { + "name": "project_id", + "description": "Project ID in which OAuth2 client exists.", + "required": true, + "schema": { + "type": "string", + "x-example": "<PROJECT_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "grant_id": { + "type": "string", + "description": "Grant ID made during authorization, provided to consent screen in URL search params.", + "x-example": "<GRANT_ID>" + }, + "authorization_details": { + "type": "string", + "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.", + "default": "", + "x-example": "<AUTHORIZATION_DETAILS>" + }, + "scope": { + "type": "string", + "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.", + "default": "", + "x-example": "<SCOPE>" + } + }, + "required": [ + "grant_id" + ] + } + } + } + } } }, - "\/mysql\/{databaseId}": { + "\/oauth2\/{project_id}\/authorize": { "get": { - "summary": "Get dedicated database.", - "operationId": "mysqlGet", + "summary": "OAuth2 Authorize", + "operationId": "oauth2AuthorizeGet", "tags": [ - "mysql" + "oauth2" ], - "description": "Get a dedicated database by its unique ID. Returns the database configuration and current status.", + "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": "DedicatedDatabase", + "description": "OAuth2 Authorize", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/dedicatedDatabase" + "$ref": "#\/components\/schemas\/oauth2Authorize" } } } @@ -44053,56 +45421,214 @@ }, "deprecated": false, "x-appwrite": { - "method": "get", - "group": "databases", + "method": "authorize", + "group": "authorization", "cookies": false, "type": "", - "demo": "mysql\/get.md", - "rate-limit": 0, - "rate-time": 3600, + "demo": "oauth2\/authorize.md", + "rate-limit": 60, + "rate-time": 60, "rate-key": "url:{url},ip:{ip}", - "scope": "databases.read", + "scope": "public", "platforms": [ - "console" + "console", + "client", + "server" ], "packaging": false, "public": true, "auth": { - "Project": [] + "ProjectPath": [] } }, "security": [ { - "Project": [] + "ProjectPath": [], + "Session": [], + "JWT": [] } ], "parameters": [ { - "name": "databaseId", - "description": "Database ID.", + "name": "project_id", + "description": "Project ID in which OAuth2 client exists.", "required": true, "schema": { "type": "string", - "x-example": "<DATABASE_ID>" + "x-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", + "x-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", + "x-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", + "x-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", + "x-example": "<SCOPE>", + "default": "" + }, + "in": "query" + }, + { + "name": "state", + "description": "OAuth2 state. You receive this back in the redirect URI.", + "required": false, + "schema": { + "type": "string", + "x-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", + "x-example": "<NONCE>", + "default": "" + }, + "in": "query" + }, + { + "name": "code_challenge", + "description": "PKCE code challenge. Required when OAuth2 app is public.", + "required": false, + "schema": { + "type": "string", + "x-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", + "x-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", + "x-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", + "x-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", + "x-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", + "x-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", + "x-example": "<REQUEST_URI>", + "default": "" + }, + "in": "query" } ] }, - "patch": { - "summary": "Update dedicated database.", - "operationId": "mysqlUpdate", + "post": { + "summary": "OAuth2 Authorize", + "operationId": "oauth2AuthorizePost", "tags": [ - "mysql" + "oauth2" ], - "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.", + "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": "DedicatedDatabase", + "description": "OAuth2 Authorize", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/dedicatedDatabase" + "$ref": "#\/components\/schemas\/oauth2Authorize" } } } @@ -44110,37 +45636,41 @@ }, "deprecated": false, "x-appwrite": { - "method": "update", - "group": "databases", + "method": "authorizePost", + "group": "authorization", "cookies": false, "type": "", - "demo": "mysql\/update.md", - "rate-limit": 0, - "rate-time": 3600, + "demo": "oauth2\/authorize.md", + "rate-limit": 60, + "rate-time": 60, "rate-key": "url:{url},ip:{ip}", - "scope": "databases.write", + "scope": "public", "platforms": [ - "console" + "console", + "client", + "server" ], "packaging": false, "public": true, "auth": { - "Project": [] + "ProjectPath": [] } }, "security": [ { - "Project": [] + "ProjectPath": [], + "Session": [], + "JWT": [] } ], "parameters": [ { - "name": "databaseId", - "description": "Database ID.", + "name": "project_id", + "description": "Project ID in which OAuth2 client exists.", "required": true, "schema": { "type": "string", - "x-example": "<DATABASE_ID>" + "x-example": "<PROJECT_ID>" }, "in": "path" } @@ -44151,218 +45681,114 @@ "schema": { "type": "object", "properties": { - "name": { + "client_id": { "type": "string", - "description": "Database display name.", - "x-example": "<NAME>", - "x-nullable": true + "description": "OAuth2 client ID. Either a registered app ID or an HTTPS client ID metadata document URL.", + "default": "", + "x-example": "<CLIENT_ID>" }, - "status": { + "redirect_uri": { "type": "string", - "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.", - "x-example": "ready", - "x-nullable": true + "description": "Redirect URI where visitor will be redirected after authorization, whether successful or not.", + "default": "", + "x-example": "https:\/\/example.com", + "format": "url" }, - "specification": { + "response_type": { "type": "string", - "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.", - "x-example": "<SPECIFICATION>", - "x-nullable": true + "description": "OAuth2 \/ OIDC response type. One of `code` (Authorization Code Flow), `id_token` (Implicit Flow, OIDC login only), or `code id_token` (Hybrid Flow).", + "default": "", + "x-example": "" }, - "replicas": { - "type": "integer", - "description": "Number of high availability replicas (0-5). High availability is enabled when greater than 0.", - "x-example": 0, - "format": "int32", - "x-nullable": true + "scope": { + "type": "string", + "description": "Space-separated OAuth2 scopes. Can include project scopes, and built-in scopes: `openid`, `email`, `profile`, `phone`.", + "default": "", + "x-example": "<SCOPE>" }, - "syncMode": { + "state": { "type": "string", - "description": "Replication sync mode preference. Allowed values: async, sync, quorum.", - "x-example": "async", - "x-nullable": true - }, - "networkIdleTimeoutSeconds": { - "type": "integer", - "description": "Connection idle timeout in seconds (60-86400).", - "x-example": 60, - "format": "int32", - "x-nullable": true - }, - "networkIPAllowlist": { - "type": "array", - "description": "IP addresses\/CIDR ranges allowed to connect.", - "x-example": null, - "items": { - "type": "string" - }, - "x-nullable": true - }, - "idleTimeoutMinutes": { - "type": "integer", - "description": "Minutes before container scales to zero.", - "x-example": 5, - "format": "int32", - "x-nullable": true - }, - "pitr": { - "type": "boolean", - "description": "Enable or disable point-in-time recovery (PITR).", - "x-example": false, - "x-nullable": true - }, - "pitrRetentionDays": { - "type": "integer", - "description": "Days to retain PITR data.", - "x-example": 1, - "format": "int32", - "x-nullable": true + "description": "OAuth2 state. You receive this back in the redirect URI.", + "default": "", + "x-example": "<STATE>" }, - "storageAutoscaling": { - "type": "boolean", - "description": "Enable automatic storage expansion when usage exceeds threshold.", - "x-example": false, - "x-nullable": true + "nonce": { + "type": "string", + "description": "OIDC nonce parameter to prevent replay attacks. Required when response_type includes `id_token`.", + "default": "", + "x-example": "<NONCE>" }, - "storageAutoscalingThresholdPercent": { - "type": "integer", - "description": "Storage usage percentage (50-95) that triggers automatic expansion.", - "x-example": 50, - "format": "int32", - "x-nullable": true + "code_challenge": { + "type": "string", + "description": "PKCE code challenge. Required when OAuth2 app is public.", + "default": "", + "x-example": "<CODE_CHALLENGE>" }, - "storageAutoscalingMaxGb": { - "type": "integer", - "description": "Maximum storage size in GB for autoscaling. 0 means no limit.", - "x-example": 0, - "format": "int32", - "x-nullable": true + "code_challenge_method": { + "type": "string", + "description": "PKCE code challenge method. Required when OAuth2 app is public.", + "default": "", + "x-example": "s256" }, - "metricsTraceSampleRate": { - "type": "number", - "description": "Fraction of queries to trace (0.0\u20131.0). Forwarded to the sidecar.", - "x-example": null, - "format": "float", - "x-nullable": true + "prompt": { + "type": "string", + "description": "OIDC prompt parameter for customization of consent screen. Space-separated list of: none, login, consent, select_account.", + "default": "", + "x-example": "<PROMPT>" }, - "metricsSlowQueryLogThresholdMs": { + "max_age": { "type": "integer", - "description": "Threshold in ms above which queries are logged as slow. Forwarded to the sidecar.", + "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.", "x-example": 0, "format": "int32", "x-nullable": true }, - "sqlApiEnabled": { - "type": "boolean", - "description": "Enable the SQL API sidecar for this database.", - "x-example": false, - "x-nullable": true - }, - "sqlApiAllowedStatements": { - "type": "array", - "description": "Statement types the SQL API accepts. Allowed values: SELECT, INSERT, UPDATE, DELETE, CREATE, ALTER, DROP, TRUNCATE, GRANT, REVOKE.", - "x-example": null, - "items": { - "type": "string" - }, - "x-nullable": true + "authorization_details": { + "type": "string", + "description": "Rich authorization request. JSON array of objects, each with a `type` and project-defined fields", + "default": "", + "x-example": "<AUTHORIZATION_DETAILS>" }, - "sqlApiMaxRows": { - "type": "integer", - "description": "Maximum rows returned per SQL API execution (1-1000000).", - "x-example": 1, - "format": "int32", - "x-nullable": true + "resource": { + "type": "string", + "description": "RFC 8707 resource indicator URI or URI list. Each value must be an absolute URI without a fragment.", + "default": [], + "x-example": null }, - "sqlApiMaxBytes": { - "type": "integer", - "description": "Maximum serialised SQL API result payload in bytes (1024-104857600).", - "x-example": 1024, - "format": "int32", - "x-nullable": true + "audience": { + "type": "string", + "description": "Compatibility alias for a single OAuth2 resource indicator URI.", + "default": "", + "x-example": "<AUDIENCE>" }, - "sqlApiTimeoutSeconds": { - "type": "integer", - "description": "Per-call SQL API execution timeout in seconds (1-300).", - "x-example": 1, - "format": "int32", - "x-nullable": true + "request_uri": { + "type": "string", + "description": "OAuth2 authorization request handle returned by the pushed authorization request endpoint.", + "default": "", + "x-example": "<REQUEST_URI>" } } } } } } - }, - "delete": { - "summary": "Delete dedicated 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": { - "method": "delete", - "group": "databases", - "cookies": false, - "type": "", - "demo": "mysql\/delete.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "databases.write", - "platforms": [ - "console" - ], - "packaging": false, - "public": true, - "produces": [ - "application\/json" - ], - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [] - } - ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "x-example": "<DATABASE_ID>" - }, - "in": "path" - } - ] } }, - "\/mysql\/{databaseId}\/backups": { - "get": { - "summary": "List database backups.", - "operationId": "mysqlListBackups", + "\/oauth2\/{project_id}\/device_authorization": { + "post": { + "summary": "OAuth2 Device Authorization", + "operationId": "oauth2CreateDeviceAuthorization", "tags": [ - "mysql" + "oauth2" ], - "description": "List all backups for a dedicated database. Results can be filtered by status and type.", + "description": "Start the OAuth2 Device Authorization Grant. Returns the device code, user code, verification URL, expiration, and polling interval.", "responses": { "200": { - "description": "BackupList", + "description": "OAuth2 Device Authorization", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/dedicatedDatabaseBackupList" + "$ref": "#\/components\/schemas\/oauth2DeviceAuthorization" } } } @@ -44370,69 +45796,104 @@ }, "deprecated": false, "x-appwrite": { - "method": "listBackups", - "group": "databases", + "method": "createDeviceAuthorization", + "group": "authorization", "cookies": false, "type": "", - "demo": "mysql\/list-backups.md", - "rate-limit": 0, - "rate-time": 3600, + "demo": "oauth2\/create-device-authorization.md", + "rate-limit": 60, + "rate-time": 60, "rate-key": "url:{url},ip:{ip}", - "scope": "databases.read", + "scope": "public", "platforms": [ - "console" + "console", + "client", + "server" ], "packaging": false, "public": true, "auth": { - "Project": [] + "ProjectPath": [] } }, "security": [ { - "Project": [] + "ProjectPath": [], + "Session": [], + "JWT": [], + "Key": [] } ], "parameters": [ { - "name": "databaseId", - "description": "Database ID.", + "name": "project_id", + "description": "Project ID in which OAuth2 client exists.", "required": true, "schema": { "type": "string", - "x-example": "<DATABASE_ID>" + "x-example": "<PROJECT_ID>" }, "in": "path" - }, - { - "name": "queries", - "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/queries). Maximum of 100 queries are allowed, each 4096 characters long. You may filter on the following attributes: status, type, databaseId", - "required": false, - "schema": { - "type": "array", - "items": { - "type": "string" - }, - "default": [] - }, - "in": "query" } - ] - }, + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "client_id": { + "type": "string", + "description": "OAuth2 client ID. Either a registered app ID or an HTTPS client ID metadata document URL.", + "default": "", + "x-example": "<CLIENT_ID>" + }, + "scope": { + "type": "string", + "description": "Space-separated OAuth2 scopes. Can include project scopes, and built-in scopes: `openid`, `email`, `profile`.", + "default": "", + "x-example": "<SCOPE>" + }, + "authorization_details": { + "type": "string", + "description": "Rich authorization request. JSON array of objects, each with a `type` and project-defined fields", + "default": "", + "x-example": "<AUTHORIZATION_DETAILS>" + }, + "resource": { + "type": "string", + "description": "RFC 8707 resource indicator URI or URI list. Each value must be an absolute URI without a fragment.", + "default": [], + "x-example": null + }, + "audience": { + "type": "string", + "description": "Compatibility alias for a single OAuth2 resource indicator URI.", + "default": "", + "x-example": "<AUDIENCE>" + } + } + } + } + } + } + } + }, + "\/oauth2\/{project_id}\/grants": { "post": { - "summary": "Create a database backup.", - "operationId": "mysqlCreateBackup", + "summary": "Create OAuth2 Grant", + "operationId": "oauth2CreateGrant", "tags": [ - "mysql" + "oauth2" ], - "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.", + "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": { - "202": { - "description": "Backup", + "201": { + "description": "OAuth2 Grant", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/dedicatedDatabaseBackup" + "$ref": "#\/components\/schemas\/oauth2Grant" } } } @@ -44440,37 +45901,41 @@ }, "deprecated": false, "x-appwrite": { - "method": "createBackup", - "group": "databases", + "method": "createGrant", + "group": "grants", "cookies": false, "type": "", - "demo": "mysql\/create-backup.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "databases.write", + "demo": "oauth2\/create-grant.md", + "rate-limit": 10, + "rate-time": 60, + "rate-key": "ip:{ip},userId:{userId}", + "scope": "oauth2.write", "platforms": [ - "console" + "console", + "client", + "server" ], "packaging": false, "public": true, "auth": { - "Project": [] + "ProjectPath": [] } }, "security": [ { - "Project": [] + "ProjectPath": [], + "Session": [], + "JWT": [] } ], "parameters": [ { - "name": "databaseId", - "description": "Database ID.", + "name": "project_id", + "description": "Project ID in which OAuth2 client exists.", "required": true, "schema": { "type": "string", - "x-example": "<DATABASE_ID>" + "x-example": "<PROJECT_ID>" }, "in": "path" } @@ -44481,34 +45946,36 @@ "schema": { "type": "object", "properties": { - "type": { + "user_code": { "type": "string", - "description": "Backup type: full or incremental.", - "default": "full", - "x-example": "full" + "description": "User code displayed on the device.", + "x-example": "<USER_CODE>" } - } + }, + "required": [ + "user_code" + ] } } } } } }, - "\/mysql\/{databaseId}\/backups\/policies": { + "\/oauth2\/{project_id}\/grants\/{grant_id}": { "get": { - "summary": "List database backup policies.", - "operationId": "mysqlListBackupPolicies", + "summary": "Get OAuth2 Grant", + "operationId": "oauth2GetGrant", "tags": [ - "mysql" + "oauth2" ], - "description": "List scheduled backup policies for a dedicated database.", + "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": "Backup policy list", + "description": "OAuth2 Grant", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/backupPolicyList" + "$ref": "#\/components\/schemas\/oauth2Grant" } } } @@ -44516,296 +45983,231 @@ }, "deprecated": false, "x-appwrite": { - "method": "listBackupPolicies", - "group": "databases", + "method": "getGrant", + "group": "grants", "cookies": false, "type": "", - "demo": "mysql\/list-backup-policies.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "databases.read", + "demo": "oauth2\/get-grant.md", + "rate-limit": 60, + "rate-time": 60, + "rate-key": "ip:{ip},userId:{userId}", + "scope": "oauth2.read", "platforms": [ - "console" + "console", + "client", + "server" ], "packaging": false, "public": true, "auth": { - "Project": [] + "ProjectPath": [] } }, "security": [ { - "Project": [] + "ProjectPath": [], + "Session": [], + "JWT": [], + "Key": [] } ], "parameters": [ { - "name": "databaseId", - "description": "Database ID.", + "name": "project_id", + "description": "Project ID in which OAuth2 client that created grant during authorization exists.", "required": true, "schema": { "type": "string", - "x-example": "<DATABASE_ID>" + "x-example": "<PROJECT_ID>" }, "in": "path" }, { - "name": "queries", - "description": "Array of query strings generated using the Query class provided by the SDK.", - "required": false, + "name": "grant_id", + "description": "Grant ID made during authorization, provided to consent screen in URL search params.", + "required": true, "schema": { - "type": "array", - "items": { - "type": "string" - }, - "default": [] + "type": "string", + "x-example": "<GRANT_ID>" }, - "in": "query" + "in": "path" } ] - }, - "post": { - "summary": "Create a database backup policy.", - "operationId": "mysqlCreateBackupPolicy", + } + }, + "\/oauth2\/{project_id}\/logout": { + "get": { + "summary": "OAuth2 Logout", + "operationId": "oauth2LogoutGet", "tags": [ - "mysql" + "oauth2" ], - "description": "Create a scheduled backup policy for a dedicated database.", + "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": { - "201": { - "description": "backup", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/backupPolicy" - } - } - } + "204": { + "description": "No content" } }, "deprecated": false, "x-appwrite": { - "method": "createBackupPolicy", - "group": "databases", + "method": "logout", + "group": "tokens", "cookies": false, "type": "", - "demo": "mysql\/create-backup-policy.md", - "rate-limit": 0, - "rate-time": 3600, + "demo": "oauth2\/logout.md", + "rate-limit": 10, + "rate-time": 60, "rate-key": "url:{url},ip:{ip}", - "scope": "databases.write", + "scope": "public", "platforms": [ - "console" + "console", + "client" ], "packaging": false, "public": true, + "produces": [ + "application\/json" + ], "auth": { - "Project": [] + "ProjectPath": [] } }, "security": [ { - "Project": [] + "ProjectPath": [], + "Session": [] } ], "parameters": [ { - "name": "databaseId", - "description": "Database ID.", + "name": "project_id", + "description": "Project ID in which OAuth2 client exists.", "required": true, "schema": { "type": "string", - "x-example": "<DATABASE_ID>" + "x-example": "<PROJECT_ID>" }, "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "policyId": { - "type": "string", - "description": "Policy ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.", - "x-example": "<POLICY_ID>", - "x-appwrite": { - "idGenerator": "ID.unique" - } - }, - "name": { - "type": "string", - "description": "Policy name. Max length: 128 chars.", - "x-example": "<NAME>" - }, - "schedule": { - "type": "string", - "description": "Schedule CRON syntax.", - "x-example": null - }, - "retention": { - "type": "integer", - "description": "Days to keep backups before deletion.", - "x-example": 1, - "format": "int32" - }, - "type": { - "type": "string", - "description": "Backup type: full or incremental.", - "default": "full", - "x-example": "full" - }, - "enabled": { - "type": "boolean", - "description": "Is policy enabled? When disabled, no backups will be taken.", - "default": true, - "x-example": false - } - }, - "required": [ - "policyId", - "name", - "schedule", - "retention" - ] - } - } - } - } - } - }, - "\/mysql\/{databaseId}\/backups\/policies\/{policyId}": { - "get": { - "summary": "Get a database 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": { - "method": "getBackupPolicy", - "group": "databases", - "cookies": false, - "type": "", - "demo": "mysql\/get-backup-policy.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": "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", + "x-example": "<ID_TOKEN_HINT>", + "default": "" + }, + "in": "query" + }, { - "name": "databaseId", - "description": "Database ID.", - "required": true, + "name": "logout_hint", + "description": "Hint about the user that is logging out. Accepted for OIDC compatibility.", + "required": false, "schema": { "type": "string", - "x-example": "<DATABASE_ID>" + "x-example": "<LOGOUT_HINT>", + "default": "" }, - "in": "path" + "in": "query" }, { - "name": "policyId", - "description": "Policy ID.", - "required": true, + "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", - "x-example": "<POLICY_ID>" + "x-example": "<CLIENT_ID>", + "default": "" }, - "in": "path" + "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", + "x-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", + "x-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", + "x-example": "<UI_LOCALES>", + "default": "" + }, + "in": "query" } ] }, - "patch": { - "summary": "Update a database backup policy.", - "operationId": "mysqlUpdateBackupPolicy", + "post": { + "summary": "OAuth2 Logout", + "operationId": "oauth2LogoutPost", "tags": [ - "mysql" + "oauth2" ], - "description": "Update a scheduled backup policy for a dedicated database.", + "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": { - "200": { - "description": "backup", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/backupPolicy" - } - } - } + "204": { + "description": "No content" } }, "deprecated": false, "x-appwrite": { - "method": "updateBackupPolicy", - "group": "databases", + "method": "logoutPost", + "group": "tokens", "cookies": false, "type": "", - "demo": "mysql\/update-backup-policy.md", - "rate-limit": 0, - "rate-time": 3600, + "demo": "oauth2\/logout.md", + "rate-limit": 10, + "rate-time": 60, "rate-key": "url:{url},ip:{ip}", - "scope": "databases.write", + "scope": "public", "platforms": [ - "console" + "console", + "client" ], "packaging": false, "public": true, + "produces": [ + "application\/json" + ], "auth": { - "Project": [] + "ProjectPath": [] } }, "security": [ { - "Project": [] + "ProjectPath": [], + "Session": [] } ], "parameters": [ { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "x-example": "<DATABASE_ID>" - }, - "in": "path" - }, - { - "name": "policyId", - "description": "Policy ID.", + "name": "project_id", + "description": "Project ID in which OAuth2 client exists.", "required": true, "schema": { "type": "string", - "x-example": "<POLICY_ID>" + "x-example": "<PROJECT_ID>" }, "in": "path" } @@ -44816,115 +46218,164 @@ "schema": { "type": "object", "properties": { - "name": { + "id_token_hint": { "type": "string", - "description": "Policy name. Max length: 128 chars.", - "x-example": "<NAME>", - "x-nullable": true + "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.", + "default": "", + "x-example": "<ID_TOKEN_HINT>" }, - "schedule": { + "logout_hint": { "type": "string", - "description": "Schedule CRON syntax.", - "x-example": null + "description": "Hint about the user that is logging out. Accepted for OIDC compatibility.", + "default": "", + "x-example": "<LOGOUT_HINT>" }, - "retention": { - "type": "integer", - "description": "Days to keep backups before deletion.", - "x-example": 1, - "format": "int32", - "x-nullable": true + "client_id": { + "type": "string", + "description": "OAuth2 client ID. When both `client_id` and `id_token_hint` are provided, they must identify the same app.", + "default": "", + "x-example": "<CLIENT_ID>" }, - "enabled": { - "type": "boolean", - "description": "Is policy enabled? When disabled, no backups will be taken.", - "x-example": false, - "x-nullable": true + "post_logout_redirect_uri": { + "type": "string", + "description": "URI to redirect the user to after logout. Must exactly match a URI registered in the app's `postLogoutRedirectUris`.", + "default": "", + "x-example": "https:\/\/example.com", + "format": "url" + }, + "state": { + "type": "string", + "description": "Opaque value passed back unchanged in the `state` query param of the post-logout redirect.", + "default": "", + "x-example": "<STATE>" + }, + "ui_locales": { + "type": "string", + "description": "Preferred languages for any logout UI, as space-separated BCP47 tags. Accepted for OIDC compatibility.", + "default": "", + "x-example": "<UI_LOCALES>" } } } } } } - }, - "delete": { - "summary": "Delete a database backup policy.", - "operationId": "mysqlDeleteBackupPolicy", + } + }, + "\/oauth2\/{project_id}\/organizations": { + "get": { + "summary": "OAuth2 List Accessible Organizations", + "operationId": "oauth2ListOrganizations", "tags": [ - "mysql" + "oauth2" ], - "description": "Delete a scheduled backup policy for a dedicated database. Backups already taken by the policy are kept until their retention expires.", + "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": { - "204": { - "description": "No content" + "200": { + "description": "OAuth2 accessible organizations list", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/oauth2OrganizationList" + } + } + } } }, "deprecated": false, "x-appwrite": { - "method": "deleteBackupPolicy", - "group": "databases", + "method": "listOrganizations", + "group": "platform", "cookies": false, "type": "", - "demo": "mysql\/delete-backup-policy.md", - "rate-limit": 0, - "rate-time": 3600, + "demo": "oauth2\/list-organizations.md", + "rate-limit": 120, + "rate-time": 60, "rate-key": "url:{url},ip:{ip}", - "scope": "databases.write", + "scope": "oauth2.organizations.read", "platforms": [ - "console" + "console", + "client", + "server" ], "packaging": false, "public": true, - "produces": [ - "application\/json" - ], "auth": { - "Project": [] + "ProjectPath": [] } }, "security": [ { - "Project": [] + "ProjectPath": [], + "Session": [], + "JWT": [], + "Key": [] } ], "parameters": [ { - "name": "databaseId", - "description": "Database ID.", + "name": "project_id", + "description": "Project ID of the console project the OAuth2 access token was issued for.", "required": true, "schema": { "type": "string", - "x-example": "<DATABASE_ID>" + "x-example": "<PROJECT_ID>" }, "in": "path" }, { - "name": "policyId", - "description": "Policy ID.", - "required": true, + "name": "limit", + "description": "Maximum number of organizations to return. Between 1 and 5000.", + "required": false, + "schema": { + "type": "integer", + "format": "int32", + "x-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", + "x-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", - "x-example": "<POLICY_ID>" + "x-example": "<SEARCH>", + "default": "" }, - "in": "path" + "in": "query" } ] } }, - "\/mysql\/{databaseId}\/backups\/storage": { - "put": { - "summary": "Update database backup storage.", - "operationId": "mysqlUpdateBackupStorage", + "\/oauth2\/{project_id}\/par": { + "post": { + "summary": "OAuth2 PAR", + "operationId": "oauth2CreatePAR", "tags": [ - "mysql" + "oauth2" ], - "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.", + "description": "Store an OAuth2 authorization request server-side and receive a short-lived request_uri handle for the authorize endpoint.", "responses": { - "200": { - "description": "BackupStorageConfig", + "201": { + "description": "OAuth2 PAR", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/dedicatedDatabaseBackupStorage" + "$ref": "#\/components\/schemas\/oauth2PAR" } } } @@ -44932,37 +46383,42 @@ }, "deprecated": false, "x-appwrite": { - "method": "updateBackupStorage", - "group": "databases", + "method": "createPAR", + "group": "authorization", "cookies": false, "type": "", - "demo": "mysql\/update-backup-storage.md", - "rate-limit": 0, - "rate-time": 3600, + "demo": "oauth2\/create-par.md", + "rate-limit": 60, + "rate-time": 60, "rate-key": "url:{url},ip:{ip}", - "scope": "databases.write", + "scope": "public", "platforms": [ - "console" + "console", + "client", + "server" ], "packaging": false, "public": true, "auth": { - "Project": [] + "ProjectPath": [] } }, "security": [ { - "Project": [] + "ProjectPath": [], + "Session": [], + "JWT": [], + "Key": [] } ], "parameters": [ { - "name": "databaseId", - "description": "Database ID.", + "name": "project_id", + "description": "Project ID in which OAuth2 client exists.", "required": true, "schema": { "type": "string", - "x-example": "<DATABASE_ID>" + "x-example": "<PROJECT_ID>" }, "in": "path" } @@ -44973,50 +46429,88 @@ "schema": { "type": "object", "properties": { - "provider": { + "client_id": { "type": "string", - "description": "Storage provider for off-cluster backups. Allowed values: s3 (Amazon S3 or S3-compatible), gcs (Google Cloud Storage), azure (Azure Blob Storage).", - "x-example": "s3" + "description": "OAuth2 client ID. Either a registered app ID or an HTTPS client ID metadata document URL.", + "x-example": "<CLIENT_ID>" }, - "bucket": { + "redirect_uri": { "type": "string", - "description": "Storage bucket or container name.", - "x-example": "<BUCKET>" + "description": "Redirect URI where visitor will be redirected after authorization, whether successful or not.", + "x-example": "https:\/\/example.com", + "format": "url" }, - "region": { + "response_type": { "type": "string", - "description": "Storage region.", + "description": "OAuth2 \/ OIDC response type.", + "x-example": "code" + }, + "scope": { + "type": "string", + "description": "Space-separated OAuth2 scopes. Can include project scopes, and built-in scopes: `openid`, `email`, `profile`, `phone`.", "default": "", - "x-example": "<REGION>" + "x-example": "<SCOPE>" }, - "prefix": { + "state": { "type": "string", - "description": "Object key prefix for backups.", - "default": "backups\/", - "x-example": "<PREFIX>" + "description": "OAuth2 state. You receive this back in the redirect URI.", + "default": "", + "x-example": "<STATE>" }, - "endpoint": { + "nonce": { "type": "string", - "description": "Custom endpoint for S3-compatible storage (e.g. MinIO).", + "description": "OIDC nonce parameter to prevent replay attacks. Required when response_type includes `id_token`.", "default": "", - "x-example": "<ENDPOINT>" + "x-example": "<NONCE>" }, - "accessKey": { + "code_challenge": { "type": "string", - "description": "Access key or client ID for authentication.", - "x-example": "<ACCESS_KEY>" + "description": "PKCE code challenge. Required when OAuth2 app is public.", + "default": "", + "x-example": "<CODE_CHALLENGE>" }, - "secretKey": { + "code_challenge_method": { "type": "string", - "description": "Secret key or service account JSON for authentication.", - "x-example": "<SECRET_KEY>" + "description": "PKCE code challenge method. Required when OAuth2 app is public.", + "default": "", + "x-example": "s256" + }, + "prompt": { + "type": "string", + "description": "OIDC prompt parameter for customization of consent screen. Space-separated list of: none, login, consent, select_account.", + "default": "", + "x-example": "<PROMPT>" + }, + "max_age": { + "type": "integer", + "description": "OIDC max_age parameter for customization of consent screen.", + "x-example": 0, + "format": "int32", + "x-nullable": true + }, + "authorization_details": { + "type": "string", + "description": "Rich authorization request. JSON array of objects, each with a `type` and project-defined fields", + "default": "", + "x-example": "<AUTHORIZATION_DETAILS>" + }, + "resource": { + "type": "string", + "description": "RFC 8707 resource indicator URI or URI list. Each value must be an absolute URI without a fragment.", + "default": [], + "x-example": null + }, + "audience": { + "type": "string", + "description": "Compatibility alias for a single OAuth2 resource indicator URI.", + "default": "", + "x-example": "<AUDIENCE>" } }, "required": [ - "provider", - "bucket", - "accessKey", - "secretKey" + "client_id", + "redirect_uri", + "response_type" ] } } @@ -45024,21 +46518,21 @@ } } }, - "\/mysql\/{databaseId}\/backups\/{backupId}": { + "\/oauth2\/{project_id}\/projects": { "get": { - "summary": "Get a database backup.", - "operationId": "mysqlGetBackup", + "summary": "OAuth2 List Accessible Projects", + "operationId": "oauth2ListProjects", "tags": [ - "mysql" + "oauth2" ], - "description": "Get details of a specific database backup including its status, size, and timestamps.", + "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": "Backup", + "description": "OAuth2 accessible projects list", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/dedicatedDatabaseBackup" + "$ref": "#\/components\/schemas\/oauth2ProjectList" } } } @@ -45046,131 +46540,98 @@ }, "deprecated": false, "x-appwrite": { - "method": "getBackup", - "group": "databases", + "method": "listProjects", + "group": "platform", "cookies": false, "type": "", - "demo": "mysql\/get-backup.md", - "rate-limit": 0, - "rate-time": 3600, + "demo": "oauth2\/list-projects.md", + "rate-limit": 120, + "rate-time": 60, "rate-key": "url:{url},ip:{ip}", - "scope": "databases.read", + "scope": "oauth2.projects.read", "platforms": [ - "console" + "console", + "client", + "server" ], "packaging": false, "public": true, "auth": { - "Project": [] + "ProjectPath": [] } }, "security": [ { - "Project": [] + "ProjectPath": [], + "Session": [], + "JWT": [], + "Key": [] } ], "parameters": [ { - "name": "databaseId", - "description": "Database ID.", + "name": "project_id", + "description": "Project ID of the console project the OAuth2 access token was issued for.", "required": true, "schema": { "type": "string", - "x-example": "<DATABASE_ID>" + "x-example": "<PROJECT_ID>" }, "in": "path" }, { - "name": "backupId", - "description": "Backup ID.", - "required": true, + "name": "limit", + "description": "Maximum number of projects to return. Between 1 and 5000.", + "required": false, + "schema": { + "type": "integer", + "format": "int32", + "x-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", + "x-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", - "x-example": "<BACKUP_ID>" + "x-example": "<SEARCH>", + "default": "" }, - "in": "path" - } - ] - }, - "delete": { - "summary": "Delete a database 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": { - "method": "deleteBackup", - "group": "databases", - "cookies": false, - "type": "", - "demo": "mysql\/delete-backup.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "databases.write", - "platforms": [ - "console" - ], - "packaging": false, - "public": true, - "produces": [ - "application\/json" - ], - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [] - } - ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "x-example": "<DATABASE_ID>" - }, - "in": "path" - }, - { - "name": "backupId", - "description": "Backup ID.", - "required": true, - "schema": { - "type": "string", - "x-example": "<BACKUP_ID>" - }, - "in": "path" + "in": "query" } ] } }, - "\/mysql\/{databaseId}\/branches": { - "get": { - "summary": "List database branches.", - "operationId": "mysqlListBranches", + "\/oauth2\/{project_id}\/reject": { + "post": { + "summary": "Reject OAuth2", + "operationId": "oauth2Reject", "tags": [ - "mysql" + "oauth2" ], - "description": "List all ephemeral branches for a dedicated database. Returns branch metadata including ID, name, namespace, and expiration time.", + "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": "BranchList", + "description": "OAuth2 Reject", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/dedicatedDatabaseBranchList" + "$ref": "#\/components\/schemas\/oauth2Reject" } } } @@ -45178,56 +46639,82 @@ }, "deprecated": false, "x-appwrite": { - "method": "listBranches", - "group": "databases", + "method": "reject", + "group": "authorization", "cookies": false, "type": "", - "demo": "mysql\/list-branches.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "databases.read", + "demo": "oauth2\/reject.md", + "rate-limit": 10, + "rate-time": 60, + "rate-key": "ip:{ip},userId:{userId}", + "scope": "oauth2.write", "platforms": [ - "console" + "console", + "client", + "server" ], "packaging": false, "public": true, "auth": { - "Project": [] + "ProjectPath": [] } }, "security": [ { - "Project": [] + "ProjectPath": [], + "Session": [], + "JWT": [] } ], "parameters": [ { - "name": "databaseId", - "description": "Database ID.", + "name": "project_id", + "description": "Project ID in which OAuth2 client exists.", "required": true, "schema": { "type": "string", - "x-example": "<DATABASE_ID>" + "x-example": "<PROJECT_ID>" }, "in": "path" } - ] - }, + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "grant_id": { + "type": "string", + "description": "Grant ID made during authorization, provided to consent screen in URL search params.", + "x-example": "<GRANT_ID>" + } + }, + "required": [ + "grant_id" + ] + } + } + } + } + } + }, + "\/oauth2\/{project_id}\/revoke": { "post": { - "summary": "Create a database branch.", - "operationId": "mysqlCreateBranch", + "summary": "OAuth2 Revoke", + "operationId": "oauth2Revoke", "tags": [ - "mysql" + "oauth2" ], - "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.", + "description": "Revoke an OAuth2 access token or refresh token.", "responses": { - "202": { - "description": "DedicatedDatabase", + "200": { + "description": "File", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/dedicatedDatabase" + "type": "string", + "format": "binary" } } } @@ -45235,37 +46722,42 @@ }, "deprecated": false, "x-appwrite": { - "method": "createBranch", - "group": "databases", + "method": "revoke", + "group": "tokens", "cookies": false, "type": "", - "demo": "mysql\/create-branch.md", - "rate-limit": 0, - "rate-time": 3600, + "demo": "oauth2\/revoke.md", + "rate-limit": 60, + "rate-time": 60, "rate-key": "url:{url},ip:{ip}", - "scope": "databases.write", + "scope": "public", "platforms": [ - "console" + "console", + "client", + "server" ], "packaging": false, "public": true, "auth": { - "Project": [] + "ProjectPath": [] } }, "security": [ { - "Project": [] + "ProjectPath": [], + "Session": [], + "JWT": [], + "Key": [] } ], "parameters": [ { - "name": "databaseId", - "description": "Database ID.", + "name": "project_id", + "description": "Project ID in which OAuth2 client exists.", "required": true, "schema": { "type": "string", - "x-example": "<DATABASE_ID>" + "x-example": "<PROJECT_ID>" }, "in": "path" } @@ -45276,44 +46768,54 @@ "schema": { "type": "object", "properties": { - "branchId": { + "token": { "type": "string", - "description": "Branch ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.", + "description": "The access or refresh token to revoke.", + "x-example": "<TOKEN>" + }, + "token_type_hint": { + "type": "string", + "description": "Type of token to revoke (access_token or refresh_token).", "default": "", - "x-example": "<BRANCH_ID>", - "x-appwrite": { - "idGenerator": "ID.unique" - } + "x-example": "access_token" }, - "ttl": { - "type": "integer", - "description": "Time-to-live in seconds before the branch expires. Min 300 (5 min), max 604800 (7 days). Default: 86400 (24h).", - "default": 86400, - "x-example": 300, - "format": "int32" + "client_id": { + "type": "string", + "description": "OAuth2 client ID. Either a registered app ID or an HTTPS client ID metadata document URL.", + "default": "", + "x-example": "<CLIENT_ID>" + }, + "client_secret": { + "type": "string", + "description": "OAuth2 client secret. Required for confidential apps; omitted for public apps.", + "default": "", + "x-example": "<CLIENT_SECRET>" } - } + }, + "required": [ + "token" + ] } } } } } }, - "\/mysql\/{databaseId}\/branches\/{branchId}": { - "delete": { - "summary": "Delete a database branch.", - "operationId": "mysqlDeleteBranch", + "\/oauth2\/{project_id}\/token": { + "post": { + "summary": "OAuth2 Token", + "operationId": "oauth2CreateToken", "tags": [ - "mysql" + "oauth2" ], - "description": "Delete an ephemeral database branch. This removes the branch namespace, its PVC, and the associated VolumeSnapshot. The deletion runs asynchronously and is irreversible.", + "description": "Exchange an OAuth2 authorization code, refresh token, or device code for access and refresh tokens.", "responses": { - "202": { - "description": "DedicatedDatabase", + "200": { + "description": "OAuth2 Token", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/dedicatedDatabase" + "$ref": "#\/components\/schemas\/oauth2Token" } } } @@ -45321,68 +46823,137 @@ }, "deprecated": false, "x-appwrite": { - "method": "deleteBranch", - "group": "databases", + "method": "createToken", + "group": "tokens", "cookies": false, "type": "", - "demo": "mysql\/delete-branch.md", - "rate-limit": 0, - "rate-time": 3600, + "demo": "oauth2\/create-token.md", + "rate-limit": 60, + "rate-time": 60, "rate-key": "url:{url},ip:{ip}", - "scope": "databases.write", + "scope": "public", "platforms": [ - "console" + "console", + "client", + "server" ], "packaging": false, "public": true, "auth": { - "Project": [] + "ProjectPath": [] } }, "security": [ { - "Project": [] + "ProjectPath": [], + "Session": [], + "JWT": [], + "Key": [] } ], "parameters": [ { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "x-example": "<DATABASE_ID>" - }, - "in": "path" - }, - { - "name": "branchId", - "description": "Branch ID.", + "name": "project_id", + "description": "Project ID in which OAuth2 client exists.", "required": true, "schema": { "type": "string", - "x-example": "<BRANCH_ID>" + "x-example": "<PROJECT_ID>" }, "in": "path" } - ] + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "grant_type": { + "type": "string", + "description": "OAuth2 grant type. Can be one of: `authorization_code`, `refresh_token`, `urn:ietf:params:oauth:grant-type:device_code`.", + "x-example": "<GRANT_TYPE>" + }, + "code": { + "type": "string", + "description": "Authorization code to be exchanged for access and refresh tokens. Required for `authorization_code` grant type.", + "default": "", + "x-example": "<CODE>" + }, + "refresh_token": { + "type": "string", + "description": "Refresh token to be exchanged for a new access and refresh tokens. Required for `refresh_token` grant type.", + "default": "", + "x-example": "<REFRESH_TOKEN>" + }, + "device_code": { + "type": "string", + "description": "Device code obtained from the device authorization endpoint. Required for `urn:ietf:params:oauth:grant-type:device_code` grant type.", + "default": "", + "x-example": "<DEVICE_CODE>" + }, + "client_id": { + "type": "string", + "description": "OAuth2 client ID. Either a registered app ID or an HTTPS client ID metadata document URL.", + "default": "", + "x-example": "<CLIENT_ID>" + }, + "client_secret": { + "type": "string", + "description": "OAuth2 client secret. Required for confidential apps.", + "default": "", + "x-example": "<CLIENT_SECRET>" + }, + "code_verifier": { + "type": "string", + "description": "PKCE code verifier. Required for public apps.", + "default": "", + "x-example": "<CODE_VERIFIER>" + }, + "redirect_uri": { + "type": "string", + "description": "Redirect URI. Required for `authorization_code` grant type.", + "default": "", + "x-example": "https:\/\/example.com", + "format": "url" + }, + "resource": { + "type": "string", + "description": "RFC 8707 resource indicator URI or URI list. Each value must be an absolute URI without a fragment.", + "default": [], + "x-example": null + }, + "audience": { + "type": "string", + "description": "Compatibility alias for a single OAuth2 resource indicator URI.", + "default": "", + "x-example": "<AUDIENCE>" + } + }, + "required": [ + "grant_type" + ] + } + } + } + } } }, - "\/mysql\/{databaseId}\/credentials": { - "patch": { - "summary": "Rotate database credentials.", - "operationId": "mysqlUpdateCredentials", + "\/organization": { + "get": { + "summary": "Get organization", + "operationId": "organizationGet", "tags": [ - "mysql" + "organization" ], - "description": "Rotate the primary connection credentials for a dedicated database. Generates a new password and updates the database atomically. Previous credentials stop working immediately. Returns the database with a refreshed connection string carrying the new password.", + "description": "Get the current organization.", "responses": { "200": { - "description": "DedicatedDatabase", + "description": "Organization", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/dedicatedDatabase" + "$ref": "#\/components\/schemas\/organization" } } } @@ -45390,17 +46961,18 @@ }, "deprecated": false, "x-appwrite": { - "method": "updateCredentials", - "group": "databases", + "method": "get", + "group": null, "cookies": false, "type": "", - "demo": "mysql\/update-credentials.md", + "demo": "organization\/get.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "databases.write", + "scope": "organization.read", "platforms": [ - "console" + "console", + "server" ], "packaging": false, "public": true, @@ -45410,38 +46982,25 @@ }, "security": [ { - "Project": [] - } - ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "x-example": "<DATABASE_ID>" - }, - "in": "path" + "Project": [], + "Key": [] } ] - } - }, - "\/mysql\/{databaseId}\/executions": { - "post": { - "summary": "Execute a SQL statement against a dedicated database.", - "operationId": "mysqlCreateExecution", + }, + "put": { + "summary": "Update organization", + "operationId": "organizationUpdate", "tags": [ - "mysql" + "organization" ], - "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.", + "description": "Update the current organization's name.", "responses": { "200": { - "description": "Execution", + "description": "Organization", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/dedicatedDatabaseExecution" + "$ref": "#\/components\/schemas\/organization" } } } @@ -45449,17 +47008,18 @@ }, "deprecated": false, "x-appwrite": { - "method": "createExecution", - "group": "databases", + "method": "update", + "group": null, "cookies": false, "type": "", - "demo": "mysql\/create-execution.md", + "demo": "organization\/update.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "databases.write", + "scope": "organization.write", "platforms": [ - "console" + "console", + "server" ], "packaging": false, "public": true, @@ -45469,19 +47029,8 @@ }, "security": [ { - "Project": [] - } - ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "x-example": "<DATABASE_ID>" - }, - "in": "path" + "Project": [], + "Key": [] } ], "requestBody": { @@ -45490,50 +47039,76 @@ "schema": { "type": "object", "properties": { - "sql": { + "name": { "type": "string", - "description": "SQL statement to execute. Exactly one statement per request.", - "x-example": "<SQL>" - }, - "bindings": { - "type": "object", - "description": "Optional bound parameters. Pass either a positional list or a name => value map matching the placeholder style used in the SQL.", - "default": {}, - "x-example": "{}", - "x-nullable": true - }, - "timeoutSeconds": { - "type": "integer", - "description": "Per-call execution timeout override. Must be less than or equal to the database's configured sqlApiTimeoutSeconds.", - "x-example": 1, - "format": "int32", - "x-nullable": true + "description": "New organization name. Max length: 128 chars.", + "x-example": "<NAME>" } }, "required": [ - "sql" + "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": { + "method": "delete", + "group": null, + "cookies": false, + "type": "", + "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": [] + } + ] } }, - "\/mysql\/{databaseId}\/failovers": { - "post": { - "summary": "Trigger manual failover.", - "operationId": "mysqlCreateFailover", + "\/organization\/keys": { + "get": { + "summary": "List organization keys", + "operationId": "organizationListKeys", "tags": [ - "mysql" + "organization" ], - "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.", + "description": "Get a list of all API keys from the current organization.", "responses": { - "202": { - "description": "DedicatedDatabase", + "200": { + "description": "API Keys List", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/dedicatedDatabase" + "$ref": "#\/components\/schemas\/keyList" } } } @@ -45541,17 +47116,18 @@ }, "deprecated": false, "x-appwrite": { - "method": "createFailover", - "group": "databases", + "method": "listKeys", + "group": "keys", "cookies": false, "type": "", - "demo": "mysql\/create-failover.md", + "demo": "organization\/list-keys.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "databases.write", + "scope": "organization.keys.read", "platforms": [ - "console" + "console", + "server" ], "packaging": false, "public": true, @@ -45561,19 +47137,81 @@ }, "security": [ { - "Project": [] + "Project": [], + "Key": [] } ], "parameters": [ { - "name": "databaseId", - "description": "Database ID.", - "required": true, + "name": "queries", + "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/queries). Maximum of 100 queries are allowed, each 4096 characters long. You may filter on the following attributes: expire, accessedAt, name, scopes", + "required": false, "schema": { - "type": "string", - "x-example": "<DATABASE_ID>" + "type": "array", + "items": { + "type": "string" + }, + "default": [] }, - "in": "path" + "in": "query" + }, + { + "name": "total", + "description": "When set to false, the total count returned will be 0 and will not be calculated.", + "required": false, + "schema": { + "type": "boolean", + "x-example": false, + "default": true + }, + "in": "query" + } + ] + }, + "post": { + "summary": "Create organization key", + "operationId": "organizationCreateKey", + "tags": [ + "organization" + ], + "description": "Create a new organization API key.", + "responses": { + "201": { + "description": "Key", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/key" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "method": "createKey", + "group": "keys", + "cookies": false, + "type": "", + "demo": "organization\/create-key.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "organization.keys.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] } ], "requestBody": { @@ -45582,34 +47220,94 @@ "schema": { "type": "object", "properties": { - "targetReplicaId": { + "keyId": { "type": "string", - "description": "Target replica ID to promote. If not specified, the healthiest replica is selected.", - "x-example": "<TARGET_REPLICA_ID>", + "description": "Key ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.", + "x-example": "<KEY_ID>", + "x-appwrite": { + "idGenerator": "ID.unique" + } + }, + "name": { + "type": "string", + "description": "Key name. Max length: 128 chars.", + "x-example": "<NAME>" + }, + "scopes": { + "type": "array", + "description": "Key scopes list. Maximum of 200 scopes are allowed.", + "x-example": null, + "items": { + "type": "string", + "enum": [ + "projects.read", + "projects.write", + "devKeys.read", + "devKeys.write", + "organization.keys.read", + "organization.keys.write", + "organization.memberships.read", + "organization.memberships.write", + "organization.read", + "organization.write", + "domains.read", + "domains.write", + "keys.read", + "keys.write" + ], + "x-enum-name": "OrganizationKeyScopes", + "x-enum-keys": [ + "projects.read", + "projects.write", + "devKeys.read", + "devKeys.write", + "organization.keys.read", + "organization.keys.write", + "organization.memberships.read", + "organization.memberships.write", + "organization.read", + "organization.write", + "domains.read", + "domains.write", + "keys.read", + "keys.write" + ] + } + }, + "expire": { + "type": "string", + "description": "Expiration time in [ISO 8601](https:\/\/www.iso.org\/iso-8601-date-and-time-format.html) format. Use null for unlimited expiration.", + "x-example": "2020-10-15T06:38:00.000+00:00", + "format": "datetime", "x-nullable": true } - } + }, + "required": [ + "keyId", + "name", + "scopes" + ] } } } } } }, - "\/mysql\/{databaseId}\/maintenance": { - "patch": { - "summary": "Update database maintenance window.", - "operationId": "mysqlUpdateMaintenance", + "\/organization\/keys\/{keyId}": { + "get": { + "summary": "Get organization key", + "operationId": "organizationGetKey", "tags": [ - "mysql" + "organization" ], - "description": "Update the maintenance window for a dedicated database. Maintenance operations like minor version upgrades will be performed during this window.", + "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": "DedicatedDatabase", + "description": "Key", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/dedicatedDatabase" + "$ref": "#\/components\/schemas\/key" } } } @@ -45617,17 +47315,18 @@ }, "deprecated": false, "x-appwrite": { - "method": "updateMaintenance", - "group": "databases", + "method": "getKey", + "group": "keys", "cookies": false, "type": "", - "demo": "mysql\/update-maintenance.md", + "demo": "organization\/get-key.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "databases.write", + "scope": "organization.keys.read", "platforms": [ - "console" + "console", + "server" ], "packaging": false, "public": true, @@ -45637,64 +47336,37 @@ }, "security": [ { - "Project": [] + "Project": [], + "Key": [] } ], "parameters": [ { - "name": "databaseId", - "description": "Database ID.", + "name": "keyId", + "description": "Key unique ID.", "required": true, "schema": { "type": "string", - "x-example": "<DATABASE_ID>" + "x-example": "<KEY_ID>" }, "in": "path" } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "day": { - "type": "string", - "description": "Day of the week for the maintenance window. Allowed values: sun, mon, tue, wed, thu, fri, sat.", - "x-example": "sun" - }, - "hourUtc": { - "type": "integer", - "description": "Hour in UTC (0-23) for maintenance window start.", - "x-example": 0, - "format": "int32" - } - }, - "required": [ - "day", - "hourUtc" - ] - } - } - } - } - } - }, - "\/mysql\/{databaseId}\/migrations": { - "post": { - "summary": "Migrate database between shared and dedicated.", - "operationId": "mysqlCreateMigration", + ] + }, + "put": { + "summary": "Update organization key", + "operationId": "organizationUpdateKey", "tags": [ - "mysql" + "organization" ], - "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.", + "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": "DedicatedDatabase", + "description": "Key", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/dedicatedDatabase" + "$ref": "#\/components\/schemas\/key" } } } @@ -45702,17 +47374,18 @@ }, "deprecated": false, "x-appwrite": { - "method": "createMigration", - "group": "databases", + "method": "updateKey", + "group": "keys", "cookies": false, "type": "", - "demo": "mysql\/create-migration.md", + "demo": "organization\/update-key.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "databases.write", + "scope": "organization.keys.write", "platforms": [ - "console" + "console", + "server" ], "packaging": false, "public": true, @@ -45722,17 +47395,18 @@ }, "security": [ { - "Project": [] + "Project": [], + "Key": [] } ], "parameters": [ { - "name": "databaseId", - "description": "Database ID.", + "name": "keyId", + "description": "Key unique ID.", "required": true, "schema": { "type": "string", - "x-example": "<DATABASE_ID>" + "x-example": "<KEY_ID>" }, "in": "path" } @@ -45743,60 +47417,95 @@ "schema": { "type": "object", "properties": { - "targetType": { + "name": { "type": "string", - "description": "Target database type to migrate to. Allowed values: shared (serverless, scales to zero when idle), dedicated (always-on with persistent resources).", - "x-example": "shared" + "description": "Key name. Max length: 128 chars.", + "x-example": "<NAME>" }, - "specification": { + "scopes": { + "type": "array", + "description": "Key scopes list. Maximum of 200 scopes are allowed.", + "x-example": null, + "items": { + "type": "string", + "enum": [ + "projects.read", + "projects.write", + "devKeys.read", + "devKeys.write", + "organization.keys.read", + "organization.keys.write", + "organization.memberships.read", + "organization.memberships.write", + "organization.read", + "organization.write", + "domains.read", + "domains.write", + "keys.read", + "keys.write" + ], + "x-enum-name": "OrganizationKeyScopes", + "x-enum-keys": [ + "projects.read", + "projects.write", + "devKeys.read", + "devKeys.write", + "organization.keys.read", + "organization.keys.write", + "organization.memberships.read", + "organization.memberships.write", + "organization.read", + "organization.write", + "domains.read", + "domains.write", + "keys.read", + "keys.write" + ] + } + }, + "expire": { "type": "string", - "description": "Target specification to provision when migrating to dedicated. Ignored for shared. Defaults to the database's current specification.", - "x-example": "<SPECIFICATION>", + "description": "Expiration time in [ISO 8601](https:\/\/www.iso.org\/iso-8601-date-and-time-format.html) format. Use null for unlimited expiration.", + "x-example": "2020-10-15T06:38:00.000+00:00", + "format": "datetime", "x-nullable": true } }, "required": [ - "targetType" + "name", + "scopes" ] } } } } - } - }, - "\/mysql\/{databaseId}\/pitr": { - "get": { - "summary": "Get PITR recovery windows.", - "operationId": "mysqlGetPitr", + }, + "delete": { + "summary": "Delete organization key", + "operationId": "organizationDeleteKey", "tags": [ - "mysql" + "organization" ], - "description": "Get available point-in-time recovery windows for a dedicated database. Returns the earliest and latest recovery points.", + "description": "Delete a key by its unique ID. Once deleted, the key can no longer be used to authenticate API calls.", "responses": { - "200": { - "description": "PITRWindows", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/dedicatedDatabasePITRWindows" - } - } - } + "204": { + "description": "No content" } }, "deprecated": false, "x-appwrite": { - "method": "getPitr", - "group": "databases", + "method": "deleteKey", + "group": "keys", "cookies": false, "type": "", - "demo": "mysql\/get-pitr.md", + "demo": "organization\/delete-key.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "databases.read", + "scope": "organization.keys.write", "platforms": [ - "console" + "console", + "server" ], "packaging": false, "public": true, @@ -45806,38 +47515,39 @@ }, "security": [ { - "Project": [] + "Project": [], + "Key": [] } ], "parameters": [ { - "name": "databaseId", - "description": "Database ID.", + "name": "keyId", + "description": "Key unique ID.", "required": true, "schema": { "type": "string", - "x-example": "<DATABASE_ID>" + "x-example": "<KEY_ID>" }, "in": "path" } ] } }, - "\/mysql\/{databaseId}\/pooler": { + "\/organization\/memberships": { "get": { - "summary": "Get connection pooler configuration.", - "operationId": "mysqlGetPooler", + "summary": "List organization memberships", + "operationId": "organizationListMemberships", "tags": [ - "mysql" + "organization" ], - "description": "Get the connection pooler configuration for a dedicated database. Returns pooler mode, max connections, and pool size settings.", + "description": "Get a list of all memberships from the current organization.", "responses": { "200": { - "description": "PoolerConfig", + "description": "Memberships List", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/dedicatedDatabasePooler" + "$ref": "#\/components\/schemas\/membershipList" } } } @@ -45845,17 +47555,18 @@ }, "deprecated": false, "x-appwrite": { - "method": "getPooler", - "group": "databases", + "method": "listMemberships", + "group": "memberships", "cookies": false, "type": "", - "demo": "mysql\/get-pooler.md", + "demo": "organization\/list-memberships.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "databases.read", + "scope": "organization.memberships.read", "platforms": [ - "console" + "console", + "server" ], "packaging": false, "public": true, @@ -45865,36 +47576,62 @@ }, "security": [ { - "Project": [] + "Project": [], + "Key": [] } ], "parameters": [ { - "name": "databaseId", - "description": "Database ID.", - "required": true, + "name": "queries", + "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/queries). Maximum of 100 queries are allowed, each 4096 characters long. You may filter on the following attributes: userId, teamId, invited, joined, confirm, roles", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string" + }, + "default": [] + }, + "in": "query" + }, + { + "name": "search", + "description": "Search term to filter your list results. Max length: 256 chars.", + "required": false, "schema": { "type": "string", - "x-example": "<DATABASE_ID>" + "x-example": "<SEARCH>", + "default": "" }, - "in": "path" + "in": "query" + }, + { + "name": "total", + "description": "When set to false, the total count returned will be 0 and will not be calculated.", + "required": false, + "schema": { + "type": "boolean", + "x-example": false, + "default": true + }, + "in": "query" } ] }, - "patch": { - "summary": "Update connection pooler configuration.", - "operationId": "mysqlUpdatePooler", + "post": { + "summary": "Create organization membership", + "operationId": "organizationCreateMembership", "tags": [ - "mysql" + "organization" ], - "description": "Update the connection pooler configuration for a dedicated database. Configure pool mode, max connections, and pool sizes.", + "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": { - "200": { - "description": "PoolerConfig", + "201": { + "description": "Membership", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/dedicatedDatabasePooler" + "$ref": "#\/components\/schemas\/membership" } } } @@ -45902,17 +47639,18 @@ }, "deprecated": false, "x-appwrite": { - "method": "updatePooler", - "group": "databases", + "method": "createMembership", + "group": "memberships", "cookies": false, "type": "", - "demo": "mysql\/update-pooler.md", - "rate-limit": 0, + "demo": "organization\/create-membership.md", + "rate-limit": 10, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "databases.write", + "scope": "organization.memberships.write", "platforms": [ - "console" + "console", + "server" ], "packaging": false, "public": true, @@ -45922,19 +47660,8 @@ }, "security": [ { - "Project": [] - } - ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "x-example": "<DATABASE_ID>" - }, - "in": "path" + "Project": [], + "Key": [] } ], "requestBody": { @@ -45943,137 +47670,72 @@ "schema": { "type": "object", "properties": { - "mode": { + "email": { "type": "string", - "description": "Connection pool mode. Allowed values: transaction, session. Transaction mode returns connections to the pool after each transaction; session mode holds connections for the entire session lifetime.", - "x-example": "transaction", - "x-nullable": true - }, - "maxConnections": { - "type": "integer", - "description": "Maximum pooled connections.", - "x-example": 10, - "format": "int32", - "x-nullable": true - }, - "defaultPoolSize": { - "type": "integer", - "description": "Default pool size per user.", - "x-example": 1, - "format": "int32", - "x-nullable": true - }, - "readWriteSplitting": { - "type": "boolean", - "description": "Route SELECTs to HA replicas, writes and locked reads to the primary. Defaults to true when HA is enabled.", - "x-example": false, - "x-nullable": true + "description": "Email of the new organization member.", + "default": "", + "x-example": "email@example.com", + "format": "email" }, - "poolerCpuRequest": { + "userId": { "type": "string", - "description": "Pooler sidecar CPU request override (Kubernetes quantity, e.g. \"250m\" or \"1\"). Leave null for the proportional default (5% of DB CPU, floor 100m).", - "x-example": "<POOLER_CPU_REQUEST>", - "x-nullable": true + "description": "ID of the user to be added to the organization.", + "default": "", + "x-example": "<USER_ID>" }, - "poolerCpuLimit": { + "phone": { "type": "string", - "description": "Pooler sidecar CPU limit override (Kubernetes quantity, e.g. \"500m\" or \"1\"). Leave null for the proportional default (10% of DB CPU, floor 200m). Changing this field rolls the database pod.", - "x-example": "<POOLER_CPU_LIMIT>", - "x-nullable": true + "description": "Phone number. Format this number with a leading '+' and a country code, e.g., +16175551212.", + "default": "", + "x-example": "+12065550100", + "format": "phone" }, - "poolerMemoryRequest": { - "type": "string", - "description": "Pooler sidecar memory request override (Kubernetes quantity, e.g. \"128Mi\" or \"1Gi\"). Leave null for the proportional default (7.5% of DB memory, floor 64Mi).", - "x-example": "<POOLER_MEMORY_REQUEST>", - "x-nullable": true + "roles": { + "type": "array", + "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.", + "x-example": null, + "items": { + "type": "string" + } }, - "poolerMemoryLimit": { + "url": { "type": "string", - "description": "Pooler sidecar memory limit override (Kubernetes quantity, e.g. \"256Mi\" or \"1Gi\"). Leave null for the proportional default (15% of DB memory, floor 128Mi). Changing this field rolls the database pod.", - "x-example": "<POOLER_MEMORY_LIMIT>", - "x-nullable": true + "description": "URL to redirect the user back to your app from the invitation email. This parameter is not required when an API key is supplied.", + "default": "", + "x-example": "https:\/\/example.com", + "format": "url" + }, + "name": { + "type": "string", + "description": "Name of the new organization member. Max length: 128 chars.", + "default": "", + "x-example": "<NAME>" } - } + }, + "required": [ + "roles" + ] } } } } } }, - "\/mysql\/{databaseId}\/replicas": { - "get": { - "summary": "Get replica status.", - "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": { - "method": "getReplicas", - "group": "databases", - "cookies": false, - "type": "", - "demo": "mysql\/get-replicas.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "databases.read", - "platforms": [ - "console" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [] - } - ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "x-example": "<DATABASE_ID>" - }, - "in": "path" - } - ] - } - }, - "\/mysql\/{databaseId}\/restorations": { + "\/organization\/memberships\/{membershipId}": { "get": { - "summary": "List database restorations.", - "operationId": "mysqlListRestorations", + "summary": "Get organization membership", + "operationId": "organizationGetMembership", "tags": [ - "mysql" + "organization" ], - "description": "List all restorations for a dedicated database. Results can be filtered by status and type.", + "description": "Get a membership from the current organization by its unique ID.", "responses": { "200": { - "description": "Dedicated database restorations list", + "description": "Membership", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/dedicatedDatabaseRestorationList" + "$ref": "#\/components\/schemas\/membership" } } } @@ -46081,17 +47743,18 @@ }, "deprecated": false, "x-appwrite": { - "method": "listRestorations", - "group": "databases", + "method": "getMembership", + "group": "memberships", "cookies": false, "type": "", - "demo": "mysql\/list-restorations.md", + "demo": "organization\/get-membership.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "databases.read", + "scope": "organization.memberships.read", "platforms": [ - "console" + "console", + "server" ], "packaging": false, "public": true, @@ -46101,80 +47764,37 @@ }, "security": [ { - "Project": [] + "Project": [], + "Key": [] } ], "parameters": [ { - "name": "databaseId", - "description": "Database ID.", + "name": "membershipId", + "description": "Membership ID.", "required": true, "schema": { "type": "string", - "x-example": "<DATABASE_ID>" + "x-example": "<MEMBERSHIP_ID>" }, "in": "path" - }, - { - "name": "status", - "description": "Filter by restoration status.", - "required": false, - "schema": { - "type": "string", - "x-example": "pending" - }, - "in": "query" - }, - { - "name": "type", - "description": "Filter by restoration type.", - "required": false, - "schema": { - "type": "string", - "x-example": "backup" - }, - "in": "query" - }, - { - "name": "limit", - "description": "Maximum number of restorations to return.", - "required": false, - "schema": { - "type": "integer", - "format": "int32", - "x-example": 1, - "default": 25 - }, - "in": "query" - }, - { - "name": "offset", - "description": "Number of restorations to skip.", - "required": false, - "schema": { - "type": "integer", - "format": "int32", - "x-example": 0, - "default": 0 - }, - "in": "query" } ] }, - "post": { - "summary": "Create a database restoration.", - "operationId": "mysqlCreateRestoration", + "patch": { + "summary": "Update organization membership", + "operationId": "organizationUpdateMembership", "tags": [ - "mysql" + "organization" ], - "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.", + "description": "Modify the roles of a member in the current organization.", "responses": { - "202": { - "description": "Restoration", + "200": { + "description": "Membership", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/dedicatedDatabaseRestoration" + "$ref": "#\/components\/schemas\/membership" } } } @@ -46182,17 +47802,18 @@ }, "deprecated": false, "x-appwrite": { - "method": "createRestoration", - "group": "databases", + "method": "updateMembership", + "group": "memberships", "cookies": false, "type": "", - "demo": "mysql\/create-restoration.md", + "demo": "organization\/update-membership.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "databases.write", + "scope": "organization.memberships.write", "platforms": [ - "console" + "console", + "server" ], "packaging": false, "public": true, @@ -46202,17 +47823,18 @@ }, "security": [ { - "Project": [] + "Project": [], + "Key": [] } ], "parameters": [ { - "name": "databaseId", - "description": "Database ID.", + "name": "membershipId", + "description": "Membership ID.", "required": true, "schema": { "type": "string", - "x-example": "<DATABASE_ID>" + "x-example": "<MEMBERSHIP_ID>" }, "in": "path" } @@ -46223,65 +47845,49 @@ "schema": { "type": "object", "properties": { - "type": { - "type": "string", - "description": "Restoration type. Allowed values: backup, pitr. Use \"backup\" to restore from a specific backup, or \"pitr\" for point-in-time recovery.", - "default": "backup", - "x-example": "backup" - }, - "backupId": { - "type": "string", - "description": "Backup ID to restore from (required for backup type).", - "x-example": "<BACKUP_ID>", - "x-nullable": true - }, - "targetTime": { - "type": "string", - "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.", - "x-example": "2020-10-15T06:38:00.000+00:00", - "format": "datetime", - "x-nullable": true + "roles": { + "type": "array", + "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.", + "x-example": null, + "items": { + "type": "string" + } } - } + }, + "required": [ + "roles" + ] } } } } - } - }, - "\/mysql\/{databaseId}\/restorations\/{restorationId}": { - "get": { - "summary": "Get a database restoration.", - "operationId": "mysqlGetRestoration", + }, + "delete": { + "summary": "Delete organization membership", + "operationId": "organizationDeleteMembership", "tags": [ - "mysql" + "organization" ], - "description": "Get details of a specific database restoration including its status, type, and timestamps.", + "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": { - "200": { - "description": "Restoration", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/dedicatedDatabaseRestoration" - } - } - } + "204": { + "description": "No content" } }, "deprecated": false, "x-appwrite": { - "method": "getRestoration", - "group": "databases", + "method": "deleteMembership", + "group": "memberships", "cookies": false, "type": "", - "demo": "mysql\/get-restoration.md", + "demo": "organization\/delete-membership.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "databases.read", + "scope": "organization.memberships.write", "platforms": [ - "console" + "console", + "server" ], "packaging": false, "public": true, @@ -46291,48 +47897,39 @@ }, "security": [ { - "Project": [] + "Project": [], + "Key": [] } ], "parameters": [ { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "x-example": "<DATABASE_ID>" - }, - "in": "path" - }, - { - "name": "restorationId", - "description": "Restoration ID.", + "name": "membershipId", + "description": "Membership ID.", "required": true, "schema": { "type": "string", - "x-example": "<RESTORATION_ID>" + "x-example": "<MEMBERSHIP_ID>" }, "in": "path" } ] } }, - "\/mysql\/{databaseId}\/status": { + "\/organization\/projects": { "get": { - "summary": "Get database status.", - "operationId": "mysqlGetStatus", + "summary": "List organization projects", + "operationId": "organizationListProjects", "tags": [ - "mysql" + "organization" ], - "description": "Get real-time health and status information for a dedicated database. Returns health status, readiness, uptime, connection info, replica status, and volume information.", + "description": "Get a list of all projects. You can use the query params to filter your results.", "responses": { "200": { - "description": "Status", + "description": "Projects List", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/databaseStatus" + "$ref": "#\/components\/schemas\/projectList" } } } @@ -46340,17 +47937,18 @@ }, "deprecated": false, "x-appwrite": { - "method": "getStatus", - "group": "databases", + "method": "listProjects", + "group": "projects", "cookies": false, "type": "", - "demo": "mysql\/get-status.md", + "demo": "organization\/list-projects.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "databases.read", + "scope": "projects.read", "platforms": [ - "console" + "console", + "server" ], "packaging": false, "public": true, @@ -46360,38 +47958,62 @@ }, "security": [ { - "Project": [] + "Project": [], + "Key": [] } ], "parameters": [ { - "name": "databaseId", - "description": "Database ID.", - "required": true, + "name": "queries", + "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/queries). Maximum of 100 queries are allowed, each 4096 characters long. You may filter on the following attributes: 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", - "x-example": "<DATABASE_ID>" + "x-example": "<SEARCH>", + "default": "" }, - "in": "path" + "in": "query" + }, + { + "name": "total", + "description": "When set to false, the total count returned will be 0 and will not be calculated.", + "required": false, + "schema": { + "type": "boolean", + "x-example": false, + "default": true + }, + "in": "query" } ] - } - }, - "\/mysql\/{databaseId}\/upgrades": { + }, "post": { - "summary": "Upgrade database version.", - "operationId": "mysqlCreateUpgrade", + "summary": "Create organization project", + "operationId": "organizationCreateProject", "tags": [ - "mysql" + "organization" ], - "description": "Upgrade a dedicated database to a new engine version. Uses blue-green deployment for zero-downtime cutover.", + "description": "Create a new project.", "responses": { - "200": { - "description": "DedicatedDatabase", + "201": { + "description": "Project", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/dedicatedDatabase" + "$ref": "#\/components\/schemas\/project" } } } @@ -46399,17 +48021,18 @@ }, "deprecated": false, "x-appwrite": { - "method": "createUpgrade", - "group": "databases", + "method": "createProject", + "group": "projects", "cookies": false, "type": "", - "demo": "mysql\/create-upgrade.md", + "demo": "organization\/create-project.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "databases.write", + "scope": "projects.write", "platforms": [ - "console" + "console", + "server" ], "packaging": false, "public": true, @@ -46419,19 +48042,8 @@ }, "security": [ { - "Project": [] - } - ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "x-example": "<DATABASE_ID>" - }, - "in": "path" + "Project": [], + "Key": [] } ], "requestBody": { @@ -46440,14 +48052,42 @@ "schema": { "type": "object", "properties": { - "targetVersion": { + "projectId": { "type": "string", - "description": "Target engine version to upgrade to.", - "x-example": "<TARGET_VERSION>" + "description": "Unique Id. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, and hyphen. Can't start with a special char. Max length is 36 chars.", + "x-example": null + }, + "name": { + "type": "string", + "description": "Project name. Max length: 128 chars.", + "x-example": "<NAME>" + }, + "region": { + "type": "string", + "description": "Project Region.", + "x-example": "fra", + "enum": [ + "fra", + "nyc", + "syd", + "sfo", + "sgp", + "tor" + ], + "x-enum-name": "Region", + "x-enum-keys": [ + "fra", + "nyc", + "syd", + "sfo", + "sgp", + "tor" + ] } }, "required": [ - "targetVersion" + "projectId", + "name" ] } } @@ -46455,21 +48095,21 @@ } } }, - "\/notifications": { + "\/organization\/projects\/{projectId}": { "get": { - "summary": "List notifications", - "operationId": "notificationsList", + "summary": "Get organization project", + "operationId": "organizationGetProject", "tags": [ - "notifications" + "organization" ], - "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", + "description": "Get a project.", "responses": { "200": { - "description": "Notifications List", + "description": "Project", "content": { - "application\/json": { + "": { "schema": { - "$ref": "#\/components\/schemas\/notificationList" + "$ref": "#\/components\/schemas\/project" } } } @@ -46477,62 +48117,58 @@ }, "deprecated": false, "x-appwrite": { - "method": "list", - "group": null, + "method": "getProject", + "group": "projects", "cookies": false, "type": "", - "demo": "notifications\/list.md", + "demo": "organization\/get-project.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "account", + "scope": "projects.read", "platforms": [ - "console" + "console", + "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/notifications\/list-notifications.md", "auth": { "Project": [] } }, "security": [ { - "Project": [] + "Project": [], + "Key": [] } ], "parameters": [ { - "name": "queries", - "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/queries). Maximum of 100 queries are allowed, each 4096 characters long. You may filter on the following attributes: read, type, channel, messageId, projectId, resourceType, resourceId, parentResourceType, parentResourceId, firstSeen, lastSeen", - "required": false, + "name": "projectId", + "description": "Project unique ID.", + "required": true, "schema": { - "type": "array", - "items": { - "type": "string" - }, - "default": [] + "type": "string", + "x-example": "<PROJECT_ID>" }, - "in": "query" + "in": "path" } ] - } - }, - "\/notifications\/{notificationId}": { + }, "patch": { - "summary": "Update notification", - "operationId": "notificationsUpdate", + "summary": "Update organization project", + "operationId": "organizationUpdateProject", "tags": [ - "notifications" + "organization" ], - "description": "Update a notification by its unique ID. Use the `read` parameter to mark the notification as read or unread.\n", + "description": "Update a project by its unique ID.", "responses": { "200": { - "description": "Notification", + "description": "Project", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/notification" + "$ref": "#\/components\/schemas\/project" } } } @@ -46540,38 +48176,39 @@ }, "deprecated": false, "x-appwrite": { - "method": "update", - "group": null, + "method": "updateProject", + "group": "projects", "cookies": false, "type": "", - "demo": "notifications\/update.md", + "demo": "organization\/update-project.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "account", + "scope": "projects.write", "platforms": [ - "console" + "console", + "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/notifications\/update-notification.md", "auth": { "Project": [] } }, "security": [ { - "Project": [] + "Project": [], + "Key": [] } ], "parameters": [ { - "name": "notificationId", - "description": "Notification ID.", + "name": "projectId", + "description": "Project unique ID.", "required": true, "schema": { "type": "string", - "x-example": "<NOTIFICATION_ID>" + "x-example": "<PROJECT_ID>" }, "in": "path" } @@ -46582,74 +48219,63 @@ "schema": { "type": "object", "properties": { - "read": { - "type": "boolean", - "description": "Notification read status.", - "x-example": false + "name": { + "type": "string", + "description": "Project name. Max length: 128 chars.", + "x-example": "<NAME>" } }, "required": [ - "read" + "name" ] } } } } - } - }, - "\/oauth2\/{project_id}\/approve": { - "post": { - "summary": "Approve OAuth2", - "operationId": "oauth2Approve", + }, + "delete": { + "summary": "Delete organization project", + "operationId": "organizationDeleteProject", "tags": [ - "oauth2" + "organization" ], - "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.", + "description": "Delete a project by its unique ID.", "responses": { - "200": { - "description": "OAuth2 Approve", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/oauth2Approve" - } - } - } + "204": { + "description": "No content" } }, "deprecated": false, "x-appwrite": { - "method": "approve", - "group": null, + "method": "deleteProject", + "group": "projects", "cookies": false, "type": "", - "demo": "oauth2\/approve.md", - "rate-limit": 10, - "rate-time": 60, - "rate-key": "ip:{ip},userId:{userId}", - "scope": "oauth2.write", + "demo": "organization\/delete-project.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "projects.write", "platforms": [ "console", - "client", "server" ], "packaging": false, "public": true, "auth": { - "ProjectPath": [] + "Project": [] } }, "security": [ { - "ProjectPath": [], - "Session": [], - "JWT": [] + "Project": [], + "Key": [] } ], "parameters": [ { - "name": "project_id", - "description": "Project ID in which OAuth2 client exists.", + "name": "projectId", + "description": "Project unique ID.", "required": true, "schema": { "type": "string", @@ -46657,55 +48283,24 @@ }, "in": "path" } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "grant_id": { - "type": "string", - "description": "Grant ID made during authorization, provided to consent screen in URL search params.", - "x-example": "<GRANT_ID>" - }, - "authorization_details": { - "type": "string", - "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.", - "default": "", - "x-example": "<AUTHORIZATION_DETAILS>" - }, - "scope": { - "type": "string", - "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.", - "default": "", - "x-example": "<SCOPE>" - } - }, - "required": [ - "grant_id" - ] - } - } - } - } + ] } }, - "\/oauth2\/{project_id}\/authorize": { + "\/organizations": { "get": { - "summary": "OAuth2 Authorize", - "operationId": "oauth2Authorize", + "summary": "List Orgnizations", + "operationId": "organizationsList", "tags": [ - "oauth2" + "organizations" ], - "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.", + "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": "OAuth2 Authorize", + "description": "Organizations list", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/oauth2Authorize" + "$ref": "#\/components\/schemas\/organizationList" } } } @@ -46713,205 +48308,78 @@ }, "deprecated": false, "x-appwrite": { - "method": "authorize", + "method": "list", "group": null, "cookies": false, "type": "", - "demo": "oauth2\/authorize.md", - "rate-limit": 60, - "rate-time": 60, + "demo": "organizations\/list.md", + "rate-limit": 0, + "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "public", + "scope": "teams.read", "platforms": [ - "console", - "client", - "server" + "console" ], "packaging": false, "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/teams\/list-teams.md", "auth": { - "ProjectPath": [] + "Project": [] } }, "security": [ { - "ProjectPath": [], - "Session": [], - "JWT": [] + "Project": [] } ], "parameters": [ { - "name": "project_id", - "description": "Project ID in which OAuth2 client exists.", - "required": true, - "schema": { - "type": "string", - "x-example": "<PROJECT_ID>" - }, - "in": "path" - }, - { - "name": "client_id", - "description": "OAuth2 client ID.", - "required": false, - "schema": { - "type": "string", - "x-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", - "x-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", - "x-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", - "x-example": "<SCOPE>", - "default": "" - }, - "in": "query" - }, - { - "name": "state", - "description": "OAuth2 state. You receive this back in the redirect URI.", - "required": false, - "schema": { - "type": "string", - "x-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", - "x-example": "<NONCE>", - "default": "" - }, - "in": "query" - }, - { - "name": "code_challenge", - "description": "PKCE code challenge. Required when OAuth2 app is public.", - "required": false, - "schema": { - "type": "string", - "x-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", - "x-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", - "x-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", - "x-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", - "x-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.", + "name": "queries", + "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/queries). Maximum of 100 queries are allowed, each 4096 characters long. You may filter on the following attributes: name, total, billingPlan, paymentMethodId, backupPaymentMethodId, platform", "required": false, "schema": { - "type": "string", + "type": "array", + "items": { + "type": "string" + }, "default": [] }, "in": "query" }, { - "name": "request_uri", - "description": "OAuth2 authorization request handle returned by the pushed authorization request endpoint.", + "name": "search", + "description": "Search term to filter your list results. Max length: 256 chars.", "required": false, "schema": { "type": "string", - "x-example": "<REQUEST_URI>", + "x-example": "<SEARCH>", "default": "" }, "in": "query" } ] - } - }, - "\/oauth2\/{project_id}\/device_authorization": { + }, "post": { - "summary": "OAuth2 Device Authorization", - "operationId": "oauth2CreateDeviceAuthorization", + "summary": "Create Organization", + "operationId": "organizationsCreate", "tags": [ - "oauth2" + "organizations" ], - "description": "Start the OAuth2 Device Authorization Grant. Returns the device code, user code, verification URL, expiration, and polling interval.", + "description": "Create a new organization.\n", "responses": { - "200": { - "description": "OAuth2 Device Authorization", + "201": { + "description": "Organization, or PaymentAuthentication", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/oauth2DeviceAuthorization" + "oneOf": [ + { + "$ref": "#\/components\/schemas\/organization" + }, + { + "$ref": "#\/components\/schemas\/paymentAuthentication" + } + ] } } } @@ -46919,44 +48387,28 @@ }, "deprecated": false, "x-appwrite": { - "method": "createDeviceAuthorization", + "method": "create", "group": null, "cookies": false, "type": "", - "demo": "oauth2\/create-device-authorization.md", - "rate-limit": 60, - "rate-time": 60, + "demo": "organizations\/create.md", + "rate-limit": 10, + "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "public", + "scope": "teams.write", "platforms": [ - "console", - "client", - "server" + "console" ], "packaging": false, "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/teams\/create-team.md", "auth": { - "ProjectPath": [] + "Project": [] } }, "security": [ { - "ProjectPath": [], - "Session": [], - "JWT": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "project_id", - "description": "Project ID in which OAuth2 client exists.", - "required": true, - "schema": { - "type": "string", - "x-example": "<PROJECT_ID>" - }, - "in": "path" + "Project": [] } ], "requestBody": { @@ -46965,52 +48417,107 @@ "schema": { "type": "object", "properties": { - "client_id": { + "organizationId": { "type": "string", - "description": "OAuth2 client ID.", - "default": "", - "x-example": "<CLIENT_ID>" + "description": "Organization ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.", + "x-example": "<ORGANIZATION_ID>", + "x-appwrite": { + "idGenerator": "ID.unique" + } }, - "scope": { + "name": { "type": "string", - "description": "Space-separated OAuth2 scopes. Can include project scopes, and built-in scopes: `openid`, `email`, `profile`.", - "default": "", - "x-example": "<SCOPE>" + "description": "Organization name. Max length: 128 chars.", + "x-example": "<NAME>" }, - "authorization_details": { + "billingPlan": { "type": "string", - "description": "Rich authorization request. JSON array of objects, each with a `type` and project-defined fields", - "default": "", - "x-example": "<AUTHORIZATION_DETAILS>" + "description": "Organization billing plan chosen", + "x-example": "tier-0" }, - "resource": { + "paymentMethodId": { "type": "string", - "description": "RFC 8707 resource indicator URI or URI list. Each value must be an absolute URI without a fragment.", + "description": "Payment method ID. Required for pro plans when trial is not available and user doesn't have default payment method set.", + "x-example": "<PAYMENT_METHOD_ID>", + "x-nullable": true + }, + "billingAddressId": { + "type": "string", + "description": "Unique ID of billing address", + "default": "", + "x-example": "<BILLING_ADDRESS_ID>", + "x-nullable": true + }, + "invites": { + "type": "array", + "description": "Additional member invites", "default": [], - "x-example": null + "x-example": null, + "items": { + "type": "string" + } + }, + "couponId": { + "type": "string", + "description": "Coupon id", + "x-example": "<COUPON_ID>", + "x-nullable": true + }, + "taxId": { + "type": "string", + "description": "Tax Id associated to billing.", + "x-example": "<TAX_ID>", + "x-nullable": true + }, + "budget": { + "type": "integer", + "description": "Budget limit for additional usage set for the organization", + "x-example": 0, + "format": "int32", + "x-nullable": true + }, + "platform": { + "type": "string", + "description": "Platform type", + "default": "appwrite", + "x-example": "appwrite", + "enum": [ + "appwrite", + "imagine" + ], + "x-enum-name": "Platform", + "x-enum-keys": [ + "appwrite", + "imagine" + ] } - } + }, + "required": [ + "organizationId", + "name", + "billingPlan" + ] } } } } } }, - "\/oauth2\/{project_id}\/grants": { - "post": { - "summary": "Create OAuth2 Grant", - "operationId": "oauth2CreateGrant", + "\/organizations\/estimations\/create-organization": { + "patch": { + "summary": "Estimate create Organization", + "operationId": "organizationsEstimationCreateOrganization", "tags": [ - "oauth2" + "organizations" ], - "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.", + "description": "Get estimation for creating an organization.", "responses": { - "201": { - "description": "OAuth2 Grant", + "200": { + "description": "Estimation", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/oauth2Grant" + "$ref": "#\/components\/schemas\/estimation" } } } @@ -47018,43 +48525,28 @@ }, "deprecated": false, "x-appwrite": { - "method": "createGrant", + "method": "estimationCreateOrganization", "group": null, "cookies": false, "type": "", - "demo": "oauth2\/create-grant.md", - "rate-limit": 10, - "rate-time": 60, - "rate-key": "ip:{ip},userId:{userId}", - "scope": "oauth2.write", + "demo": "organizations\/estimation-create-organization.md", + "rate-limit": 120, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "teams.write", "platforms": [ - "console", - "client", - "server" + "console" ], "packaging": false, "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/organizations\/estimation-create-organization.md", "auth": { - "ProjectPath": [] + "Project": [] } }, "security": [ { - "ProjectPath": [], - "Session": [], - "JWT": [] - } - ], - "parameters": [ - { - "name": "project_id", - "description": "Project ID in which OAuth2 client exists.", - "required": true, - "schema": { - "type": "string", - "x-example": "<PROJECT_ID>" - }, - "in": "path" + "Project": [] } ], "requestBody": { @@ -47063,14 +48555,50 @@ "schema": { "type": "object", "properties": { - "user_code": { + "billingPlan": { "type": "string", - "description": "User code displayed on the device.", - "x-example": "<USER_CODE>" + "description": "Organization billing plan chosen", + "x-example": "tier-0" + }, + "paymentMethodId": { + "type": "string", + "description": "Payment method ID. Required for pro plans when trial is not available and user doesn't have default payment method set.", + "x-example": "<PAYMENT_METHOD_ID>", + "x-nullable": true + }, + "invites": { + "type": "array", + "description": "Additional member invites", + "default": [], + "x-example": null, + "items": { + "type": "string" + } + }, + "couponId": { + "type": "string", + "description": "Coupon id", + "x-example": "<COUPON_ID>", + "x-nullable": true + }, + "platform": { + "type": "string", + "description": "Platform type", + "default": "appwrite", + "x-example": "appwrite", + "enum": [ + "appwrite", + "imagine" + ], + "x-enum-name": "Platform", + "x-enum-keys": [ + "appwrite", + "imagine" + ] } }, "required": [ - "user_code" + "billingPlan" ] } } @@ -47078,219 +48606,137 @@ } } }, - "\/oauth2\/{project_id}\/grants\/{grant_id}": { - "get": { - "summary": "Get OAuth2 Grant", - "operationId": "oauth2GetGrant", - "tags": [ - "oauth2" + "\/organizations\/{organizationId}": { + "delete": { + "summary": "Delete team", + "operationId": "organizationsDelete", + "tags": [ + "organizations" ], - "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.", + "description": "Delete an organization.", "responses": { - "200": { - "description": "OAuth2 Grant", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/oauth2Grant" - } - } - } + "204": { + "description": "No content" } }, "deprecated": false, "x-appwrite": { - "method": "getGrant", + "method": "delete", "group": null, "cookies": false, "type": "", - "demo": "oauth2\/get-grant.md", - "rate-limit": 60, - "rate-time": 60, - "rate-key": "ip:{ip},userId:{userId}", - "scope": "oauth2.read", + "demo": "organizations\/delete.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "organizations.write", "platforms": [ - "console", - "client", - "server" + "console" ], "packaging": false, "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/teams\/delete-team.md", + "produces": [ + "application\/json" + ], "auth": { - "ProjectPath": [] + "Project": [] } }, "security": [ { - "ProjectPath": [], - "Session": [], - "JWT": [], - "Key": [] + "Project": [] } ], "parameters": [ { - "name": "project_id", - "description": "Project ID in which OAuth2 client that created grant during authorization exists.", - "required": true, - "schema": { - "type": "string", - "x-example": "<PROJECT_ID>" - }, - "in": "path" - }, - { - "name": "grant_id", - "description": "Grant ID made during authorization, provided to consent screen in URL search params.", + "name": "organizationId", + "description": "Team ID.", "required": true, "schema": { "type": "string", - "x-example": "<GRANT_ID>" + "x-example": "<ORGANIZATION_ID>" }, "in": "path" } ] } }, - "\/oauth2\/{project_id}\/logout": { + "\/organizations\/{organizationId}\/addons": { "get": { - "summary": "OAuth2 Logout", - "operationId": "oauth2Logout", + "summary": "List addons", + "operationId": "organizationsListAddons", "tags": [ - "oauth2" + "organizations" ], - "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.", + "description": "List all billing addons for an organization.\n", "responses": { - "204": { - "description": "No content" + "200": { + "description": "Addons list", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/addonList" + } + } + } } }, "deprecated": false, "x-appwrite": { - "method": "logout", + "method": "listAddons", "group": null, "cookies": false, "type": "", - "demo": "oauth2\/logout.md", - "rate-limit": 10, - "rate-time": 60, + "demo": "organizations\/list-addons.md", + "rate-limit": 0, + "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "public", + "scope": "billing.read", "platforms": [ - "console", - "client" + "console" ], "packaging": false, "public": true, - "produces": [ - "application\/json" - ], + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/organizations\/list-addons.md", "auth": { - "ProjectPath": [] + "Project": [] } }, "security": [ { - "ProjectPath": [], - "Session": [] + "Project": [] } ], "parameters": [ { - "name": "project_id", - "description": "Project ID in which OAuth2 client exists.", + "name": "organizationId", + "description": "Organization ID", "required": true, "schema": { "type": "string", - "x-example": "<PROJECT_ID>" + "x-example": "<ORGANIZATION_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", - "x-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", - "x-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", - "x-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", - "x-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", - "x-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", - "x-example": "<UI_LOCALES>", - "default": "" - }, - "in": "query" } ] } }, - "\/oauth2\/{project_id}\/organizations": { - "get": { - "summary": "OAuth2 List Accessible Organizations", - "operationId": "oauth2ListOrganizations", + "\/organizations\/{organizationId}\/addons\/baa": { + "post": { + "summary": "Create BAA addon", + "operationId": "organizationsCreateBaaAddon", "tags": [ - "oauth2" + "organizations" ], - "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.", + "description": "Create the BAA billing addon for an organization.\n", "responses": { - "200": { - "description": "OAuth2 accessible organizations list", + "201": { + "description": "Addon", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/oauth2OrganizationList" + "$ref": "#\/components\/schemas\/addon" } } } @@ -47298,98 +48744,59 @@ }, "deprecated": false, "x-appwrite": { - "method": "listOrganizations", + "method": "createBaaAddon", "group": null, "cookies": false, "type": "", - "demo": "oauth2\/list-organizations.md", - "rate-limit": 120, - "rate-time": 60, + "demo": "organizations\/create-baa-addon.md", + "rate-limit": 10, + "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "oauth2.organizations.read", + "scope": "billing.write", "platforms": [ - "console", - "client", - "server" + "console" ], "packaging": false, "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/organizations\/create-baa-addon.md", "auth": { - "ProjectPath": [] + "Project": [] } }, "security": [ { - "ProjectPath": [], - "Session": [], - "JWT": [], - "Key": [] + "Project": [] } ], "parameters": [ { - "name": "project_id", - "description": "Project ID of the console project the OAuth2 access token was issued for.", + "name": "organizationId", + "description": "Organization ID", "required": true, "schema": { "type": "string", - "x-example": "<PROJECT_ID>" + "x-example": "<ORGANIZATION_ID>" }, "in": "path" - }, - { - "name": "limit", - "description": "Maximum number of organizations to return. Between 1 and 5000.", - "required": false, - "schema": { - "type": "integer", - "format": "int32", - "x-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", - "x-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", - "x-example": "<SEARCH>", - "default": "" - }, - "in": "query" } ] } }, - "\/oauth2\/{project_id}\/par": { + "\/organizations\/{organizationId}\/addons\/premium-geo-db": { "post": { - "summary": "OAuth2 PAR", - "operationId": "oauth2CreatePAR", + "summary": "Create Premium Geo DB addon", + "operationId": "organizationsCreatePremiumGeoDBAddon", "tags": [ - "oauth2" + "organizations" ], - "description": "Store an OAuth2 authorization request server-side and receive a short-lived request_uri handle for the authorize endpoint.", + "description": "Create a Premium Geo DB addon for an organization.\n", "responses": { "201": { - "description": "OAuth2 PAR", + "description": "Addon", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/oauth2PAR" + "$ref": "#\/components\/schemas\/addon" } } } @@ -47397,150 +48804,59 @@ }, "deprecated": false, "x-appwrite": { - "method": "createPAR", + "method": "createPremiumGeoDBAddon", "group": null, "cookies": false, "type": "", - "demo": "oauth2\/create-par.md", - "rate-limit": 60, - "rate-time": 60, + "demo": "organizations\/create-premium-geo-db-addon.md", + "rate-limit": 10, + "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "public", + "scope": "billing.write", "platforms": [ - "console", - "client", - "server" + "console" ], "packaging": false, "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/organizations\/create-premium-geo-db-addon.md", "auth": { - "ProjectPath": [] + "Project": [] } }, "security": [ { - "ProjectPath": [], - "Session": [], - "JWT": [], - "Key": [] + "Project": [] } ], "parameters": [ { - "name": "project_id", - "description": "Project ID in which OAuth2 client exists.", + "name": "organizationId", + "description": "Organization ID", "required": true, "schema": { "type": "string", - "x-example": "<PROJECT_ID>" + "x-example": "<ORGANIZATION_ID>" }, "in": "path" } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "client_id": { - "type": "string", - "description": "OAuth2 client ID.", - "x-example": "<CLIENT_ID>" - }, - "redirect_uri": { - "type": "string", - "description": "Redirect URI where visitor will be redirected after authorization, whether successful or not.", - "x-example": "https:\/\/example.com", - "format": "url" - }, - "response_type": { - "type": "string", - "description": "OAuth2 \/ OIDC response type.", - "x-example": "code" - }, - "scope": { - "type": "string", - "description": "Space-separated OAuth2 scopes. Can include project scopes, and built-in scopes: `openid`, `email`, `profile`, `phone`.", - "x-example": "<SCOPE>" - }, - "state": { - "type": "string", - "description": "OAuth2 state. You receive this back in the redirect URI.", - "default": "", - "x-example": "<STATE>" - }, - "nonce": { - "type": "string", - "description": "OIDC nonce parameter to prevent replay attacks. Required when response_type includes `id_token`.", - "default": "", - "x-example": "<NONCE>" - }, - "code_challenge": { - "type": "string", - "description": "PKCE code challenge. Required when OAuth2 app is public.", - "default": "", - "x-example": "<CODE_CHALLENGE>" - }, - "code_challenge_method": { - "type": "string", - "description": "PKCE code challenge method. Required when OAuth2 app is public.", - "default": "", - "x-example": "s256" - }, - "prompt": { - "type": "string", - "description": "OIDC prompt parameter for customization of consent screen. Space-separated list of: none, login, consent, select_account.", - "default": "", - "x-example": "<PROMPT>" - }, - "max_age": { - "type": "integer", - "description": "OIDC max_age parameter for customization of consent screen.", - "x-example": 0, - "format": "int32", - "x-nullable": true - }, - "authorization_details": { - "type": "string", - "description": "Rich authorization request. JSON array of objects, each with a `type` and project-defined fields", - "default": "", - "x-example": "<AUTHORIZATION_DETAILS>" - }, - "resource": { - "type": "string", - "description": "RFC 8707 resource indicator URI or URI list. Each value must be an absolute URI without a fragment.", - "default": [], - "x-example": null - } - }, - "required": [ - "client_id", - "redirect_uri", - "response_type", - "scope" - ] - } - } - } - } + ] } }, - "\/oauth2\/{project_id}\/projects": { + "\/organizations\/{organizationId}\/addons\/{addonId}": { "get": { - "summary": "OAuth2 List Accessible Projects", - "operationId": "oauth2ListProjects", + "summary": "Get addon", + "operationId": "organizationsGetAddon", "tags": [ - "oauth2" + "organizations" ], - "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.", + "description": "Get the details of a billing addon for an organization.\n", "responses": { "200": { - "description": "OAuth2 accessible projects list", + "description": "Addon", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/oauth2ProjectList" + "$ref": "#\/components\/schemas\/addon" } } } @@ -47548,181 +48864,133 @@ }, "deprecated": false, "x-appwrite": { - "method": "listProjects", + "method": "getAddon", "group": null, "cookies": false, "type": "", - "demo": "oauth2\/list-projects.md", - "rate-limit": 120, - "rate-time": 60, + "demo": "organizations\/get-addon.md", + "rate-limit": 0, + "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "oauth2.projects.read", + "scope": "billing.read", "platforms": [ - "console", - "client", - "server" + "console" ], "packaging": false, "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/organizations\/get-addon.md", "auth": { - "ProjectPath": [] + "Project": [] } }, "security": [ { - "ProjectPath": [], - "Session": [], - "JWT": [], - "Key": [] + "Project": [] } ], "parameters": [ { - "name": "project_id", - "description": "Project ID of the console project the OAuth2 access token was issued for.", + "name": "organizationId", + "description": "Organization ID", "required": true, "schema": { "type": "string", - "x-example": "<PROJECT_ID>" + "x-example": "<ORGANIZATION_ID>" }, "in": "path" }, { - "name": "limit", - "description": "Maximum number of projects to return. Between 1 and 5000.", - "required": false, - "schema": { - "type": "integer", - "format": "int32", - "x-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", - "x-example": 0, - "default": 0 - }, - "in": "query" - }, - { - "name": "search", - "description": "Search term to filter your list results. Max length: 256 chars.", - "required": false, + "name": "addonId", + "description": "Addon ID", + "required": true, "schema": { "type": "string", - "x-example": "<SEARCH>", - "default": "" + "x-example": "<ADDON_ID>" }, - "in": "query" + "in": "path" } ] - } - }, - "\/oauth2\/{project_id}\/reject": { - "post": { - "summary": "Reject OAuth2", - "operationId": "oauth2Reject", + }, + "delete": { + "summary": "Delete addon", + "operationId": "organizationsDeleteAddon", "tags": [ - "oauth2" + "organizations" ], - "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.", + "description": "Delete a billing addon for an organization.\n", "responses": { - "200": { - "description": "OAuth2 Reject", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/oauth2Reject" - } - } - } + "204": { + "description": "No content" } }, "deprecated": false, "x-appwrite": { - "method": "reject", + "method": "deleteAddon", "group": null, "cookies": false, "type": "", - "demo": "oauth2\/reject.md", + "demo": "organizations\/delete-addon.md", "rate-limit": 10, - "rate-time": 60, - "rate-key": "ip:{ip},userId:{userId}", - "scope": "oauth2.write", + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "billing.write", "platforms": [ - "console", - "client", - "server" + "console" ], "packaging": false, "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/organizations\/delete-addon.md", + "produces": [ + "application\/json" + ], "auth": { - "ProjectPath": [] + "Project": [] } }, "security": [ { - "ProjectPath": [], - "Session": [], - "JWT": [] + "Project": [] } ], "parameters": [ { - "name": "project_id", - "description": "Project ID in which OAuth2 client exists.", + "name": "organizationId", + "description": "Organization ID", "required": true, "schema": { "type": "string", - "x-example": "<PROJECT_ID>" + "x-example": "<ORGANIZATION_ID>" + }, + "in": "path" + }, + { + "name": "addonId", + "description": "Addon ID", + "required": true, + "schema": { + "type": "string", + "x-example": "<ADDON_ID>" }, "in": "path" } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "grant_id": { - "type": "string", - "description": "Grant ID made during authorization, provided to consent screen in URL search params.", - "x-example": "<GRANT_ID>" - } - }, - "required": [ - "grant_id" - ] - } - } - } - } + ] } }, - "\/oauth2\/{project_id}\/revoke": { + "\/organizations\/{organizationId}\/addons\/{addonId}\/confirmations": { "post": { - "summary": "OAuth2 Revoke", - "operationId": "oauth2Revoke", + "summary": "Confirm addon payment after 3DS authentication", + "operationId": "organizationsConfirmAddonPayment", "tags": [ - "oauth2" + "organizations" ], - "description": "Revoke an OAuth2 access token or refresh token.", + "description": "Confirm payment for a billing addon for an organization.\n", "responses": { "200": { - "description": "File", + "description": "Addon", "content": { "application\/json": { "schema": { - "type": "string", - "format": "binary" + "$ref": "#\/components\/schemas\/addon" } } } @@ -47730,100 +48998,69 @@ }, "deprecated": false, "x-appwrite": { - "method": "revoke", + "method": "confirmAddonPayment", "group": null, "cookies": false, "type": "", - "demo": "oauth2\/revoke.md", - "rate-limit": 60, - "rate-time": 60, + "demo": "organizations\/confirm-addon-payment.md", + "rate-limit": 10, + "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "public", + "scope": "billing.write", "platforms": [ - "console", - "client", - "server" + "console" ], "packaging": false, "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/organizations\/confirm-addon-payment.md", "auth": { - "ProjectPath": [] + "Project": [] } }, "security": [ { - "ProjectPath": [], - "Session": [], - "JWT": [], - "Key": [] + "Project": [] } ], "parameters": [ { - "name": "project_id", - "description": "Project ID in which OAuth2 client exists.", + "name": "organizationId", + "description": "Organization ID", "required": true, "schema": { "type": "string", - "x-example": "<PROJECT_ID>" + "x-example": "<ORGANIZATION_ID>" + }, + "in": "path" + }, + { + "name": "addonId", + "description": "Addon ID", + "required": true, + "schema": { + "type": "string", + "x-example": "<ADDON_ID>" }, "in": "path" } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "token": { - "type": "string", - "description": "The access or refresh token to revoke.", - "x-example": "<TOKEN>" - }, - "token_type_hint": { - "type": "string", - "description": "Type of token to revoke (access_token or refresh_token).", - "default": "", - "x-example": "access_token" - }, - "client_id": { - "type": "string", - "description": "OAuth2 client ID.", - "default": "", - "x-example": "<CLIENT_ID>" - }, - "client_secret": { - "type": "string", - "description": "OAuth2 client secret. Required for confidential apps; omitted for public apps.", - "default": "", - "x-example": "<CLIENT_SECRET>" - } - }, - "required": [ - "token" - ] - } - } - } - } + ] } }, - "\/oauth2\/{project_id}\/token": { - "post": { - "summary": "OAuth2 Token", - "operationId": "oauth2CreateToken", + "\/organizations\/{organizationId}\/addons\/{addon}\/price": { + "get": { + "summary": "Get addon price", + "operationId": "organizationsGetAddonPrice", "tags": [ - "oauth2" + "organizations" ], - "description": "Exchange an OAuth2 authorization code, refresh token, or device code for access and refresh tokens.", + "description": "Get the price details for a billing addon for an organization.\n", "responses": { "200": { - "description": "OAuth2 Token", + "description": "AddonPrice", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/oauth2Token" + "$ref": "#\/components\/schemas\/addonPrice" } } } @@ -47831,131 +49068,155 @@ }, "deprecated": false, "x-appwrite": { - "method": "createToken", + "method": "getAddonPrice", "group": null, "cookies": false, "type": "", - "demo": "oauth2\/create-token.md", - "rate-limit": 60, - "rate-time": 60, + "demo": "organizations\/get-addon-price.md", + "rate-limit": 0, + "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "public", + "scope": "billing.read", "platforms": [ - "console", - "client", - "server" + "console" ], "packaging": false, "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/organizations\/get-addon-price.md", "auth": { - "ProjectPath": [] + "Project": [] } }, "security": [ { - "ProjectPath": [], - "Session": [], - "JWT": [], - "Key": [] + "Project": [] } ], "parameters": [ { - "name": "project_id", - "description": "Project ID in which OAuth2 client exists.", + "name": "organizationId", + "description": "Organization ID", "required": true, "schema": { "type": "string", - "x-example": "<PROJECT_ID>" + "x-example": "<ORGANIZATION_ID>" + }, + "in": "path" + }, + { + "name": "addon", + "description": "Addon key identifier (e.g. baa).", + "required": true, + "schema": { + "type": "string", + "x-example": "baa", + "enum": [ + "baa", + "premiumgeodb", + "premiumgeodborg", + "backup_recovery" + ], + "x-enum-name": "Addon", + "x-enum-keys": [ + "baa", + "premiumgeodb", + "premiumgeodborg", + "backup_recovery" + ] }, "in": "path" } + ] + } + }, + "\/organizations\/{organizationId}\/aggregations": { + "get": { + "summary": "List aggregations", + "operationId": "organizationsListAggregations", + "tags": [ + "organizations" ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "grant_type": { - "type": "string", - "description": "OAuth2 grant type. Can be one of: `authorization_code`, `refresh_token`, `urn:ietf:params:oauth:grant-type:device_code`.", - "x-example": "<GRANT_TYPE>" - }, - "code": { - "type": "string", - "description": "Authorization code to be exchanged for access and refresh tokens. Required for `authorization_code` grant type.", - "default": "", - "x-example": "<CODE>" - }, - "refresh_token": { - "type": "string", - "description": "Refresh token to be exchanged for a new access and refresh tokens. Required for `refresh_token` grant type.", - "default": "", - "x-example": "<REFRESH_TOKEN>" - }, - "device_code": { - "type": "string", - "description": "Device code obtained from the device authorization endpoint. Required for `urn:ietf:params:oauth:grant-type:device_code` grant type.", - "default": "", - "x-example": "<DEVICE_CODE>" - }, - "client_id": { - "type": "string", - "description": "OAuth2 client ID.", - "default": "", - "x-example": "<CLIENT_ID>" - }, - "client_secret": { - "type": "string", - "description": "OAuth2 client secret. Required for confidential apps.", - "default": "", - "x-example": "<CLIENT_SECRET>" - }, - "code_verifier": { - "type": "string", - "description": "PKCE code verifier. Required for public apps.", - "default": "", - "x-example": "<CODE_VERIFIER>" - }, - "redirect_uri": { - "type": "string", - "description": "Redirect URI. Required for `authorization_code` grant type.", - "default": "", - "x-example": "https:\/\/example.com", - "format": "url" - }, - "resource": { - "type": "string", - "description": "RFC 8707 resource indicator URI or URI list. Each value must be an absolute URI without a fragment.", - "default": [], - "x-example": null - } - }, - "required": [ - "grant_type" - ] + "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": { + "method": "listAggregations", + "group": null, + "cookies": false, + "type": "", + "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, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/organizations\/list-aggregations.md", + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [] + } + ], + "parameters": [ + { + "name": "organizationId", + "description": "Organization ID", + "required": true, + "schema": { + "type": "string", + "x-example": "<ORGANIZATION_ID>" + }, + "in": "path" + }, + { + "name": "queries", + "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/databases#querying-documents). Maximum of 100 queries are allowed, each 4096 characters long. You may filter on the following attributes: teamId, aggregationId, from, to", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string" + }, + "default": [] + }, + "in": "query" + } + ] } }, - "\/organization": { + "\/organizations\/{organizationId}\/aggregations\/{aggregationId}": { "get": { - "summary": "Get organization", - "operationId": "organizationGet", + "summary": "Get aggregation", + "operationId": "organizationsGetAggregation", "tags": [ - "organization" + "organizations" ], - "description": "Get the current organization.", + "description": "Get a specific aggregation using it's aggregation ID.", "responses": { "200": { - "description": "Organization", + "description": "Team", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/organization" + "$ref": "#\/components\/schemas\/aggregationTeam" } } } @@ -47963,39 +49224,85 @@ }, "deprecated": false, "x-appwrite": { - "method": "get", + "method": "getAggregation", "group": null, "cookies": false, "type": "", - "demo": "organization\/get.md", + "demo": "organizations\/get-aggregation.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "organization.read", + "scope": "teams.read", "platforms": [ - "console", - "server" + "console" ], "packaging": false, "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/organizations\/get-aggregation.md", "auth": { "Project": [] } }, "security": [ { - "Project": [], - "Key": [] + "Project": [] + } + ], + "parameters": [ + { + "name": "organizationId", + "description": "Organization ID", + "required": true, + "schema": { + "type": "string", + "x-example": "<ORGANIZATION_ID>" + }, + "in": "path" + }, + { + "name": "aggregationId", + "description": "Invoice unique ID", + "required": true, + "schema": { + "type": "string", + "x-example": "<AGGREGATION_ID>" + }, + "in": "path" + }, + { + "name": "limit", + "description": "Maximum number of project aggregations to return in response. By default will return maximum 5 results. Maximum of 10 results allowed per request.", + "required": false, + "schema": { + "type": "integer", + "format": "int32", + "x-example": 0, + "default": 5 + }, + "in": "query" + }, + { + "name": "offset", + "description": "Offset value. The default value is 0. Use this param to manage pagination.", + "required": false, + "schema": { + "type": "integer", + "format": "int32", + "default": 0 + }, + "in": "query" } ] - }, - "put": { - "summary": "Update organization", - "operationId": "organizationUpdate", + } + }, + "\/organizations\/{organizationId}\/billing-address": { + "patch": { + "summary": "Set team's billing address", + "operationId": "organizationsSetBillingAddress", "tags": [ - "organization" + "organizations" ], - "description": "Update the current organization's name.", + "description": "Set a billing address for an organization.", "responses": { "200": { "description": "Organization", @@ -48010,29 +49317,40 @@ }, "deprecated": false, "x-appwrite": { - "method": "update", + "method": "setBillingAddress", "group": null, "cookies": false, "type": "", - "demo": "organization\/update.md", + "demo": "organizations\/set-billing-address.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "organization.write", + "scope": "billing.write", "platforms": [ - "console", - "server" + "console" ], "packaging": false, "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/organizations\/set-billing-address.md", "auth": { "Project": [] } }, "security": [ { - "Project": [], - "Key": [] + "Project": [] + } + ], + "parameters": [ + { + "name": "organizationId", + "description": "Organization ID", + "required": true, + "schema": { + "type": "string", + "x-example": "<ORGANIZATION_ID>" + }, + "in": "path" } ], "requestBody": { @@ -48041,14 +49359,14 @@ "schema": { "type": "object", "properties": { - "name": { + "billingAddressId": { "type": "string", - "description": "New organization name. Max length: 128 chars.", - "x-example": "<NAME>" + "description": "Unique ID of billing address", + "x-example": "<BILLING_ADDRESS_ID>" } }, "required": [ - "name" + "billingAddressId" ] } } @@ -48056,12 +49374,12 @@ } }, "delete": { - "summary": "Delete organization", - "operationId": "organizationDelete", + "summary": "Delete team's billing address", + "operationId": "organizationsDeleteBillingAddress", "tags": [ - "organization" + "organizations" ], - "description": "Delete the current organization. All projects that belong to the organization are deleted as well.", + "description": "Delete a team's billing address.", "responses": { "204": { "description": "No content" @@ -48069,48 +49387,62 @@ }, "deprecated": false, "x-appwrite": { - "method": "delete", + "method": "deleteBillingAddress", "group": null, "cookies": false, "type": "", - "demo": "organization\/delete.md", + "demo": "organizations\/delete-billing-address.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "organization.write", + "scope": "billing.write", "platforms": [ - "console", - "server" + "console" ], "packaging": false, "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/organizations\/delete-billing-address.md", + "produces": [ + "application\/json" + ], "auth": { "Project": [] } }, "security": [ { - "Project": [], - "Key": [] + "Project": [] + } + ], + "parameters": [ + { + "name": "organizationId", + "description": "Organization ID", + "required": true, + "schema": { + "type": "string", + "x-example": "<ORGANIZATION_ID>" + }, + "in": "path" } ] } }, - "\/organization\/keys": { + "\/organizations\/{organizationId}\/billing-addresses\/{billingAddressId}": { "get": { - "summary": "List organization keys", - "operationId": "organizationListKeys", + "summary": "Get billing address", + "operationId": "organizationsGetBillingAddress", "tags": [ - "organization" + "organizations" ], - "description": "Get a list of all API keys from the current organization.", + "description": "Get a billing address using it's ID.", "responses": { "200": { - "description": "API Keys List", + "description": "Address", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/keyList" + "$ref": "#\/components\/schemas\/billingAddress" } } } @@ -48118,72 +49450,69 @@ }, "deprecated": false, "x-appwrite": { - "method": "listKeys", - "group": "keys", + "method": "getBillingAddress", + "group": null, "cookies": false, "type": "", - "demo": "organization\/list-keys.md", + "demo": "organizations\/get-billing-address.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "organization.keys.read", + "scope": "billing.read", "platforms": [ - "console", - "server" + "console" ], "packaging": false, "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/organizations\/get-billing-address.md", "auth": { "Project": [] } }, "security": [ { - "Project": [], - "Key": [] + "Project": [] } ], "parameters": [ { - "name": "queries", - "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/queries). Maximum of 100 queries are allowed, each 4096 characters long. You may filter on the following attributes: expire, accessedAt, name, scopes", - "required": false, + "name": "organizationId", + "description": "Organization ID", + "required": true, "schema": { - "type": "array", - "items": { - "type": "string" - }, - "default": [] + "type": "string", + "x-example": "<ORGANIZATION_ID>" }, - "in": "query" + "in": "path" }, { - "name": "total", - "description": "When set to false, the total count returned will be 0 and will not be calculated.", - "required": false, + "name": "billingAddressId", + "description": "Unique ID of billing address", + "required": true, "schema": { - "type": "boolean", - "x-example": false, - "default": true + "type": "string", + "x-example": "<BILLING_ADDRESS_ID>" }, - "in": "query" + "in": "path" } ] - }, - "post": { - "summary": "Create organization key", - "operationId": "organizationCreateKey", + } + }, + "\/organizations\/{organizationId}\/billing-email": { + "patch": { + "summary": "Set team's billing email", + "operationId": "organizationsSetBillingEmail", "tags": [ - "organization" + "organizations" ], - "description": "Create a new organization API key.", + "description": "Set the current billing email for the organization.", "responses": { - "201": { - "description": "Key", + "200": { + "description": "Organization", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/key" + "$ref": "#\/components\/schemas\/organization" } } } @@ -48191,29 +49520,40 @@ }, "deprecated": false, "x-appwrite": { - "method": "createKey", - "group": "keys", + "method": "setBillingEmail", + "group": null, "cookies": false, "type": "", - "demo": "organization\/create-key.md", + "demo": "organizations\/set-billing-email.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "organization.keys.write", + "scope": "billing.write", "platforms": [ - "console", - "server" + "console" ], "packaging": false, "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/organizations\/set-billing-email.md", "auth": { "Project": [] } }, "security": [ { - "Project": [], - "Key": [] + "Project": [] + } + ], + "parameters": [ + { + "name": "organizationId", + "description": "Organization ID", + "required": true, + "schema": { + "type": "string", + "x-example": "<ORGANIZATION_ID>" + }, + "in": "path" } ], "requestBody": { @@ -48222,72 +49562,107 @@ "schema": { "type": "object", "properties": { - "keyId": { - "type": "string", - "description": "Key ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.", - "x-example": "<KEY_ID>", - "x-appwrite": { - "idGenerator": "ID.unique" - } - }, - "name": { + "billingEmail": { "type": "string", - "description": "Key name. Max length: 128 chars.", - "x-example": "<NAME>" + "description": "Billing email for the organization.", + "x-example": "email@example.com", + "format": "email" + } + }, + "required": [ + "billingEmail" + ] + } + } + } + } + } + }, + "\/organizations\/{organizationId}\/budget": { + "patch": { + "summary": "Update organization budget", + "operationId": "organizationsUpdateBudget", + "tags": [ + "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": { + "method": "updateBudget", + "group": null, + "cookies": false, + "type": "", + "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, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/organizations\/update-budget.md", + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [] + } + ], + "parameters": [ + { + "name": "organizationId", + "description": "Organization Unique ID", + "required": true, + "schema": { + "type": "string", + "x-example": "<ORGANIZATION_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "budget": { + "type": "integer", + "description": "Budget limit for additional usage set for the organization", + "x-example": 0, + "format": "int32", + "x-nullable": true }, - "scopes": { + "alerts": { "type": "array", - "description": "Key scopes list. Maximum of 200 scopes are allowed.", + "description": "Budget alert limit percentage", + "default": [ + 75 + ], "x-example": null, "items": { - "type": "string", - "enum": [ - "projects.read", - "projects.write", - "devKeys.read", - "devKeys.write", - "organization.keys.read", - "organization.keys.write", - "organization.memberships.read", - "organization.memberships.write", - "organization.read", - "organization.write", - "domains.read", - "domains.write", - "keys.read", - "keys.write" - ], - "x-enum-name": "OrganizationKeyScopes", - "x-enum-keys": [ - "projects.read", - "projects.write", - "devKeys.read", - "devKeys.write", - "organization.keys.read", - "organization.keys.write", - "organization.memberships.read", - "organization.memberships.write", - "organization.read", - "organization.write", - "domains.read", - "domains.write", - "keys.read", - "keys.write" - ] + "type": "integer" } - }, - "expire": { - "type": "string", - "description": "Expiration time in [ISO 8601](https:\/\/www.iso.org\/iso-8601-date-and-time-format.html) format. Use null for unlimited expiration.", - "x-example": "2020-10-15T06:38:00.000+00:00", - "format": "datetime", - "x-nullable": true } }, "required": [ - "keyId", - "name", - "scopes" + "budget" ] } } @@ -48295,21 +49670,21 @@ } } }, - "\/organization\/keys\/{keyId}": { + "\/organizations\/{organizationId}\/credits": { "get": { - "summary": "Get organization key", - "operationId": "organizationGetKey", + "summary": "List credits", + "operationId": "organizationsListCredits", "tags": [ - "organization" + "organizations" ], - "description": "Get a key by its unique ID. This endpoint returns details about a specific API key in your organization including its scopes.", + "description": "List all credits for an organization.\n", "responses": { "200": { - "description": "Key", + "description": "CreditList", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/key" + "$ref": "#\/components\/schemas\/creditList" } } } @@ -48317,58 +49692,70 @@ }, "deprecated": false, "x-appwrite": { - "method": "getKey", - "group": "keys", + "method": "listCredits", + "group": null, "cookies": false, "type": "", - "demo": "organization\/get-key.md", + "demo": "organizations\/list-credits.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "organization.keys.read", + "scope": "billing.read", "platforms": [ - "console", - "server" + "console" ], "packaging": false, "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/organizations\/list-credits.md", "auth": { "Project": [] } }, "security": [ { - "Project": [], - "Key": [] + "Project": [] } ], "parameters": [ { - "name": "keyId", - "description": "Key unique ID.", + "name": "organizationId", + "description": "Organization ID", "required": true, "schema": { "type": "string", - "x-example": "<KEY_ID>" + "x-example": "<ORGANIZATION_ID>" }, "in": "path" + }, + { + "name": "queries", + "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/databases#querying-documents). Maximum of 100 queries are allowed, each 4096 characters long. You may filter on the following attributes: teamId, couponId, credits, expiration, status", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string" + }, + "default": [] + }, + "in": "query" } ] }, - "put": { - "summary": "Update organization key", - "operationId": "organizationUpdateKey", + "post": { + "summary": "Add credits from coupon", + "operationId": "organizationsAddCredit", "tags": [ - "organization" + "organizations" ], - "description": "Update a key by its unique ID. Use this endpoint to update the name, scopes, or expiration time of an API key.", + "description": "Add credit to an organization using a coupon.", "responses": { - "200": { - "description": "Key", + "201": { + "description": "Credit", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/key" + "$ref": "#\/components\/schemas\/credit" } } } @@ -48376,39 +49763,38 @@ }, "deprecated": false, "x-appwrite": { - "method": "updateKey", - "group": "keys", + "method": "addCredit", + "group": null, "cookies": false, "type": "", - "demo": "organization\/update-key.md", - "rate-limit": 0, + "demo": "organizations\/add-credit.md", + "rate-limit": 10, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "organization.keys.write", + "scope": "billing.write", "platforms": [ - "console", - "server" + "console" ], "packaging": false, "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/organizations\/add-credit.md", "auth": { "Project": [] } }, "security": [ { - "Project": [], - "Key": [] + "Project": [] } ], "parameters": [ { - "name": "keyId", - "description": "Key unique ID.", + "name": "organizationId", + "description": "Organization ID", "required": true, "schema": { "type": "string", - "x-example": "<KEY_ID>" + "x-example": "<ORGANIZATION_ID>" }, "in": "path" } @@ -48419,137 +49805,96 @@ "schema": { "type": "object", "properties": { - "name": { - "type": "string", - "description": "Key name. Max length: 128 chars.", - "x-example": "<NAME>" - }, - "scopes": { - "type": "array", - "description": "Key scopes list. Maximum of 200 scopes are allowed.", - "x-example": null, - "items": { - "type": "string", - "enum": [ - "projects.read", - "projects.write", - "devKeys.read", - "devKeys.write", - "organization.keys.read", - "organization.keys.write", - "organization.memberships.read", - "organization.memberships.write", - "organization.read", - "organization.write", - "domains.read", - "domains.write", - "keys.read", - "keys.write" - ], - "x-enum-name": "OrganizationKeyScopes", - "x-enum-keys": [ - "projects.read", - "projects.write", - "devKeys.read", - "devKeys.write", - "organization.keys.read", - "organization.keys.write", - "organization.memberships.read", - "organization.memberships.write", - "organization.read", - "organization.write", - "domains.read", - "domains.write", - "keys.read", - "keys.write" - ] - } - }, - "expire": { + "couponId": { "type": "string", - "description": "Expiration time in [ISO 8601](https:\/\/www.iso.org\/iso-8601-date-and-time-format.html) format. Use null for unlimited expiration.", - "x-example": "2020-10-15T06:38:00.000+00:00", - "format": "datetime", - "x-nullable": true + "description": "ID of the coupon", + "x-example": "<COUPON_ID>" } }, "required": [ - "name", - "scopes" + "couponId" ] } } } } - }, - "delete": { - "summary": "Delete organization key", - "operationId": "organizationDeleteKey", + } + }, + "\/organizations\/{organizationId}\/credits\/available": { + "get": { + "summary": "Get available credits", + "operationId": "organizationsGetAvailableCredits", "tags": [ - "organization" + "organizations" ], - "description": "Delete a key by its unique ID. Once deleted, the key can no longer be used to authenticate API calls.", + "description": "Get total available valid credits for an organization.", "responses": { - "204": { - "description": "No content" + "200": { + "description": "CreditAvailable", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/creditAvailable" + } + } + } } }, "deprecated": false, "x-appwrite": { - "method": "deleteKey", - "group": "keys", + "method": "getAvailableCredits", + "group": null, "cookies": false, "type": "", - "demo": "organization\/delete-key.md", + "demo": "organizations\/get-available-credits.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "organization.keys.write", + "scope": "billing.read", "platforms": [ - "console", - "server" + "console" ], "packaging": false, "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/organizations\/get-available-credits.md", "auth": { "Project": [] } }, "security": [ { - "Project": [], - "Key": [] + "Project": [] } ], "parameters": [ { - "name": "keyId", - "description": "Key unique ID.", + "name": "organizationId", + "description": "Organization ID", "required": true, "schema": { "type": "string", - "x-example": "<KEY_ID>" + "x-example": "<ORGANIZATION_ID>" }, "in": "path" } ] } }, - "\/organization\/memberships": { + "\/organizations\/{organizationId}\/credits\/{creditId}": { "get": { - "summary": "List organization memberships", - "operationId": "organizationListMemberships", + "summary": "Get credit details", + "operationId": "organizationsGetCredit", "tags": [ - "organization" + "organizations" ], - "description": "Get a list of all memberships from the current organization.", + "description": "Get credit details.", "responses": { "200": { - "description": "Memberships List", + "description": "Credit", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/membershipList" + "$ref": "#\/components\/schemas\/credit" } } } @@ -48557,83 +49902,69 @@ }, "deprecated": false, "x-appwrite": { - "method": "listMemberships", - "group": "memberships", + "method": "getCredit", + "group": null, "cookies": false, "type": "", - "demo": "organization\/list-memberships.md", + "demo": "organizations\/get-credit.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "organization.memberships.read", + "scope": "billing.read", "platforms": [ - "console", - "server" + "console" ], "packaging": false, "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/organizations\/get-credit.md", "auth": { "Project": [] } }, "security": [ { - "Project": [], - "Key": [] + "Project": [] } ], "parameters": [ { - "name": "queries", - "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/queries). Maximum of 100 queries are allowed, each 4096 characters long. You may filter on the following attributes: userId, teamId, invited, joined, confirm, roles", - "required": false, - "schema": { - "type": "array", - "items": { - "type": "string" - }, - "default": [] - }, - "in": "query" - }, - { - "name": "search", - "description": "Search term to filter your list results. Max length: 256 chars.", - "required": false, + "name": "organizationId", + "description": "Organization ID", + "required": true, "schema": { "type": "string", - "x-example": "<SEARCH>", - "default": "" + "x-example": "<ORGANIZATION_ID>" }, - "in": "query" + "in": "path" }, { - "name": "total", - "description": "When set to false, the total count returned will be 0 and will not be calculated.", - "required": false, + "name": "creditId", + "description": "Credit Unique ID", + "required": true, "schema": { - "type": "boolean", - "x-example": false, - "default": true + "type": "string", + "x-example": "<CREDIT_ID>" }, - "in": "query" + "in": "path" } ] - }, - "post": { - "summary": "Create organization membership", - "operationId": "organizationCreateMembership", + } + }, + "\/organizations\/{organizationId}\/estimations\/delete-organization": { + "patch": { + "summary": "Estimate delete team", + "operationId": "organizationsEstimationDeleteOrganization", "tags": [ - "organization" + "organizations" ], - "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.", + "description": "Get estimation for deleting an organization.", "responses": { - "201": { - "description": "Membership", + "200": { + "description": "DeleteOrganization", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/membership" + "$ref": "#\/components\/schemas\/estimationDeleteOrganization" } } } @@ -48641,162 +49972,59 @@ }, "deprecated": false, "x-appwrite": { - "method": "createMembership", - "group": "memberships", + "method": "estimationDeleteOrganization", + "group": null, "cookies": false, "type": "", - "demo": "organization\/create-membership.md", - "rate-limit": 10, + "demo": "organizations\/estimation-delete-organization.md", + "rate-limit": 120, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "organization.memberships.write", + "scope": "organizations.write", "platforms": [ - "console", - "server" + "console" ], "packaging": false, "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/organizations\/estimation-delete-organization.md", "auth": { "Project": [] } }, "security": [ { - "Project": [], - "Key": [] - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "email": { - "type": "string", - "description": "Email of the new organization member.", - "default": "", - "x-example": "email@example.com", - "format": "email" - }, - "userId": { - "type": "string", - "description": "ID of the user to be added to the organization.", - "default": "", - "x-example": "<USER_ID>" - }, - "phone": { - "type": "string", - "description": "Phone number. Format this number with a leading '+' and a country code, e.g., +16175551212.", - "default": "", - "x-example": "+12065550100", - "format": "phone" - }, - "roles": { - "type": "array", - "description": "Array of strings. Use this param to set the user roles in the 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.", - "x-example": null, - "items": { - "type": "string" - } - }, - "url": { - "type": "string", - "description": "URL to redirect the user back to your app from the invitation email. This parameter is not required when an API key is supplied.", - "default": "", - "x-example": "https:\/\/example.com", - "format": "url" - }, - "name": { - "type": "string", - "description": "Name of the new organization member. Max length: 128 chars.", - "default": "", - "x-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": { - "method": "getMembership", - "group": "memberships", - "cookies": false, - "type": "", - "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": [] - } ], "parameters": [ { - "name": "membershipId", - "description": "Membership ID.", + "name": "organizationId", + "description": "Team ID.", "required": true, "schema": { "type": "string", - "x-example": "<MEMBERSHIP_ID>" + "x-example": "<ORGANIZATION_ID>" }, "in": "path" } ] - }, + } + }, + "\/organizations\/{organizationId}\/estimations\/update-plan": { "patch": { - "summary": "Update organization membership", - "operationId": "organizationUpdateMembership", + "summary": "Estimate for update plan", + "operationId": "organizationsEstimationUpdatePlan", "tags": [ - "organization" + "organizations" ], - "description": "Modify the roles of a member in the current organization.", + "description": "Get estimation for updating the organization plan.", "responses": { "200": { - "description": "Membership", + "description": "UpdatePlan", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/membership" + "$ref": "#\/components\/schemas\/estimationUpdatePlan" } } } @@ -48804,39 +50032,38 @@ }, "deprecated": false, "x-appwrite": { - "method": "updateMembership", - "group": "memberships", + "method": "estimationUpdatePlan", + "group": null, "cookies": false, "type": "", - "demo": "organization\/update-membership.md", - "rate-limit": 0, + "demo": "organizations\/estimation-update-plan.md", + "rate-limit": 120, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "organization.memberships.write", + "scope": "billing.write", "platforms": [ - "console", - "server" + "console" ], "packaging": false, "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/organizations\/estimation-update-plan.md", "auth": { "Project": [] } }, "security": [ { - "Project": [], - "Key": [] + "Project": [] } ], "parameters": [ { - "name": "membershipId", - "description": "Membership ID.", + "name": "organizationId", + "description": "Organization ID", "required": true, "schema": { "type": "string", - "x-example": "<MEMBERSHIP_ID>" + "x-example": "<ORGANIZATION_ID>" }, "in": "path" } @@ -48847,91 +50074,148 @@ "schema": { "type": "object", "properties": { - "roles": { + "billingPlan": { + "type": "string", + "description": "Organization billing plan chosen", + "x-example": "tier-0" + }, + "invites": { "type": "array", - "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.", + "description": "Additional member invites", + "default": [], "x-example": null, "items": { "type": "string" } + }, + "couponId": { + "type": "string", + "description": "Coupon id", + "x-example": "<COUPON_ID>", + "x-nullable": true } }, "required": [ - "roles" + "billingPlan" ] } } } } - }, - "delete": { - "summary": "Delete organization membership", - "operationId": "organizationDeleteMembership", + } + }, + "\/organizations\/{organizationId}\/feedbacks\/downgrade": { + "post": { + "summary": "Create downgrade feedback", + "operationId": "organizationsCreateDowngradeFeedback", "tags": [ - "organization" + "organizations" ], - "description": "Remove a member from the current organization. The member is removed whether they accepted the invitation or not; a pending invitation is revoked.", + "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": { - "204": { - "description": "No content" + "201": { + "description": "Downgrade Feedback", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/downgradeFeedback" + } + } + } } }, "deprecated": false, "x-appwrite": { - "method": "deleteMembership", - "group": "memberships", + "method": "createDowngradeFeedback", + "group": null, "cookies": false, "type": "", - "demo": "organization\/delete-membership.md", + "demo": "organizations\/create-downgrade-feedback.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "organization.memberships.write", + "scope": "billing.write", "platforms": [ - "console", - "server" + "console" ], "packaging": false, "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/organizations\/create-downgrade-feedback.md", "auth": { "Project": [] } }, "security": [ { - "Project": [], - "Key": [] + "Project": [] } ], "parameters": [ { - "name": "membershipId", - "description": "Membership ID.", + "name": "organizationId", + "description": "Organization Unique ID", "required": true, "schema": { "type": "string", - "x-example": "<MEMBERSHIP_ID>" + "x-example": "<ORGANIZATION_ID>" }, "in": "path" } - ] + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "reason": { + "type": "string", + "description": "Feedback reason", + "x-example": "<REASON>" + }, + "message": { + "type": "string", + "description": "Feedback message", + "x-example": "<MESSAGE>" + }, + "fromPlanId": { + "type": "string", + "description": "Plan downgrading from", + "x-example": "<FROM_PLAN_ID>" + }, + "toPlanId": { + "type": "string", + "description": "Plan downgrading to", + "x-example": "<TO_PLAN_ID>" + } + }, + "required": [ + "reason", + "message", + "fromPlanId", + "toPlanId" + ] + } + } + } + } } }, - "\/organization\/projects": { + "\/organizations\/{organizationId}\/invoices": { "get": { - "summary": "List organization projects", - "operationId": "organizationListProjects", + "summary": "List invoices", + "operationId": "organizationsListInvoices", "tags": [ - "organization" + "organizations" ], - "description": "Get a list of all projects. You can use the query params to filter your results.", + "description": "List all invoices for an organization.", "responses": { "200": { - "description": "Projects List", + "description": "Billing invoices list", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/projectList" + "$ref": "#\/components\/schemas\/invoiceList" } } } @@ -48939,35 +50223,44 @@ }, "deprecated": false, "x-appwrite": { - "method": "listProjects", - "group": "projects", + "method": "listInvoices", + "group": null, "cookies": false, "type": "", - "demo": "organization\/list-projects.md", + "demo": "organizations\/list-invoices.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "projects.read", + "scope": "billing.read", "platforms": [ - "console", - "server" + "console" ], "packaging": false, "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/organizations\/list-invoices.md", "auth": { "Project": [] } }, "security": [ { - "Project": [], - "Key": [] + "Project": [] } ], "parameters": [ + { + "name": "organizationId", + "description": "Organization ID", + "required": true, + "schema": { + "type": "string", + "x-example": "<ORGANIZATION_ID>" + }, + "in": "path" + }, { "name": "queries", - "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/queries). Maximum of 100 queries are allowed, each 4096 characters long. You may filter on the following attributes: name, teamId, labels, search, accessedAt", + "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", @@ -48977,45 +50270,25 @@ "default": [] }, "in": "query" - }, - { - "name": "search", - "description": "Search term to filter your list results. Max length: 256 chars.", - "required": false, - "schema": { - "type": "string", - "x-example": "<SEARCH>", - "default": "" - }, - "in": "query" - }, - { - "name": "total", - "description": "When set to false, the total count returned will be 0 and will not be calculated.", - "required": false, - "schema": { - "type": "boolean", - "x-example": false, - "default": true - }, - "in": "query" } ] - }, - "post": { - "summary": "Create organization project", - "operationId": "organizationCreateProject", + } + }, + "\/organizations\/{organizationId}\/invoices\/{invoiceId}": { + "get": { + "summary": "Get invoice", + "operationId": "organizationsGetInvoice", "tags": [ - "organization" + "organizations" ], - "description": "Create a new project.", + "description": "Get an invoice by its unique ID.", "responses": { - "201": { - "description": "Project", + "200": { + "description": "Invoice", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/project" + "$ref": "#\/components\/schemas\/invoice" } } } @@ -49023,95 +50296,69 @@ }, "deprecated": false, "x-appwrite": { - "method": "createProject", - "group": "projects", + "method": "getInvoice", + "group": null, "cookies": false, "type": "", - "demo": "organization\/create-project.md", + "demo": "organizations\/get-invoice.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "projects.write", + "scope": "billing.read", "platforms": [ - "console", - "server" + "console" ], "packaging": false, "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/organizations\/get-invoice.md", "auth": { "Project": [] } }, "security": [ { - "Project": [], - "Key": [] + "Project": [] } ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "projectId": { - "type": "string", - "description": "Unique Id. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, and hyphen. Can't start with a special char. Max length is 36 chars.", - "x-example": null - }, - "name": { - "type": "string", - "description": "Project name. Max length: 128 chars.", - "x-example": "<NAME>" - }, - "region": { - "type": "string", - "description": "Project Region.", - "x-example": "fra", - "enum": [ - "fra", - "nyc", - "syd", - "sfo", - "sgp", - "tor" - ], - "x-enum-name": "Region", - "x-enum-keys": [ - "fra", - "nyc", - "syd", - "sfo", - "sgp", - "tor" - ] - } - }, - "required": [ - "projectId", - "name" - ] - } - } + "parameters": [ + { + "name": "organizationId", + "description": "Organization ID", + "required": true, + "schema": { + "type": "string", + "x-example": "<ORGANIZATION_ID>" + }, + "in": "path" + }, + { + "name": "invoiceId", + "description": "Invoice unique ID", + "required": true, + "schema": { + "type": "string", + "x-example": "<INVOICE_ID>" + }, + "in": "path" } - } + ] } }, - "\/organization\/projects\/{projectId}": { + "\/organizations\/{organizationId}\/invoices\/{invoiceId}\/download": { "get": { - "summary": "Get organization project", - "operationId": "organizationGetProject", + "summary": "Download invoice in PDF", + "operationId": "organizationsGetInvoiceDownload", "tags": [ - "organization" + "organizations" ], - "description": "Get a project.", + "description": "Download invoice in PDF", "responses": { "200": { - "description": "Project", + "description": "paymentMethod", "content": { - "": { + "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/project" + "$ref": "#\/components\/schemas\/paymentMethod" } } } @@ -49119,58 +50366,71 @@ }, "deprecated": false, "x-appwrite": { - "method": "getProject", - "group": "projects", + "method": "getInvoiceDownload", + "group": null, "cookies": false, - "type": "", - "demo": "organization\/get-project.md", + "type": "location", + "demo": "organizations\/get-invoice-download.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "projects.read", + "scope": "billing.read", "platforms": [ - "console", - "server" + "console" ], "packaging": false, "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/organizations\/get-invoice-download.md", "auth": { - "Project": [] + "Project": [], + "ImpersonateUserId": [] } }, "security": [ { "Project": [], - "Key": [] + "ImpersonateUserId": [] } ], "parameters": [ { - "name": "projectId", - "description": "Project unique ID.", + "name": "organizationId", + "description": "Organization ID", "required": true, "schema": { "type": "string", - "x-example": "<PROJECT_ID>" + "x-example": "<ORGANIZATION_ID>" + }, + "in": "path" + }, + { + "name": "invoiceId", + "description": "Invoice unique ID", + "required": true, + "schema": { + "type": "string", + "x-example": "<INVOICE_ID>" }, "in": "path" } ] - }, - "patch": { - "summary": "Update organization project", - "operationId": "organizationUpdateProject", + } + }, + "\/organizations\/{organizationId}\/invoices\/{invoiceId}\/payments": { + "post": { + "summary": "Initiate payment for failed invoice to pay live from console", + "operationId": "organizationsCreateInvoicePayment", "tags": [ - "organization" + "organizations" ], - "description": "Update a project by its unique ID.", + "description": "Initiate payment for failed invoice to pay live from console", "responses": { "200": { - "description": "Project", + "description": "Invoice", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/project" + "$ref": "#\/components\/schemas\/invoice" } } } @@ -49178,39 +50438,48 @@ }, "deprecated": false, "x-appwrite": { - "method": "updateProject", - "group": "projects", + "method": "createInvoicePayment", + "group": null, "cookies": false, "type": "", - "demo": "organization\/update-project.md", - "rate-limit": 0, - "rate-time": 3600, + "demo": "organizations\/create-invoice-payment.md", + "rate-limit": 10, + "rate-time": 86400, "rate-key": "url:{url},ip:{ip}", - "scope": "projects.write", + "scope": "billing.write", "platforms": [ - "console", - "server" + "console" ], "packaging": false, "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/organizations\/create-invoice-payment.md", "auth": { "Project": [] } }, "security": [ { - "Project": [], - "Key": [] + "Project": [] } ], "parameters": [ { - "name": "projectId", - "description": "Project unique ID.", - "required": true, + "name": "organizationId", + "description": "Organization ID", + "required": true, "schema": { "type": "string", - "x-example": "<PROJECT_ID>" + "x-example": "<ORGANIZATION_ID>" + }, + "in": "path" + }, + { + "name": "invoiceId", + "description": "Invoice unique ID", + "required": true, + "schema": { + "type": "string", + "x-example": "<INVOICE_ID>" }, "in": "path" } @@ -49221,88 +50490,106 @@ "schema": { "type": "object", "properties": { - "name": { + "paymentMethodId": { "type": "string", - "description": "Project name. Max length: 128 chars.", - "x-example": "<NAME>" + "description": "Payment method ID", + "x-example": "<PAYMENT_METHOD_ID>" } }, "required": [ - "name" + "paymentMethodId" ] } } } } - }, - "delete": { - "summary": "Delete organization project", - "operationId": "organizationDeleteProject", + } + }, + "\/organizations\/{organizationId}\/invoices\/{invoiceId}\/status": { + "patch": { + "summary": "Validate the payment for an invoice and update status", + "operationId": "organizationsValidateInvoice", "tags": [ - "organization" + "organizations" ], - "description": "Delete a project by its unique ID.", + "description": "Validates the payment linked with the invoice and updates the invoice status if the payment status is changed.", "responses": { - "204": { - "description": "No content" + "200": { + "description": "Invoice", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/invoice" + } + } + } } }, "deprecated": false, "x-appwrite": { - "method": "deleteProject", - "group": "projects", + "method": "validateInvoice", + "group": null, "cookies": false, "type": "", - "demo": "organization\/delete-project.md", + "demo": "organizations\/validate-invoice.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "projects.write", + "scope": "billing.write", "platforms": [ - "console", - "server" + "console" ], "packaging": false, "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/organizations\/update-invoice-status.md", "auth": { "Project": [] } }, "security": [ { - "Project": [], - "Key": [] + "Project": [] } ], "parameters": [ { - "name": "projectId", - "description": "Project unique ID.", + "name": "organizationId", + "description": "Organization ID", "required": true, "schema": { "type": "string", - "x-example": "<PROJECT_ID>" + "x-example": "<ORGANIZATION_ID>" + }, + "in": "path" + }, + { + "name": "invoiceId", + "description": "Invoice unique ID", + "required": true, + "schema": { + "type": "string", + "x-example": "<INVOICE_ID>" }, "in": "path" } ] } }, - "\/organizations": { + "\/organizations\/{organizationId}\/invoices\/{invoiceId}\/view": { "get": { - "summary": "List Orgnizations", - "operationId": "organizationsList", + "summary": "View invoice in PDF", + "operationId": "organizationsGetInvoiceView", "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.", + "description": "View invoice in PDF", "responses": { "200": { - "description": "Organizations list", + "description": "paymentMethod", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/organizationList" + "$ref": "#\/components\/schemas\/paymentMethod" } } } @@ -49310,78 +50597,71 @@ }, "deprecated": false, "x-appwrite": { - "method": "list", + "method": "getInvoiceView", "group": null, "cookies": false, - "type": "", - "demo": "organizations\/list.md", + "type": "location", + "demo": "organizations\/get-invoice-view.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "teams.read", + "scope": "billing.read", "platforms": [ "console" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/teams\/list-teams.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/organizations\/get-invoice-view.md", "auth": { - "Project": [] + "Project": [], + "ImpersonateUserId": [] } }, "security": [ { - "Project": [] + "Project": [], + "ImpersonateUserId": [] } ], "parameters": [ { - "name": "queries", - "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more 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, + "name": "organizationId", + "description": "Organization ID", + "required": true, "schema": { - "type": "array", - "items": { - "type": "string" - }, - "default": [] + "type": "string", + "x-example": "<ORGANIZATION_ID>" }, - "in": "query" + "in": "path" }, { - "name": "search", - "description": "Search term to filter your list results. Max length: 256 chars.", - "required": false, + "name": "invoiceId", + "description": "Invoice unique ID", + "required": true, "schema": { "type": "string", - "x-example": "<SEARCH>", - "default": "" + "x-example": "<INVOICE_ID>" }, - "in": "query" + "in": "path" } ] - }, - "post": { - "summary": "Create Organization", - "operationId": "organizationsCreate", + } + }, + "\/organizations\/{organizationId}\/payment-method": { + "patch": { + "summary": "Set team's payment method", + "operationId": "organizationsSetDefaultPaymentMethod", "tags": [ "organizations" ], - "description": "Create a new organization.\n", + "description": "Set a organization's default payment method.", "responses": { - "201": { - "description": "Organization, or PaymentAuthentication", + "200": { + "description": "Organization", "content": { "application\/json": { "schema": { - "oneOf": [ - { - "$ref": "#\/components\/schemas\/organization" - }, - { - "$ref": "#\/components\/schemas\/paymentAuthentication" - } - ] + "$ref": "#\/components\/schemas\/organization" } } } @@ -49389,21 +50669,21 @@ }, "deprecated": false, "x-appwrite": { - "method": "create", + "method": "setDefaultPaymentMethod", "group": null, "cookies": false, "type": "", - "demo": "organizations\/create.md", - "rate-limit": 10, + "demo": "organizations\/set-default-payment-method.md", + "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "teams.write", + "scope": "billing.write", "platforms": [ "console" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/teams\/create-team.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/organizations\/set-default-payment-method.md", "auth": { "Project": [] } @@ -49413,113 +50693,112 @@ "Project": [] } ], + "parameters": [ + { + "name": "organizationId", + "description": "Organization ID", + "required": true, + "schema": { + "type": "string", + "x-example": "<ORGANIZATION_ID>" + }, + "in": "path" + } + ], "requestBody": { "content": { "application\/json": { "schema": { "type": "object", "properties": { - "organizationId": { - "type": "string", - "description": "Organization ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.", - "x-example": "<ORGANIZATION_ID>", - "x-appwrite": { - "idGenerator": "ID.unique" - } - }, - "name": { - "type": "string", - "description": "Organization name. Max length: 128 chars.", - "x-example": "<NAME>" - }, - "billingPlan": { - "type": "string", - "description": "Organization billing plan chosen", - "x-example": "tier-0" - }, "paymentMethodId": { "type": "string", - "description": "Payment method ID. Required for pro plans when trial is not available and user doesn't have default payment method set.", - "x-example": "<PAYMENT_METHOD_ID>", - "x-nullable": true - }, - "billingAddressId": { - "type": "string", - "description": "Unique ID of billing address", - "default": "", - "x-example": "<BILLING_ADDRESS_ID>", - "x-nullable": true - }, - "invites": { - "type": "array", - "description": "Additional member invites", - "default": [], - "x-example": null, - "items": { - "type": "string" - } - }, - "couponId": { - "type": "string", - "description": "Coupon id", - "x-example": "<COUPON_ID>", - "x-nullable": true - }, - "taxId": { - "type": "string", - "description": "Tax Id associated to billing.", - "x-example": "<TAX_ID>", - "x-nullable": true - }, - "budget": { - "type": "integer", - "description": "Budget limit for additional usage set for the organization", - "x-example": 0, - "format": "int32", - "x-nullable": true - }, - "platform": { - "type": "string", - "description": "Platform type", - "default": "appwrite", - "x-example": "appwrite", - "enum": [ - "appwrite", - "imagine" - ], - "x-enum-name": "Platform", - "x-enum-keys": [ - "appwrite", - "imagine" - ] + "description": "Unique ID of payment method", + "x-example": "<PAYMENT_METHOD_ID>" } }, "required": [ - "organizationId", - "name", - "billingPlan" + "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": { + "method": "deleteDefaultPaymentMethod", + "group": null, + "cookies": false, + "type": "", + "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, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/organizations\/delete-default-payment-method.md", + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [] + } + ], + "parameters": [ + { + "name": "organizationId", + "description": "Organization ID", + "required": true, + "schema": { + "type": "string", + "x-example": "<ORGANIZATION_ID>" + }, + "in": "path" + } + ] } }, - "\/organizations\/estimations\/create-organization": { + "\/organizations\/{organizationId}\/payment-method\/backup": { "patch": { - "summary": "Estimate create Organization", - "operationId": "organizationsEstimationCreateOrganization", + "summary": "Set team's backup payment method", + "operationId": "organizationsSetBackupPaymentMethod", "tags": [ "organizations" ], - "description": "Get estimation for creating an organization.", + "description": "Set an organization's backup payment method.\n", "responses": { "200": { - "description": "Estimation", + "description": "Organization", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/estimation" + "$ref": "#\/components\/schemas\/organization" } } } @@ -49527,21 +50806,21 @@ }, "deprecated": false, "x-appwrite": { - "method": "estimationCreateOrganization", + "method": "setBackupPaymentMethod", "group": null, "cookies": false, "type": "", - "demo": "organizations\/estimation-create-organization.md", - "rate-limit": 10, + "demo": "organizations\/set-backup-payment-method.md", + "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "teams.write", + "scope": "billing.write", "platforms": [ "console" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/organizations\/estimation-create-organization.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/organizations\/set-backup-payment-method.md", "auth": { "Project": [] } @@ -49551,96 +50830,74 @@ "Project": [] } ], + "parameters": [ + { + "name": "organizationId", + "description": "Organization ID", + "required": true, + "schema": { + "type": "string", + "x-example": "<ORGANIZATION_ID>" + }, + "in": "path" + } + ], "requestBody": { "content": { "application\/json": { "schema": { "type": "object", "properties": { - "billingPlan": { - "type": "string", - "description": "Organization billing plan chosen", - "x-example": "tier-0" - }, "paymentMethodId": { "type": "string", - "description": "Payment method ID. Required for pro plans when trial is not available and user doesn't have default payment method set.", - "x-example": "<PAYMENT_METHOD_ID>", - "x-nullable": true - }, - "invites": { - "type": "array", - "description": "Additional member invites", - "default": [], - "x-example": null, - "items": { - "type": "string" - } - }, - "couponId": { - "type": "string", - "description": "Coupon id", - "x-example": "<COUPON_ID>", - "x-nullable": true - }, - "platform": { - "type": "string", - "description": "Platform type", - "default": "appwrite", - "x-example": "appwrite", - "enum": [ - "appwrite", - "imagine" - ], - "x-enum-name": "Platform", - "x-enum-keys": [ - "appwrite", - "imagine" - ] + "description": "Unique ID of payment method", + "x-example": "<PAYMENT_METHOD_ID>" } }, "required": [ - "billingPlan" + "paymentMethodId" ] } } } } - } - }, - "\/organizations\/{organizationId}": { + }, "delete": { - "summary": "Delete team", - "operationId": "organizationsDelete", + "summary": "Delete team's backup payment method", + "operationId": "organizationsDeleteBackupPaymentMethod", "tags": [ "organizations" ], - "description": "Delete an organization.", + "description": "Delete a backup payment method for an organization.", "responses": { - "204": { - "description": "No content" + "200": { + "description": "Organization", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/organization" + } + } + } } }, "deprecated": false, "x-appwrite": { - "method": "delete", + "method": "deleteBackupPaymentMethod", "group": null, "cookies": false, "type": "", - "demo": "organizations\/delete.md", + "demo": "organizations\/delete-backup-payment-method.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "organizations.write", + "scope": "billing.write", "platforms": [ "console" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/teams\/delete-team.md", - "produces": [ - "application\/json" - ], + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/organizations\/delete-backup-payment-method.md", "auth": { "Project": [] } @@ -49653,7 +50910,7 @@ "parameters": [ { "name": "organizationId", - "description": "Team ID.", + "description": "Organization ID", "required": true, "schema": { "type": "string", @@ -49664,21 +50921,21 @@ ] } }, - "\/organizations\/{organizationId}\/addons": { + "\/organizations\/{organizationId}\/payment-methods\/{paymentMethodId}": { "get": { - "summary": "List addons", - "operationId": "organizationsListAddons", + "summary": "Get payment method", + "operationId": "organizationsGetPaymentMethod", "tags": [ "organizations" ], - "description": "List all billing addons for an organization.\n", + "description": "Get an organization's payment method using it's payment method ID.", "responses": { "200": { - "description": "Addons list", + "description": "paymentMethod", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/addonList" + "$ref": "#\/components\/schemas\/paymentMethod" } } } @@ -49686,11 +50943,11 @@ }, "deprecated": false, "x-appwrite": { - "method": "listAddons", + "method": "getPaymentMethod", "group": null, "cookies": false, "type": "", - "demo": "organizations\/list-addons.md", + "demo": "organizations\/get-payment-method.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", @@ -49700,7 +50957,7 @@ ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/organizations\/list-addons.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/organizations\/get-payment-method.md", "auth": { "Project": [] } @@ -49720,25 +50977,35 @@ "x-example": "<ORGANIZATION_ID>" }, "in": "path" + }, + { + "name": "paymentMethodId", + "description": "Unique ID of payment method", + "required": true, + "schema": { + "type": "string", + "x-example": "<PAYMENT_METHOD_ID>" + }, + "in": "path" } ] } }, - "\/organizations\/{organizationId}\/addons\/baa": { - "post": { - "summary": "Create BAA addon", - "operationId": "organizationsCreateBaaAddon", + "\/organizations\/{organizationId}\/plan": { + "get": { + "summary": "Get organization billing plan details", + "operationId": "organizationsGetPlan", "tags": [ "organizations" ], - "description": "Create the BAA billing addon for an organization.\n", + "description": "Get the details of the current billing plan for an organization.", "responses": { - "201": { - "description": "Addon", + "200": { + "description": "billingPlan", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/addon" + "$ref": "#\/components\/schemas\/billingPlan" } } } @@ -49746,21 +51013,21 @@ }, "deprecated": false, "x-appwrite": { - "method": "createBaaAddon", + "method": "getPlan", "group": null, "cookies": false, "type": "", - "demo": "organizations\/create-baa-addon.md", - "rate-limit": 10, + "demo": "organizations\/get-plan.md", + "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "billing.write", + "scope": "teams.read", "platforms": [ "console" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/organizations\/create-baa-addon.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/organizations\/get-plan.md", "auth": { "Project": [] } @@ -49773,7 +51040,7 @@ "parameters": [ { "name": "organizationId", - "description": "Organization ID", + "description": "Organization Unique ID", "required": true, "schema": { "type": "string", @@ -49782,23 +51049,21 @@ "in": "path" } ] - } - }, - "\/organizations\/{organizationId}\/addons\/premium-geo-db": { - "post": { - "summary": "Create Premium Geo DB addon", - "operationId": "organizationsCreatePremiumGeoDBAddon", + }, + "patch": { + "summary": "Update organization billing plan", + "operationId": "organizationsUpdatePlan", "tags": [ "organizations" ], - "description": "Create a Premium Geo DB addon for an organization.\n", + "description": "Update the billing plan for an organization.", "responses": { - "201": { - "description": "Addon", + "200": { + "description": "Organization", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/addon" + "$ref": "#\/components\/schemas\/organization" } } } @@ -49806,11 +51071,11 @@ }, "deprecated": false, "x-appwrite": { - "method": "createPremiumGeoDBAddon", + "method": "updatePlan", "group": null, "cookies": false, "type": "", - "demo": "organizations\/create-premium-geo-db-addon.md", + "demo": "organizations\/update-plan.md", "rate-limit": 10, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", @@ -49820,7 +51085,7 @@ ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/organizations\/create-premium-geo-db-addon.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/organizations\/update-plan.md", "auth": { "Project": [] } @@ -49833,7 +51098,7 @@ "parameters": [ { "name": "organizationId", - "description": "Organization ID", + "description": "Organization Unique ID", "required": true, "schema": { "type": "string", @@ -49841,24 +51106,83 @@ }, "in": "path" } - ] - } - }, - "\/organizations\/{organizationId}\/addons\/{addonId}": { - "get": { - "summary": "Get addon", - "operationId": "organizationsGetAddon", + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "billingPlan": { + "type": "string", + "description": "Organization billing plan chosen", + "x-example": "tier-0" + }, + "paymentMethodId": { + "type": "string", + "description": "Payment method ID. Required for pro plans when trial is not available and user doesn't have default payment method set.", + "x-example": "<PAYMENT_METHOD_ID>", + "x-nullable": true + }, + "billingAddressId": { + "type": "string", + "description": "Unique ID of billing address", + "default": "", + "x-example": "<BILLING_ADDRESS_ID>" + }, + "invites": { + "type": "array", + "description": "Additional member invites", + "default": [], + "x-example": null, + "items": { + "type": "string" + } + }, + "couponId": { + "type": "string", + "description": "Coupon id", + "x-example": "<COUPON_ID>", + "x-nullable": true + }, + "taxId": { + "type": "string", + "description": "Tax Id associated to billing.", + "x-example": "<TAX_ID>", + "x-nullable": true + }, + "budget": { + "type": "integer", + "description": "Budget limit for additional usage set for the organization", + "x-example": 0, + "format": "int32", + "x-nullable": true + } + }, + "required": [ + "billingPlan" + ] + } + } + } + } + } + }, + "\/organizations\/{organizationId}\/plan\/cancel": { + "patch": { + "summary": "Cancel organization plan change", + "operationId": "organizationsCancelDowngrade", "tags": [ "organizations" ], - "description": "Get the details of a billing addon for an organization.\n", + "description": "Cancel the downgrade initiated for an organization.", "responses": { "200": { - "description": "Addon", + "description": "Organization", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/addon" + "$ref": "#\/components\/schemas\/organization" } } } @@ -49866,21 +51190,21 @@ }, "deprecated": false, "x-appwrite": { - "method": "getAddon", + "method": "cancelDowngrade", "group": null, "cookies": false, "type": "", - "demo": "organizations\/get-addon.md", + "demo": "organizations\/cancel-downgrade.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "billing.read", + "scope": "billing.write", "platforms": [ "console" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/organizations\/get-addon.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/organizations\/cancel-downgrade.md", "auth": { "Project": [] } @@ -49893,46 +51217,45 @@ "parameters": [ { "name": "organizationId", - "description": "Organization ID", + "description": "Organization Unique ID", "required": true, "schema": { "type": "string", "x-example": "<ORGANIZATION_ID>" }, "in": "path" - }, - { - "name": "addonId", - "description": "Addon ID", - "required": true, - "schema": { - "type": "string", - "x-example": "<ADDON_ID>" - }, - "in": "path" } ] - }, - "delete": { - "summary": "Delete addon", - "operationId": "organizationsDeleteAddon", + } + }, + "\/organizations\/{organizationId}\/plan\/estimations": { + "post": { + "summary": "Create billing plan estimation (upgrade or downgrade)", + "operationId": "organizationsCreatePlanEstimation", "tags": [ "organizations" ], - "description": "Delete a billing addon for an organization.\n", + "description": "Create a billing plan estimation for upgrading or downgrading an organization plan.\n", "responses": { - "204": { - "description": "No content" + "200": { + "description": "EstimationPlanChange", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/estimationPlanChange" + } + } + } } }, "deprecated": false, "x-appwrite": { - "method": "deleteAddon", + "method": "createPlanEstimation", "group": null, "cookies": false, "type": "", - "demo": "organizations\/delete-addon.md", - "rate-limit": 10, + "demo": "organizations\/create-plan-estimation.md", + "rate-limit": 120, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", "scope": "billing.write", @@ -49941,10 +51264,7 @@ ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/organizations\/delete-addon.md", - "produces": [ - "application\/json" - ], + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/organizations\/create-plan-estimation.md", "auth": { "Project": [] } @@ -49964,35 +51284,59 @@ "x-example": "<ORGANIZATION_ID>" }, "in": "path" - }, - { - "name": "addonId", - "description": "Addon ID", - "required": true, - "schema": { - "type": "string", - "x-example": "<ADDON_ID>" - }, - "in": "path" } - ] + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "billingPlan": { + "type": "string", + "description": "Target billing plan", + "x-example": "tier-0" + }, + "invites": { + "type": "array", + "description": "Additional member invites", + "default": [], + "x-example": null, + "items": { + "type": "string" + } + }, + "couponId": { + "type": "string", + "description": "Coupon id", + "x-example": "<COUPON_ID>", + "x-nullable": true + } + }, + "required": [ + "billingPlan" + ] + } + } + } + } } }, - "\/organizations\/{organizationId}\/addons\/{addonId}\/confirmations": { - "post": { - "summary": "Confirm addon payment after 3DS authentication", - "operationId": "organizationsConfirmAddonPayment", + "\/organizations\/{organizationId}\/regions": { + "get": { + "summary": "List Regions", + "operationId": "organizationsListRegions", "tags": [ "organizations" ], - "description": "Confirm payment for a billing addon for an organization.\n", + "description": "Get all available regions for an organization.", "responses": { "200": { - "description": "Addon", + "description": "Regions list", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/addon" + "$ref": "#\/components\/schemas\/consoleRegionList" } } } @@ -50000,21 +51344,21 @@ }, "deprecated": false, "x-appwrite": { - "method": "confirmAddonPayment", + "method": "listRegions", "group": null, "cookies": false, "type": "", - "demo": "organizations\/confirm-addon-payment.md", - "rate-limit": 10, + "demo": "organizations\/list-regions.md", + "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "billing.write", + "scope": "projects.read", "platforms": [ "console" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/organizations\/confirm-addon-payment.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/organizations\/list-regions.md", "auth": { "Project": [] } @@ -50027,42 +51371,32 @@ "parameters": [ { "name": "organizationId", - "description": "Organization ID", + "description": "Team ID.", "required": true, "schema": { "type": "string", "x-example": "<ORGANIZATION_ID>" }, "in": "path" - }, - { - "name": "addonId", - "description": "Addon ID", - "required": true, - "schema": { - "type": "string", - "x-example": "<ADDON_ID>" - }, - "in": "path" } ] } }, - "\/organizations\/{organizationId}\/addons\/{addon}\/price": { + "\/organizations\/{organizationId}\/roles": { "get": { - "summary": "Get addon price", - "operationId": "organizationsGetAddonPrice", + "summary": "Get Scopes", + "operationId": "organizationsGetScopes", "tags": [ "organizations" ], - "description": "Get the price details for a billing addon for an organization.\n", + "description": "Get Scopes", "responses": { "200": { - "description": "AddonPrice", + "description": "Roles", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/addonPrice" + "$ref": "#\/components\/schemas\/roles" } } } @@ -50070,21 +51404,21 @@ }, "deprecated": false, "x-appwrite": { - "method": "getAddonPrice", + "method": "getScopes", "group": null, "cookies": false, "type": "", - "demo": "organizations\/get-addon-price.md", + "demo": "organizations\/get-scopes.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "billing.read", + "scope": "teams.read", "platforms": [ "console" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/organizations\/get-addon-price.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/organizations\/get-scopes.md", "auth": { "Project": [] } @@ -50097,7 +51431,7 @@ "parameters": [ { "name": "organizationId", - "description": "Organization ID", + "description": "Organization id", "required": true, "schema": { "type": "string", @@ -50106,46 +51440,34 @@ "in": "path" }, { - "name": "addon", - "description": "Addon key identifier (e.g. baa).", - "required": true, + "name": "projectId", + "description": "Project id", + "required": false, "schema": { "type": "string", - "x-example": "baa", - "enum": [ - "baa", - "premiumgeodb", - "premiumgeodborg", - "backup_recovery" - ], - "x-enum-name": "Addon", - "x-enum-keys": [ - "baa", - "premiumgeodb", - "premiumgeodborg", - "backup_recovery" - ] + "x-example": "<PROJECT_ID>", + "default": "" }, - "in": "path" + "in": "query" } ] } }, - "\/organizations\/{organizationId}\/aggregations": { - "get": { - "summary": "List aggregations", - "operationId": "organizationsListAggregations", + "\/organizations\/{organizationId}\/taxId": { + "patch": { + "summary": "Set team's tax Id", + "operationId": "organizationsSetBillingTaxId", "tags": [ "organizations" ], - "description": "Get a list of all aggregations for an organization.", + "description": "Set an organization's billing tax ID.", "responses": { "200": { - "description": "Aggregation team list", + "description": "Organization", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/aggregationTeamList" + "$ref": "#\/components\/schemas\/organization" } } } @@ -50153,21 +51475,21 @@ }, "deprecated": false, "x-appwrite": { - "method": "listAggregations", + "method": "setBillingTaxId", "group": null, "cookies": false, "type": "", - "demo": "organizations\/list-aggregations.md", + "demo": "organizations\/set-billing-tax-id.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "teams.read", + "scope": "billing.write", "platforms": [ "console" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/organizations\/list-aggregations.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/organizations\/set-billing-tax-id.md", "auth": { "Project": [] } @@ -50187,38 +51509,45 @@ "x-example": "<ORGANIZATION_ID>" }, "in": "path" - }, - { - "name": "queries", - "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/databases#querying-documents). Maximum of 100 queries are allowed, each 4096 characters long. You may filter on the following attributes: teamId, aggregationId, from, to", - "required": false, - "schema": { - "type": "array", - "items": { - "type": "string" - }, - "default": [] - }, - "in": "query" } - ] + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "taxId": { + "type": "string", + "description": "Tax Id associated to billing.", + "x-example": "<TAX_ID>", + "x-nullable": true + } + }, + "required": [ + "taxId" + ] + } + } + } + } } }, - "\/organizations\/{organizationId}\/aggregations\/{aggregationId}": { + "\/organizations\/{organizationId}\/usage": { "get": { - "summary": "Get aggregation", - "operationId": "organizationsGetAggregation", + "summary": "Get team's usage data", + "operationId": "organizationsGetUsage", "tags": [ "organizations" ], - "description": "Get a specific aggregation using it's aggregation ID.", + "description": "Get the usage data for an organization.", "responses": { "200": { - "description": "Team", + "description": "Organization", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/aggregationTeam" + "$ref": "#\/components\/schemas\/usageOrganization" } } } @@ -50226,11 +51555,11 @@ }, "deprecated": false, "x-appwrite": { - "method": "getAggregation", + "method": "getUsage", "group": null, "cookies": false, "type": "", - "demo": "organizations\/get-aggregation.md", + "demo": "organizations\/get-usage.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", @@ -50240,7 +51569,7 @@ ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/organizations\/get-aggregation.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/organizations\/get-usage.md", "auth": { "Project": [] } @@ -50262,49 +51591,38 @@ "in": "path" }, { - "name": "aggregationId", - "description": "Invoice unique ID", - "required": true, - "schema": { - "type": "string", - "x-example": "<AGGREGATION_ID>" - }, - "in": "path" - }, - { - "name": "limit", - "description": "Maximum number of project aggregations to return in response. By default will return maximum 5 results. Maximum of 10 results allowed per request.", + "name": "startDate", + "description": "Starting date for the usage", "required": false, "schema": { - "type": "integer", - "format": "int32", - "x-example": 0, - "default": 5 + "type": "string", + "format": "datetime", + "x-example": "2020-10-15T06:38:00.000+00:00" }, "in": "query" }, { - "name": "offset", - "description": "Offset value. The default value is 0. Use this param to manage pagination.", + "name": "endDate", + "description": "End date for the usage", "required": false, "schema": { - "type": "integer", - "format": "int32", - "default": 0 + "type": "string", + "format": "datetime", + "x-example": "2020-10-15T06:38:00.000+00:00" }, "in": "query" } ] } }, - "\/organizations\/{organizationId}\/billing-address": { + "\/organizations\/{organizationId}\/validate": { "patch": { - "summary": "Set team's billing address", - "operationId": "organizationsSetBillingAddress", + "summary": "Validate payment for the organization after creation or upgrade", + "operationId": "organizationsValidatePayment", "tags": [ "organizations" ], - "description": "Set a billing address for an organization.", + "description": "Validate payment for team after creation or upgrade.", "responses": { "200": { "description": "Organization", @@ -50319,21 +51637,21 @@ }, "deprecated": false, "x-appwrite": { - "method": "setBillingAddress", + "method": "validatePayment", "group": null, "cookies": false, "type": "", - "demo": "organizations\/set-billing-address.md", + "demo": "organizations\/validate-payment.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "billing.write", + "scope": "teams.read", "platforms": [ "console" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/organizations\/set-billing-address.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/organizations\/validate-payment.md", "auth": { "Project": [] } @@ -50361,90 +51679,89 @@ "schema": { "type": "object", "properties": { - "billingAddressId": { - "type": "string", - "description": "Unique ID of billing address", - "x-example": "<BILLING_ADDRESS_ID>" + "invites": { + "type": "array", + "description": "Additional member invites", + "default": [], + "x-example": null, + "items": { + "type": "string" + } } - }, - "required": [ - "billingAddressId" - ] + } } } } } - }, - "delete": { - "summary": "Delete team's billing address", - "operationId": "organizationsDeleteBillingAddress", + } + }, + "\/ping": { + "get": { + "summary": "Test the connection between the Appwrite and the SDK.", + "operationId": "pingGet", "tags": [ - "organizations" + "ping" ], - "description": "Delete a team's billing address.", + "description": "Send a ping to project as part of onboarding.", "responses": { - "204": { - "description": "No content" + "200": { + "description": "Any", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/any" + } + } + } } }, "deprecated": false, "x-appwrite": { - "method": "deleteBillingAddress", + "method": "get", "group": null, "cookies": false, "type": "", - "demo": "organizations\/delete-billing-address.md", + "demo": "ping\/get.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "billing.write", + "scope": "global", "platforms": [ - "console" + "console", + "server", + "client" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/organizations\/delete-billing-address.md", - "produces": [ - "application\/json" - ], "auth": { "Project": [] } }, "security": [ { - "Project": [] - } - ], - "parameters": [ - { - "name": "organizationId", - "description": "Organization ID", - "required": true, - "schema": { - "type": "string", - "x-example": "<ORGANIZATION_ID>" - }, - "in": "path" + "Project": [], + "Key": [], + "JWT": [], + "Session": [] } ] } }, - "\/organizations\/{organizationId}\/billing-addresses\/{billingAddressId}": { + "\/postgresql": { "get": { - "summary": "Get billing address", - "operationId": "organizationsGetBillingAddress", + "summary": "List dedicated databases.", + "operationId": "postgresqlList", "tags": [ - "organizations" + "postgresql" ], - "description": "Get a billing address using it's ID.", + "description": "List all dedicated databases. Results support pagination.", "responses": { "200": { - "description": "Address", + "description": "Dedicated databases list", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/billingAddress" + "$ref": "#\/components\/schemas\/dedicatedDatabaseList" } } } @@ -50452,69 +51769,61 @@ }, "deprecated": false, "x-appwrite": { - "method": "getBillingAddress", - "group": null, + "method": "list", + "group": "databases", "cookies": false, "type": "", - "demo": "organizations\/get-billing-address.md", + "demo": "postgresql\/list.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "billing.read", + "scope": "databases.read", "platforms": [ - "console" + "console", + "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/organizations\/get-billing-address.md", "auth": { "Project": [] } }, "security": [ { - "Project": [] + "Project": [], + "Key": [] } ], "parameters": [ { - "name": "organizationId", - "description": "Organization ID", - "required": true, - "schema": { - "type": "string", - "x-example": "<ORGANIZATION_ID>" - }, - "in": "path" - }, - { - "name": "billingAddressId", - "description": "Unique ID of billing address", - "required": true, + "name": "queries", + "description": "Array of query strings.", + "required": false, "schema": { - "type": "string", - "x-example": "<BILLING_ADDRESS_ID>" + "type": "array", + "items": { + "type": "string" + }, + "default": [] }, - "in": "path" + "in": "query" } ] - } - }, - "\/organizations\/{organizationId}\/billing-email": { - "patch": { - "summary": "Set team's billing email", - "operationId": "organizationsSetBillingEmail", - "tags": [ - "organizations" + }, + "post": { + "summary": "Create a dedicated database.", + "operationId": "postgresqlCreate", + "tags": [ + "postgresql" ], - "description": "Set the current billing email for the organization.", + "description": "Create a new dedicated database with the chosen engine and configuration. Status will be 'provisioning' until the database is ready.", "responses": { - "200": { - "description": "Organization", + "201": { + "description": "DedicatedDatabase", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/organization" + "$ref": "#\/components\/schemas\/dedicatedDatabase" } } } @@ -50522,40 +51831,29 @@ }, "deprecated": false, "x-appwrite": { - "method": "setBillingEmail", - "group": null, + "method": "create", + "group": "databases", "cookies": false, "type": "", - "demo": "organizations\/set-billing-email.md", + "demo": "postgresql\/create.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "billing.write", + "scope": "databases.write", "platforms": [ - "console" + "console", + "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/organizations\/set-billing-email.md", "auth": { "Project": [] } }, "security": [ { - "Project": [] - } - ], - "parameters": [ - { - "name": "organizationId", - "description": "Organization ID", - "required": true, - "schema": { - "type": "string", - "x-example": "<ORGANIZATION_ID>" - }, - "in": "path" + "Project": [], + "Key": [] } ], "requestBody": { @@ -50564,15 +51862,115 @@ "schema": { "type": "object", "properties": { - "billingEmail": { + "databaseId": { "type": "string", - "description": "Billing email for the organization.", - "x-example": "email@example.com", - "format": "email" + "description": "Database ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.", + "x-example": "<DATABASE_ID>", + "x-appwrite": { + "idGenerator": "ID.unique" + } + }, + "name": { + "type": "string", + "description": "Database display name. Max length: 128 chars.", + "x-example": "<NAME>" + }, + "version": { + "type": "string", + "description": "Database engine version. Defaults to latest for selected engine.", + "x-example": "17", + "x-nullable": true + }, + "specification": { + "type": "string", + "description": "Specification identifier. Drives the allocated CPU, memory, storage, storage class, and connection ceiling.", + "default": "s-1vcpu-1gb", + "x-example": "<SPECIFICATION>" + }, + "replicas": { + "type": "integer", + "description": "Number of high availability replicas (0-5). High availability is enabled when greater than 0.", + "default": 0, + "x-example": 0, + "format": "int32" + }, + "syncMode": { + "type": "string", + "description": "Replication sync mode preference. Allowed values: async, sync, quorum.", + "x-example": "async", + "x-nullable": true + }, + "standbyRegion": { + "type": "string", + "description": "Standby region for a cross-region replica. When set, a replica is provisioned in this region for cross-region high availability. Must differ from the database region.", + "x-example": "<STANDBY_REGION>", + "x-nullable": true + }, + "networkIdleTimeoutSeconds": { + "type": "integer", + "description": "Connection idle timeout in seconds.", + "default": 900, + "x-example": 60, + "format": "int32" + }, + "networkIPAllowlist": { + "type": "array", + "description": "IP addresses\/CIDR ranges allowed to connect.", + "x-example": null, + "items": { + "type": "string" + }, + "x-nullable": true + }, + "idleTimeoutMinutes": { + "type": "integer", + "description": "Minutes of inactivity before container scales to zero.", + "default": 15, + "x-example": 5, + "format": "int32" + }, + "pitr": { + "type": "boolean", + "description": "Enable point-in-time recovery (PITR). Continuously archives changes so the database can be restored to any moment within the retention window.", + "default": true, + "x-example": false + }, + "pitrRetentionDays": { + "type": "integer", + "description": "Number of days to retain PITR data.", + "default": 7, + "x-example": 1, + "format": "int32" + }, + "storageAutoscaling": { + "type": "boolean", + "description": "Enable automatic storage expansion when usage exceeds threshold.", + "default": false, + "x-example": false + }, + "storageAutoscalingThresholdPercent": { + "type": "integer", + "description": "Storage usage percentage (50-95) that triggers automatic expansion.", + "default": 85, + "x-example": 50, + "format": "int32" + }, + "storageAutoscalingMaxGb": { + "type": "integer", + "description": "Maximum storage size in GB for autoscaling. 0 means no limit.", + "default": 0, + "x-example": 0, + "format": "int32" + }, + "api": { + "type": "string", + "description": "Product API that owns this database: tablesdb, documentsdb, or vectorsdb. Omit for a raw database reached directly; its api is its engine. tablesdb\/documentsdb\/vectorsdb databases are reached only through their product APIs.", + "x-example": "tablesdb" } }, "required": [ - "billingEmail" + "databaseId", + "name" ] } } @@ -50580,21 +51978,21 @@ } } }, - "\/organizations\/{organizationId}\/budget": { - "patch": { - "summary": "Update organization budget", - "operationId": "organizationsUpdateBudget", + "\/postgresql\/specifications": { + "get": { + "summary": "List dedicated database specifications.", + "operationId": "postgresqlListSpecifications", "tags": [ - "organizations" + "postgresql" ], - "description": "Update the budget limit for an organization.", + "description": "List the dedicated database specifications available on the current plan. Each specification reports its resource limits, pricing, and whether it is enabled for the organization.", "responses": { "200": { - "description": "Organization", + "description": "SpecificationList", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/organization" + "$ref": "#\/components\/schemas\/dedicatedDatabaseSpecificationList" } } } @@ -50602,91 +52000,48 @@ }, "deprecated": false, "x-appwrite": { - "method": "updateBudget", - "group": null, + "method": "listSpecifications", + "group": "databases", "cookies": false, "type": "", - "demo": "organizations\/update-budget.md", + "demo": "postgresql\/list-specifications.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "billing.write", + "scope": "databases.read", "platforms": [ - "console" + "console", + "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/organizations\/update-budget.md", "auth": { "Project": [] } }, "security": [ { - "Project": [] - } - ], - "parameters": [ - { - "name": "organizationId", - "description": "Organization Unique ID", - "required": true, - "schema": { - "type": "string", - "x-example": "<ORGANIZATION_ID>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "budget": { - "type": "integer", - "description": "Budget limit for additional usage set for the organization", - "x-example": 0, - "format": "int32", - "x-nullable": true - }, - "alerts": { - "type": "array", - "description": "Budget alert limit percentage", - "default": [ - 75 - ], - "x-example": null, - "items": { - "type": "integer" - } - } - }, - "required": [ - "budget" - ] - } - } + "Project": [], + "Key": [] } - } + ] } }, - "\/organizations\/{organizationId}\/credits": { + "\/postgresql\/{databaseId}": { "get": { - "summary": "List credits", - "operationId": "organizationsListCredits", + "summary": "Get dedicated database.", + "operationId": "postgresqlGet", "tags": [ - "organizations" + "postgresql" ], - "description": "List all credits for an organization.\n", + "description": "Get a dedicated database by its unique ID. Returns the database configuration and current status.", "responses": { "200": { - "description": "CreditList", + "description": "DedicatedDatabase", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/creditList" + "$ref": "#\/components\/schemas\/dedicatedDatabase" } } } @@ -50694,70 +52049,58 @@ }, "deprecated": false, "x-appwrite": { - "method": "listCredits", - "group": null, + "method": "get", + "group": "databases", "cookies": false, "type": "", - "demo": "organizations\/list-credits.md", + "demo": "postgresql\/get.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "billing.read", + "scope": "databases.read", "platforms": [ - "console" + "console", + "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/organizations\/list-credits.md", "auth": { "Project": [] } }, "security": [ { - "Project": [] + "Project": [], + "Key": [] } ], "parameters": [ { - "name": "organizationId", - "description": "Organization ID", + "name": "databaseId", + "description": "Database ID.", "required": true, "schema": { "type": "string", - "x-example": "<ORGANIZATION_ID>" + "x-example": "<DATABASE_ID>" }, "in": "path" - }, - { - "name": "queries", - "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/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", + "patch": { + "summary": "Update dedicated database.", + "operationId": "postgresqlUpdate", "tags": [ - "organizations" + "postgresql" ], - "description": "Add credit to an organization using a coupon.", + "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": { - "201": { - "description": "Credit", + "200": { + "description": "DedicatedDatabase", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/credit" + "$ref": "#\/components\/schemas\/dedicatedDatabase" } } } @@ -50765,38 +52108,39 @@ }, "deprecated": false, "x-appwrite": { - "method": "addCredit", - "group": null, + "method": "update", + "group": "databases", "cookies": false, "type": "", - "demo": "organizations\/add-credit.md", - "rate-limit": 10, + "demo": "postgresql\/update.md", + "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "billing.write", + "scope": "databases.write", "platforms": [ - "console" + "console", + "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/organizations\/add-credit.md", "auth": { "Project": [] } }, "security": [ { - "Project": [] + "Project": [], + "Key": [] } ], "parameters": [ { - "name": "organizationId", - "description": "Organization ID", + "name": "databaseId", + "description": "Database ID.", "required": true, "schema": { "type": "string", - "x-example": "<ORGANIZATION_ID>" + "x-example": "<DATABASE_ID>" }, "in": "path" } @@ -50807,96 +52151,233 @@ "schema": { "type": "object", "properties": { - "couponId": { + "name": { "type": "string", - "description": "ID of the coupon", - "x-example": "<COUPON_ID>" + "description": "Database display name.", + "x-example": "<NAME>", + "x-nullable": true + }, + "status": { + "type": "string", + "description": "Database status. Allowed values: ready, paused, inactive. Set to \"paused\" to pause, \"ready\" to resume (also recovers a failed database whose infrastructure is healthy), or \"inactive\" to spin down a shared-pool database.", + "x-example": "ready", + "x-nullable": true + }, + "specification": { + "type": "string", + "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.", + "x-example": "<SPECIFICATION>", + "x-nullable": true + }, + "replicas": { + "type": "integer", + "description": "Number of high availability replicas (0-5). High availability is enabled when greater than 0.", + "x-example": 0, + "format": "int32", + "x-nullable": true + }, + "syncMode": { + "type": "string", + "description": "Replication sync mode preference. Allowed values: async, sync, quorum.", + "x-example": "async", + "x-nullable": true + }, + "crossRegionReplicas": { + "type": "integer", + "description": "Number of cross-region standby replicas (0-1). Cross-region replication is enabled when greater than 0.", + "x-example": 0, + "format": "int32", + "x-nullable": true + }, + "standbyRegion": { + "type": "string", + "description": "Standby region for the cross-region replica. Required when enabling cross-region replication and no standby region is already configured. Must differ from the database region.", + "x-example": "<STANDBY_REGION>", + "x-nullable": true + }, + "networkIdleTimeoutSeconds": { + "type": "integer", + "description": "Connection idle timeout in seconds (60-86400).", + "x-example": 60, + "format": "int32", + "x-nullable": true + }, + "networkIPAllowlist": { + "type": "array", + "description": "IP addresses\/CIDR ranges allowed to connect.", + "x-example": null, + "items": { + "type": "string" + }, + "x-nullable": true + }, + "idleTimeoutMinutes": { + "type": "integer", + "description": "Minutes before container scales to zero.", + "x-example": 5, + "format": "int32", + "x-nullable": true + }, + "pitr": { + "type": "boolean", + "description": "Enable or disable point-in-time recovery (PITR).", + "x-example": false, + "x-nullable": true + }, + "pitrRetentionDays": { + "type": "integer", + "description": "Days to retain PITR data.", + "x-example": 1, + "format": "int32", + "x-nullable": true + }, + "storageAutoscaling": { + "type": "boolean", + "description": "Enable automatic storage expansion when usage exceeds threshold.", + "x-example": false, + "x-nullable": true + }, + "storageAutoscalingThresholdPercent": { + "type": "integer", + "description": "Storage usage percentage (50-95) that triggers automatic expansion.", + "x-example": 50, + "format": "int32", + "x-nullable": true + }, + "storageAutoscalingMaxGb": { + "type": "integer", + "description": "Maximum storage size in GB for autoscaling. 0 means no limit.", + "x-example": 0, + "format": "int32", + "x-nullable": true + }, + "metricsTraceSampleRate": { + "type": "number", + "description": "Fraction of queries to trace (0.0\u20131.0). Forwarded to the sidecar.", + "x-example": null, + "format": "float", + "x-nullable": true + }, + "metricsSlowQueryLogThresholdMs": { + "type": "integer", + "description": "Threshold in ms above which queries are logged as slow. Forwarded to the sidecar.", + "x-example": 0, + "format": "int32", + "x-nullable": true + }, + "sqlApiEnabled": { + "type": "boolean", + "description": "Enable the SQL API sidecar for this database.", + "x-example": false, + "x-nullable": true + }, + "sqlApiAllowedStatements": { + "type": "array", + "description": "Statement types the SQL API accepts. Allowed values: SELECT, INSERT, UPDATE, DELETE, CREATE, ALTER, DROP, TRUNCATE, GRANT, REVOKE.", + "x-example": null, + "items": { + "type": "string" + }, + "x-nullable": true + }, + "sqlApiMaxRows": { + "type": "integer", + "description": "Maximum rows returned per SQL API execution (1-1000000).", + "x-example": 1, + "format": "int32", + "x-nullable": true + }, + "sqlApiMaxBytes": { + "type": "integer", + "description": "Maximum serialised SQL API result payload in bytes (1024-104857600).", + "x-example": 1024, + "format": "int32", + "x-nullable": true + }, + "sqlApiTimeoutSeconds": { + "type": "integer", + "description": "Per-call SQL API execution timeout in seconds (1-300).", + "x-example": 1, + "format": "int32", + "x-nullable": true } - }, - "required": [ - "couponId" - ] + } } } } } - } - }, - "\/organizations\/{organizationId}\/credits\/available": { - "get": { - "summary": "Get available credits", - "operationId": "organizationsGetAvailableCredits", + }, + "delete": { + "summary": "Delete dedicated database.", + "operationId": "postgresqlDelete", "tags": [ - "organizations" + "postgresql" ], - "description": "Get total available valid credits for an organization.", + "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": { - "200": { - "description": "CreditAvailable", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/creditAvailable" - } - } - } + "204": { + "description": "No content" } }, "deprecated": false, "x-appwrite": { - "method": "getAvailableCredits", - "group": null, + "method": "delete", + "group": "databases", "cookies": false, "type": "", - "demo": "organizations\/get-available-credits.md", + "demo": "postgresql\/delete.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "billing.read", + "scope": "databases.write", "platforms": [ - "console" + "console", + "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/organizations\/get-available-credits.md", + "produces": [ + "application\/json" + ], "auth": { "Project": [] } }, "security": [ { - "Project": [] + "Project": [], + "Key": [] } ], "parameters": [ { - "name": "organizationId", - "description": "Organization ID", + "name": "databaseId", + "description": "Database ID.", "required": true, "schema": { "type": "string", - "x-example": "<ORGANIZATION_ID>" + "x-example": "<DATABASE_ID>" }, "in": "path" } ] } }, - "\/organizations\/{organizationId}\/credits\/{creditId}": { + "\/postgresql\/{databaseId}\/backups": { "get": { - "summary": "Get credit details", - "operationId": "organizationsGetCredit", + "summary": "List database backups.", + "operationId": "postgresqlListBackups", "tags": [ - "organizations" + "postgresql" ], - "description": "Get credit details.", + "description": "List all backups for a dedicated database. Results can be filtered by status and type.", "responses": { "200": { - "description": "Credit", + "description": "BackupList", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/credit" + "$ref": "#\/components\/schemas\/dedicatedDatabaseBackupList" } } } @@ -50904,69 +52385,71 @@ }, "deprecated": false, "x-appwrite": { - "method": "getCredit", - "group": null, + "method": "listBackups", + "group": "databases", "cookies": false, "type": "", - "demo": "organizations\/get-credit.md", + "demo": "postgresql\/list-backups.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "billing.read", + "scope": "databases.read", "platforms": [ - "console" + "console", + "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/organizations\/get-credit.md", "auth": { "Project": [] } }, "security": [ { - "Project": [] + "Project": [], + "Key": [] } ], "parameters": [ { - "name": "organizationId", - "description": "Organization ID", + "name": "databaseId", + "description": "Database ID.", "required": true, "schema": { "type": "string", - "x-example": "<ORGANIZATION_ID>" + "x-example": "<DATABASE_ID>" }, "in": "path" }, { - "name": "creditId", - "description": "Credit Unique ID", - "required": true, + "name": "queries", + "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/queries). Maximum of 100 queries are allowed, each 4096 characters long. You may filter on the following attributes: status, type, databaseId", + "required": false, "schema": { - "type": "string", - "x-example": "<CREDIT_ID>" + "type": "array", + "items": { + "type": "string" + }, + "default": [] }, - "in": "path" + "in": "query" } ] - } - }, - "\/organizations\/{organizationId}\/estimations\/delete-organization": { - "patch": { - "summary": "Estimate delete team", - "operationId": "organizationsEstimationDeleteOrganization", + }, + "post": { + "summary": "Create a database backup.", + "operationId": "postgresqlCreateBackup", "tags": [ - "organizations" + "postgresql" ], - "description": "Get estimation for deleting an organization.", + "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": { - "200": { - "description": "DeleteOrganization", + "202": { + "description": "Backup", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/estimationDeleteOrganization" + "$ref": "#\/components\/schemas\/dedicatedDatabaseBackup" } } } @@ -50974,59 +52457,77 @@ }, "deprecated": false, "x-appwrite": { - "method": "estimationDeleteOrganization", - "group": null, + "method": "createBackup", + "group": "databases", "cookies": false, "type": "", - "demo": "organizations\/estimation-delete-organization.md", - "rate-limit": 10, + "demo": "postgresql\/create-backup.md", + "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "organizations.write", + "scope": "databases.write", "platforms": [ - "console" + "console", + "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/organizations\/estimation-delete-organization.md", "auth": { "Project": [] } }, "security": [ { - "Project": [] + "Project": [], + "Key": [] } ], "parameters": [ { - "name": "organizationId", - "description": "Team ID.", + "name": "databaseId", + "description": "Database ID.", "required": true, "schema": { "type": "string", - "x-example": "<ORGANIZATION_ID>" + "x-example": "<DATABASE_ID>" }, "in": "path" } - ] + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "type": { + "type": "string", + "description": "Backup type: full or incremental.", + "default": "full", + "x-example": "full" + } + } + } + } + } + } } }, - "\/organizations\/{organizationId}\/estimations\/update-plan": { - "patch": { - "summary": "Estimate for update plan", - "operationId": "organizationsEstimationUpdatePlan", + "\/postgresql\/{databaseId}\/backups\/policies": { + "get": { + "summary": "List database backup policies.", + "operationId": "postgresqlListBackupPolicies", "tags": [ - "organizations" + "postgresql" ], - "description": "Get estimation for updating the organization plan.", + "description": "List scheduled backup policies for a dedicated database.", "responses": { "200": { - "description": "UpdatePlan", + "description": "Backup policy list", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/estimationUpdatePlan" + "$ref": "#\/components\/schemas\/backupPolicyList" } } } @@ -51034,93 +52535,71 @@ }, "deprecated": false, "x-appwrite": { - "method": "estimationUpdatePlan", - "group": null, + "method": "listBackupPolicies", + "group": "databases", "cookies": false, "type": "", - "demo": "organizations\/estimation-update-plan.md", - "rate-limit": 10, + "demo": "postgresql\/list-backup-policies.md", + "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "billing.write", + "scope": "databases.read", "platforms": [ - "console" + "console", + "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/organizations\/estimation-update-plan.md", "auth": { "Project": [] } }, "security": [ { - "Project": [] + "Project": [], + "Key": [] } ], "parameters": [ { - "name": "organizationId", - "description": "Organization ID", + "name": "databaseId", + "description": "Database ID.", "required": true, "schema": { "type": "string", - "x-example": "<ORGANIZATION_ID>" + "x-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" } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "billingPlan": { - "type": "string", - "description": "Organization billing plan chosen", - "x-example": "tier-0" - }, - "invites": { - "type": "array", - "description": "Additional member invites", - "default": [], - "x-example": null, - "items": { - "type": "string" - } - }, - "couponId": { - "type": "string", - "description": "Coupon id", - "x-example": "<COUPON_ID>", - "x-nullable": true - } - }, - "required": [ - "billingPlan" - ] - } - } - } - } - } - }, - "\/organizations\/{organizationId}\/feedbacks\/downgrade": { + ] + }, "post": { - "summary": "Create downgrade feedback", - "operationId": "organizationsCreateDowngradeFeedback", + "summary": "Create a database backup policy.", + "operationId": "postgresqlCreateBackupPolicy", "tags": [ - "organizations" + "postgresql" ], - "description": "Submit feedback about downgrading from a paid plan to a lower tier. This helps the team understand user experience and improve the platform.\n", + "description": "Create a scheduled backup policy for a dedicated database.", "responses": { "201": { - "description": "Downgrade Feedback", + "description": "backup", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/downgradeFeedback" + "$ref": "#\/components\/schemas\/backupPolicy" } } } @@ -51128,38 +52607,39 @@ }, "deprecated": false, "x-appwrite": { - "method": "createDowngradeFeedback", - "group": null, + "method": "createBackupPolicy", + "group": "databases", "cookies": false, "type": "", - "demo": "organizations\/create-downgrade-feedback.md", + "demo": "postgresql\/create-backup-policy.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "billing.write", + "scope": "databases.write", "platforms": [ - "console" + "console", + "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/organizations\/create-downgrade-feedback.md", "auth": { "Project": [] } }, "security": [ { - "Project": [] + "Project": [], + "Key": [] } ], "parameters": [ { - "name": "organizationId", - "description": "Organization Unique ID", + "name": "databaseId", + "description": "Database ID.", "required": true, "schema": { "type": "string", - "x-example": "<ORGANIZATION_ID>" + "x-example": "<DATABASE_ID>" }, "in": "path" } @@ -51170,32 +52650,48 @@ "schema": { "type": "object", "properties": { - "reason": { + "policyId": { "type": "string", - "description": "Feedback reason", - "x-example": "<REASON>" + "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.", + "x-example": "<POLICY_ID>", + "x-appwrite": { + "idGenerator": "ID.unique" + } }, - "message": { + "name": { "type": "string", - "description": "Feedback message", - "x-example": "<MESSAGE>" + "description": "Policy name. Max length: 128 chars.", + "x-example": "<NAME>" }, - "fromPlanId": { + "schedule": { "type": "string", - "description": "Plan downgrading from", - "x-example": "<FROM_PLAN_ID>" + "description": "Schedule CRON syntax.", + "x-example": null }, - "toPlanId": { + "retention": { + "type": "integer", + "description": "Days to keep backups before deletion.", + "x-example": 1, + "format": "int32" + }, + "type": { "type": "string", - "description": "Plan downgrading to", - "x-example": "<TO_PLAN_ID>" + "description": "Backup type: full or incremental.", + "default": "full", + "x-example": "full" + }, + "enabled": { + "type": "boolean", + "description": "Is policy enabled? When disabled, no backups will be taken.", + "default": true, + "x-example": false } }, "required": [ - "reason", - "message", - "fromPlanId", - "toPlanId" + "policyId", + "name", + "schedule", + "retention" ] } } @@ -51203,21 +52699,21 @@ } } }, - "\/organizations\/{organizationId}\/invoices": { + "\/postgresql\/{databaseId}\/backups\/policies\/{policyId}": { "get": { - "summary": "List invoices", - "operationId": "organizationsListInvoices", + "summary": "Get a database backup policy.", + "operationId": "postgresqlGetBackupPolicy", "tags": [ - "organizations" + "postgresql" ], - "description": "List all invoices for an organization.", + "description": "Get a scheduled backup policy for a dedicated database.", "responses": { "200": { - "description": "Billing invoices list", + "description": "backup", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/invoiceList" + "$ref": "#\/components\/schemas\/backupPolicy" } } } @@ -51225,72 +52721,68 @@ }, "deprecated": false, "x-appwrite": { - "method": "listInvoices", - "group": null, + "method": "getBackupPolicy", + "group": "databases", "cookies": false, "type": "", - "demo": "organizations\/list-invoices.md", + "demo": "postgresql\/get-backup-policy.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "billing.read", + "scope": "databases.read", "platforms": [ - "console" + "console", + "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/organizations\/list-invoices.md", "auth": { "Project": [] } }, "security": [ { - "Project": [] + "Project": [], + "Key": [] } ], "parameters": [ { - "name": "organizationId", - "description": "Organization ID", + "name": "databaseId", + "description": "Database ID.", "required": true, "schema": { "type": "string", - "x-example": "<ORGANIZATION_ID>" + "x-example": "<DATABASE_ID>" }, "in": "path" }, { - "name": "queries", - "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/databases#querying-documents). Maximum of 100 queries are allowed, each 4096 characters long. You may filter on the following attributes: teamId, aggregationId, type, amount, currency, from, to, dueAt, attempts, status, grossAmount", - "required": false, + "name": "policyId", + "description": "Policy ID.", + "required": true, "schema": { - "type": "array", - "items": { - "type": "string" - }, - "default": [] + "type": "string", + "x-example": "<POLICY_ID>" }, - "in": "query" + "in": "path" } ] - } - }, - "\/organizations\/{organizationId}\/invoices\/{invoiceId}": { - "get": { - "summary": "Get invoice", - "operationId": "organizationsGetInvoice", + }, + "patch": { + "summary": "Update a database backup policy.", + "operationId": "postgresqlUpdateBackupPolicy", "tags": [ - "organizations" + "postgresql" ], - "description": "Get an invoice by its unique ID.", + "description": "Update a scheduled backup policy for a dedicated database.", "responses": { "200": { - "description": "Invoice", + "description": "backup", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/invoice" + "$ref": "#\/components\/schemas\/backupPolicy" } } } @@ -51298,141 +52790,170 @@ }, "deprecated": false, "x-appwrite": { - "method": "getInvoice", - "group": null, + "method": "updateBackupPolicy", + "group": "databases", "cookies": false, "type": "", - "demo": "organizations\/get-invoice.md", + "demo": "postgresql\/update-backup-policy.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "billing.read", + "scope": "databases.write", "platforms": [ - "console" + "console", + "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/organizations\/get-invoice.md", "auth": { "Project": [] } }, "security": [ { - "Project": [] + "Project": [], + "Key": [] } ], "parameters": [ { - "name": "organizationId", - "description": "Organization ID", + "name": "databaseId", + "description": "Database ID.", "required": true, "schema": { "type": "string", - "x-example": "<ORGANIZATION_ID>" + "x-example": "<DATABASE_ID>" }, "in": "path" }, { - "name": "invoiceId", - "description": "Invoice unique ID", + "name": "policyId", + "description": "Policy ID.", "required": true, "schema": { "type": "string", - "x-example": "<INVOICE_ID>" + "x-example": "<POLICY_ID>" }, "in": "path" } - ] - } - }, - "\/organizations\/{organizationId}\/invoices\/{invoiceId}\/download": { - "get": { - "summary": "Download invoice in PDF", - "operationId": "organizationsGetInvoiceDownload", - "tags": [ - "organizations" ], - "description": "Download invoice in PDF", - "responses": { - "200": { - "description": "paymentMethod", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/paymentMethod" + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "Policy name. Max length: 128 chars.", + "x-example": "<NAME>", + "x-nullable": true + }, + "schedule": { + "type": "string", + "description": "Schedule CRON syntax.", + "x-example": null + }, + "retention": { + "type": "integer", + "description": "Days to keep backups before deletion.", + "x-example": 1, + "format": "int32", + "x-nullable": true + }, + "enabled": { + "type": "boolean", + "description": "Is policy enabled? When disabled, no backups will be taken.", + "x-example": false, + "x-nullable": true + } } } } } + } + }, + "delete": { + "summary": "Delete a database 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": { - "method": "getInvoiceDownload", - "group": null, + "method": "deleteBackupPolicy", + "group": "databases", "cookies": false, - "type": "location", - "demo": "organizations\/get-invoice-download.md", + "type": "", + "demo": "postgresql\/delete-backup-policy.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "billing.read", + "scope": "databases.write", "platforms": [ - "console" + "console", + "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/organizations\/get-invoice-download.md", + "produces": [ + "application\/json" + ], "auth": { - "Project": [], - "ImpersonateUserId": [] + "Project": [] } }, "security": [ { "Project": [], - "ImpersonateUserId": [] + "Key": [] } ], "parameters": [ { - "name": "organizationId", - "description": "Organization ID", + "name": "databaseId", + "description": "Database ID.", "required": true, "schema": { "type": "string", - "x-example": "<ORGANIZATION_ID>" + "x-example": "<DATABASE_ID>" }, "in": "path" }, { - "name": "invoiceId", - "description": "Invoice unique ID", + "name": "policyId", + "description": "Policy ID.", "required": true, "schema": { "type": "string", - "x-example": "<INVOICE_ID>" + "x-example": "<POLICY_ID>" }, "in": "path" } ] } }, - "\/organizations\/{organizationId}\/invoices\/{invoiceId}\/payments": { - "post": { - "summary": "Initiate payment for failed invoice to pay live from console", - "operationId": "organizationsCreateInvoicePayment", + "\/postgresql\/{databaseId}\/backups\/storage": { + "put": { + "summary": "Update database backup storage.", + "operationId": "postgresqlUpdateBackupStorage", "tags": [ - "organizations" + "postgresql" ], - "description": "Initiate payment for failed invoice to pay live from console", + "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": "Invoice", + "description": "BackupStorageConfig", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/invoice" + "$ref": "#\/components\/schemas\/dedicatedDatabaseBackupStorage" } } } @@ -51440,48 +52961,39 @@ }, "deprecated": false, "x-appwrite": { - "method": "createInvoicePayment", - "group": null, + "method": "updateBackupStorage", + "group": "databases", "cookies": false, "type": "", - "demo": "organizations\/create-invoice-payment.md", - "rate-limit": 10, - "rate-time": 86400, + "demo": "postgresql\/update-backup-storage.md", + "rate-limit": 0, + "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "billing.write", + "scope": "databases.write", "platforms": [ - "console" + "console", + "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/organizations\/create-invoice-payment.md", "auth": { "Project": [] } }, "security": [ { - "Project": [] + "Project": [], + "Key": [] } ], "parameters": [ { - "name": "organizationId", - "description": "Organization ID", + "name": "databaseId", + "description": "Database ID.", "required": true, "schema": { "type": "string", - "x-example": "<ORGANIZATION_ID>" - }, - "in": "path" - }, - { - "name": "invoiceId", - "description": "Invoice unique ID", - "required": true, - "schema": { - "type": "string", - "x-example": "<INVOICE_ID>" + "x-example": "<DATABASE_ID>" }, "in": "path" } @@ -51492,14 +53004,50 @@ "schema": { "type": "object", "properties": { - "paymentMethodId": { + "provider": { "type": "string", - "description": "Payment method ID", - "x-example": "<PAYMENT_METHOD_ID>" + "description": "Storage provider for off-cluster backups. Allowed values: s3 (Amazon S3 or S3-compatible), gcs (Google Cloud Storage), azure (Azure Blob Storage).", + "x-example": "s3" + }, + "bucket": { + "type": "string", + "description": "Storage bucket or container name.", + "x-example": "<BUCKET>" + }, + "region": { + "type": "string", + "description": "Storage region.", + "default": "", + "x-example": "<REGION>" + }, + "prefix": { + "type": "string", + "description": "Object key prefix for backups.", + "default": "backups\/", + "x-example": "<PREFIX>" + }, + "endpoint": { + "type": "string", + "description": "Custom endpoint for S3-compatible storage (e.g. MinIO).", + "default": "", + "x-example": "<ENDPOINT>" + }, + "accessKey": { + "type": "string", + "description": "Access key or client ID for authentication.", + "x-example": "<ACCESS_KEY>" + }, + "secretKey": { + "type": "string", + "description": "Secret key or service account JSON for authentication.", + "x-example": "<SECRET_KEY>" } }, "required": [ - "paymentMethodId" + "provider", + "bucket", + "accessKey", + "secretKey" ] } } @@ -51507,21 +53055,21 @@ } } }, - "\/organizations\/{organizationId}\/invoices\/{invoiceId}\/status": { - "patch": { - "summary": "Validate the payment for an invoice and update status", - "operationId": "organizationsValidateInvoice", + "\/postgresql\/{databaseId}\/backups\/{backupId}": { + "get": { + "summary": "Get a database backup.", + "operationId": "postgresqlGetBackup", "tags": [ - "organizations" + "postgresql" ], - "description": "Validates the payment linked with the invoice and updates the invoice status if the payment status is changed.", + "description": "Get details of a specific database backup including its status, size, and timestamps.", "responses": { "200": { - "description": "Invoice", + "description": "Backup", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/invoice" + "$ref": "#\/components\/schemas\/dedicatedDatabaseBackup" } } } @@ -51529,141 +53077,135 @@ }, "deprecated": false, "x-appwrite": { - "method": "validateInvoice", - "group": null, + "method": "getBackup", + "group": "databases", "cookies": false, "type": "", - "demo": "organizations\/validate-invoice.md", + "demo": "postgresql\/get-backup.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "billing.write", + "scope": "databases.read", "platforms": [ - "console" + "console", + "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/organizations\/update-invoice-status.md", "auth": { "Project": [] } }, "security": [ { - "Project": [] + "Project": [], + "Key": [] } ], "parameters": [ { - "name": "organizationId", - "description": "Organization ID", + "name": "databaseId", + "description": "Database ID.", "required": true, "schema": { "type": "string", - "x-example": "<ORGANIZATION_ID>" + "x-example": "<DATABASE_ID>" }, "in": "path" }, { - "name": "invoiceId", - "description": "Invoice unique ID", + "name": "backupId", + "description": "Backup ID.", "required": true, "schema": { "type": "string", - "x-example": "<INVOICE_ID>" + "x-example": "<BACKUP_ID>" }, "in": "path" } ] - } - }, - "\/organizations\/{organizationId}\/invoices\/{invoiceId}\/view": { - "get": { - "summary": "View invoice in PDF", - "operationId": "organizationsGetInvoiceView", + }, + "delete": { + "summary": "Delete a database backup.", + "operationId": "postgresqlDeleteBackup", "tags": [ - "organizations" + "postgresql" ], - "description": "View invoice in PDF", + "description": "Delete a database backup. This will permanently remove the backup from storage and cannot be undone.", "responses": { - "200": { - "description": "paymentMethod", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/paymentMethod" - } - } - } + "204": { + "description": "No content" } }, "deprecated": false, "x-appwrite": { - "method": "getInvoiceView", - "group": null, + "method": "deleteBackup", + "group": "databases", "cookies": false, - "type": "location", - "demo": "organizations\/get-invoice-view.md", + "type": "", + "demo": "postgresql\/delete-backup.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "billing.read", + "scope": "databases.write", "platforms": [ - "console" + "console", + "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/organizations\/get-invoice-view.md", + "produces": [ + "application\/json" + ], "auth": { - "Project": [], - "ImpersonateUserId": [] + "Project": [] } }, "security": [ { "Project": [], - "ImpersonateUserId": [] + "Key": [] } ], "parameters": [ { - "name": "organizationId", - "description": "Organization ID", + "name": "databaseId", + "description": "Database ID.", "required": true, "schema": { "type": "string", - "x-example": "<ORGANIZATION_ID>" + "x-example": "<DATABASE_ID>" }, "in": "path" }, { - "name": "invoiceId", - "description": "Invoice unique ID", + "name": "backupId", + "description": "Backup ID.", "required": true, "schema": { "type": "string", - "x-example": "<INVOICE_ID>" + "x-example": "<BACKUP_ID>" }, "in": "path" } ] } }, - "\/organizations\/{organizationId}\/payment-method": { - "patch": { - "summary": "Set team's payment method", - "operationId": "organizationsSetDefaultPaymentMethod", + "\/postgresql\/{databaseId}\/branches": { + "get": { + "summary": "List database branches.", + "operationId": "postgresqlListBranches", "tags": [ - "organizations" + "postgresql" ], - "description": "Set a organization's default payment method.", + "description": "List all ephemeral branches for a dedicated database. Returns branch metadata including ID, name, namespace, and expiration time.", "responses": { "200": { - "description": "Organization", + "description": "BranchList", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/organization" + "$ref": "#\/components\/schemas\/dedicatedDatabaseBranchList" } } } @@ -51671,76 +53213,58 @@ }, "deprecated": false, "x-appwrite": { - "method": "setDefaultPaymentMethod", - "group": null, + "method": "listBranches", + "group": "databases", "cookies": false, "type": "", - "demo": "organizations\/set-default-payment-method.md", + "demo": "postgresql\/list-branches.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "billing.write", + "scope": "databases.read", "platforms": [ - "console" + "console", + "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/organizations\/set-default-payment-method.md", "auth": { "Project": [] } }, "security": [ { - "Project": [] + "Project": [], + "Key": [] } ], "parameters": [ { - "name": "organizationId", - "description": "Organization ID", + "name": "databaseId", + "description": "Database ID.", "required": true, "schema": { "type": "string", - "x-example": "<ORGANIZATION_ID>" + "x-example": "<DATABASE_ID>" }, "in": "path" } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "paymentMethodId": { - "type": "string", - "description": "Unique ID of payment method", - "x-example": "<PAYMENT_METHOD_ID>" - } - }, - "required": [ - "paymentMethodId" - ] - } - } - } - } + ] }, - "delete": { - "summary": "Delete team's default payment method", - "operationId": "organizationsDeleteDefaultPaymentMethod", + "post": { + "summary": "Create a database branch.", + "operationId": "postgresqlCreateBranch", "tags": [ - "organizations" + "postgresql" ], - "description": "Delete the default payment method for an organization.", + "description": "Create an ephemeral database branch from the primary via PVC snapshot. The branch is a full copy of the database at the current point in time, useful for testing schema migrations or running experiments without affecting production data. Branches expire after the configured TTL (default 24 hours). The branch is created asynchronously.", "responses": { - "200": { - "description": "Organization", + "202": { + "description": "DedicatedDatabase", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/organization" + "$ref": "#\/components\/schemas\/dedicatedDatabase" } } } @@ -51748,59 +53272,87 @@ }, "deprecated": false, "x-appwrite": { - "method": "deleteDefaultPaymentMethod", - "group": null, + "method": "createBranch", + "group": "databases", "cookies": false, "type": "", - "demo": "organizations\/delete-default-payment-method.md", + "demo": "postgresql\/create-branch.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "billing.write", + "scope": "databases.write", "platforms": [ - "console" + "console", + "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/organizations\/delete-default-payment-method.md", "auth": { "Project": [] } }, "security": [ { - "Project": [] + "Project": [], + "Key": [] } ], "parameters": [ { - "name": "organizationId", - "description": "Organization ID", + "name": "databaseId", + "description": "Database ID.", "required": true, "schema": { "type": "string", - "x-example": "<ORGANIZATION_ID>" + "x-example": "<DATABASE_ID>" }, "in": "path" } - ] + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "branchId": { + "type": "string", + "description": "Branch ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.", + "default": "", + "x-example": "<BRANCH_ID>", + "x-appwrite": { + "idGenerator": "ID.unique" + } + }, + "ttl": { + "type": "integer", + "description": "Time-to-live in seconds before the branch expires. Min 300 (5 min), max 604800 (7 days). Default: 86400 (24h).", + "default": 86400, + "x-example": 300, + "format": "int32" + } + } + } + } + } + } } }, - "\/organizations\/{organizationId}\/payment-method\/backup": { - "patch": { - "summary": "Set team's backup payment method", - "operationId": "organizationsSetBackupPaymentMethod", + "\/postgresql\/{databaseId}\/branches\/{branchId}": { + "delete": { + "summary": "Delete a database branch.", + "operationId": "postgresqlDeleteBranch", "tags": [ - "organizations" + "postgresql" ], - "description": "Set an organization's backup payment method.\n", + "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": { - "200": { - "description": "Organization", + "202": { + "description": "DedicatedDatabase", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/organization" + "$ref": "#\/components\/schemas\/dedicatedDatabase" } } } @@ -51808,76 +53360,70 @@ }, "deprecated": false, "x-appwrite": { - "method": "setBackupPaymentMethod", - "group": null, + "method": "deleteBranch", + "group": "databases", "cookies": false, "type": "", - "demo": "organizations\/set-backup-payment-method.md", + "demo": "postgresql\/delete-branch.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "billing.write", + "scope": "databases.write", "platforms": [ - "console" + "console", + "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/organizations\/set-backup-payment-method.md", "auth": { "Project": [] } }, "security": [ { - "Project": [] + "Project": [], + "Key": [] } ], "parameters": [ { - "name": "organizationId", - "description": "Organization ID", + "name": "databaseId", + "description": "Database ID.", "required": true, "schema": { "type": "string", - "x-example": "<ORGANIZATION_ID>" + "x-example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "branchId", + "description": "Branch ID.", + "required": true, + "schema": { + "type": "string", + "x-example": "<BRANCH_ID>" }, "in": "path" } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "paymentMethodId": { - "type": "string", - "description": "Unique ID of payment method", - "x-example": "<PAYMENT_METHOD_ID>" - } - }, - "required": [ - "paymentMethodId" - ] - } - } - } - } - }, - "delete": { - "summary": "Delete team's backup payment method", - "operationId": "organizationsDeleteBackupPaymentMethod", + ] + } + }, + "\/postgresql\/{databaseId}\/credentials": { + "patch": { + "summary": "Rotate database credentials.", + "operationId": "postgresqlUpdateCredentials", "tags": [ - "organizations" + "postgresql" ], - "description": "Delete a backup payment method for an organization.", + "description": "Rotate the primary connection credentials for a dedicated database. Generates a new password and updates the database atomically. Previous credentials stop working immediately. Returns the database with a refreshed connection string carrying the new password.", "responses": { "200": { - "description": "Organization", + "description": "DedicatedDatabase", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/organization" + "$ref": "#\/components\/schemas\/dedicatedDatabase" } } } @@ -51885,59 +53431,60 @@ }, "deprecated": false, "x-appwrite": { - "method": "deleteBackupPaymentMethod", - "group": null, + "method": "updateCredentials", + "group": "databases", "cookies": false, "type": "", - "demo": "organizations\/delete-backup-payment-method.md", + "demo": "postgresql\/update-credentials.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "billing.write", + "scope": "databases.write", "platforms": [ - "console" + "console", + "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/organizations\/delete-backup-payment-method.md", "auth": { "Project": [] } }, "security": [ { - "Project": [] + "Project": [], + "Key": [] } ], "parameters": [ { - "name": "organizationId", - "description": "Organization ID", + "name": "databaseId", + "description": "Database ID.", "required": true, "schema": { "type": "string", - "x-example": "<ORGANIZATION_ID>" + "x-example": "<DATABASE_ID>" }, "in": "path" } ] } }, - "\/organizations\/{organizationId}\/payment-methods\/{paymentMethodId}": { - "get": { - "summary": "Get payment method", - "operationId": "organizationsGetPaymentMethod", + "\/postgresql\/{databaseId}\/executions": { + "post": { + "summary": "Execute a SQL statement against a dedicated database.", + "operationId": "postgresqlCreateExecution", "tags": [ - "organizations" + "postgresql" ], - "description": "Get an organization's payment method using it's payment method ID.", + "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": "paymentMethod", + "description": "Execution", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/paymentMethod" + "$ref": "#\/components\/schemas\/dedicatedDatabaseExecution" } } } @@ -51945,69 +53492,93 @@ }, "deprecated": false, "x-appwrite": { - "method": "getPaymentMethod", - "group": null, + "method": "createExecution", + "group": "databases", "cookies": false, "type": "", - "demo": "organizations\/get-payment-method.md", + "demo": "postgresql\/create-execution.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "billing.read", + "scope": "databases.write", "platforms": [ - "console" + "console", + "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/organizations\/get-payment-method.md", "auth": { "Project": [] } }, "security": [ { - "Project": [] + "Project": [], + "Key": [] } ], "parameters": [ { - "name": "organizationId", - "description": "Organization ID", - "required": true, - "schema": { - "type": "string", - "x-example": "<ORGANIZATION_ID>" - }, - "in": "path" - }, - { - "name": "paymentMethodId", - "description": "Unique ID of payment method", + "name": "databaseId", + "description": "Database ID.", "required": true, "schema": { "type": "string", - "x-example": "<PAYMENT_METHOD_ID>" + "x-example": "<DATABASE_ID>" }, "in": "path" } - ] + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "sql": { + "type": "string", + "description": "SQL statement to execute. Exactly one statement per request.", + "x-example": "<SQL>" + }, + "bindings": { + "type": "object", + "description": "Optional bound parameters. Pass either a positional list or a name => value map matching the placeholder style used in the SQL.", + "default": {}, + "x-example": "{}", + "x-nullable": true + }, + "timeoutSeconds": { + "type": "integer", + "description": "Per-call execution timeout override. Must be less than or equal to the database's configured sqlApiTimeoutSeconds.", + "x-example": 1, + "format": "int32", + "x-nullable": true + } + }, + "required": [ + "sql" + ] + } + } + } + } } }, - "\/organizations\/{organizationId}\/plan": { + "\/postgresql\/{databaseId}\/extensions": { "get": { - "summary": "Get organization billing plan details", - "operationId": "organizationsGetPlan", + "summary": "List database extensions.", + "operationId": "postgresqlListExtensions", "tags": [ - "organizations" + "postgresql" ], - "description": "Get the details of the current billing plan for an organization.", + "description": "List installed and available extensions for a PostgreSQL database.", "responses": { "200": { - "description": "billingPlan", + "description": "Extensions", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/billingPlan" + "$ref": "#\/components\/schemas\/dedicatedDatabaseExtensions" } } } @@ -52015,57 +53586,58 @@ }, "deprecated": false, "x-appwrite": { - "method": "getPlan", - "group": null, + "method": "listExtensions", + "group": "databases", "cookies": false, "type": "", - "demo": "organizations\/get-plan.md", + "demo": "postgresql\/list-extensions.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "teams.read", + "scope": "databases.read", "platforms": [ - "console" + "console", + "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/organizations\/get-plan.md", "auth": { "Project": [] } }, "security": [ { - "Project": [] + "Project": [], + "Key": [] } ], "parameters": [ { - "name": "organizationId", - "description": "Organization Unique ID", + "name": "databaseId", + "description": "Database ID.", "required": true, "schema": { "type": "string", - "x-example": "<ORGANIZATION_ID>" + "x-example": "<DATABASE_ID>" }, "in": "path" } ] }, - "patch": { - "summary": "Update organization billing plan", - "operationId": "organizationsUpdatePlan", - "tags": [ - "organizations" + "post": { + "summary": "Install a database extension.", + "operationId": "postgresqlCreateExtension", + "tags": [ + "postgresql" ], - "description": "Update the billing plan for an organization.", + "description": "Install a database extension. Only available for PostgreSQL databases. The install runs asynchronously; poll the extensions list endpoint for status.", "responses": { - "200": { - "description": "Organization", + "202": { + "description": "DedicatedDatabase", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/organization" + "$ref": "#\/components\/schemas\/dedicatedDatabase" } } } @@ -52073,38 +53645,39 @@ }, "deprecated": false, "x-appwrite": { - "method": "updatePlan", - "group": null, + "method": "createExtension", + "group": "databases", "cookies": false, "type": "", - "demo": "organizations\/update-plan.md", - "rate-limit": 10, + "demo": "postgresql\/create-extension.md", + "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "billing.write", + "scope": "databases.write", "platforms": [ - "console" + "console", + "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/organizations\/update-plan.md", "auth": { "Project": [] } }, "security": [ { - "Project": [] + "Project": [], + "Key": [] } ], "parameters": [ { - "name": "organizationId", - "description": "Organization Unique ID", + "name": "databaseId", + "description": "Database ID.", "required": true, "schema": { "type": "string", - "x-example": "<ORGANIZATION_ID>" + "x-example": "<DATABASE_ID>" }, "in": "path" } @@ -52115,54 +53688,14 @@ "schema": { "type": "object", "properties": { - "billingPlan": { - "type": "string", - "description": "Organization billing plan chosen", - "x-example": "tier-0" - }, - "paymentMethodId": { - "type": "string", - "description": "Payment method ID. Required for pro plans when trial is not available and user doesn't have default payment method set.", - "x-example": "<PAYMENT_METHOD_ID>", - "x-nullable": true - }, - "billingAddressId": { - "type": "string", - "description": "Unique ID of billing address", - "default": "", - "x-example": "<BILLING_ADDRESS_ID>" - }, - "invites": { - "type": "array", - "description": "Additional member invites", - "default": [], - "x-example": null, - "items": { - "type": "string" - } - }, - "couponId": { - "type": "string", - "description": "Coupon id", - "x-example": "<COUPON_ID>", - "x-nullable": true - }, - "taxId": { + "name": { "type": "string", - "description": "Tax Id associated to billing.", - "x-example": "<TAX_ID>", - "x-nullable": true - }, - "budget": { - "type": "integer", - "description": "Budget limit for additional usage set for the organization", - "x-example": 0, - "format": "int32", - "x-nullable": true + "description": "Extension name (e.g., pgvector, postgis, uuid-ossp).", + "x-example": "<NAME>" } }, "required": [ - "billingPlan" + "name" ] } } @@ -52170,21 +53703,21 @@ } } }, - "\/organizations\/{organizationId}\/plan\/cancel": { - "patch": { - "summary": "Cancel organization plan change", - "operationId": "organizationsCancelDowngrade", + "\/postgresql\/{databaseId}\/extensions\/{extensionName}": { + "delete": { + "summary": "Uninstall a database extension.", + "operationId": "postgresqlDeleteExtension", "tags": [ - "organizations" + "postgresql" ], - "description": "Cancel the downgrade initiated for an organization.", + "description": "Uninstall a database extension from a PostgreSQL database. The uninstall runs asynchronously; poll the extensions list endpoint for status.", "responses": { - "200": { - "description": "Organization", + "202": { + "description": "DedicatedDatabase", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/organization" + "$ref": "#\/components\/schemas\/dedicatedDatabase" } } } @@ -52192,59 +53725,70 @@ }, "deprecated": false, "x-appwrite": { - "method": "cancelDowngrade", - "group": null, + "method": "deleteExtension", + "group": "databases", "cookies": false, "type": "", - "demo": "organizations\/cancel-downgrade.md", + "demo": "postgresql\/delete-extension.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "billing.write", + "scope": "databases.write", "platforms": [ - "console" + "console", + "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/organizations\/cancel-downgrade.md", "auth": { "Project": [] } }, "security": [ { - "Project": [] + "Project": [], + "Key": [] } ], "parameters": [ { - "name": "organizationId", - "description": "Organization Unique ID", + "name": "databaseId", + "description": "Database ID.", "required": true, "schema": { "type": "string", - "x-example": "<ORGANIZATION_ID>" + "x-example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "extensionName", + "description": "Extension name to uninstall.", + "required": true, + "schema": { + "type": "string", + "x-example": "<EXTENSION_NAME>" }, "in": "path" } ] } }, - "\/organizations\/{organizationId}\/plan\/estimations": { + "\/postgresql\/{databaseId}\/failovers": { "post": { - "summary": "Create billing plan estimation (upgrade or downgrade)", - "operationId": "organizationsCreatePlanEstimation", + "summary": "Trigger manual failover.", + "operationId": "postgresqlCreateFailover", "tags": [ - "organizations" + "postgresql" ], - "description": "Create a billing plan estimation for upgrading or downgrading an organization plan.\n", + "description": "Trigger a manual failover for a dedicated database with high availability enabled. Promotes a replica to primary. The failover runs asynchronously; poll the database document for status updates.", "responses": { - "200": { - "description": "EstimationPlanChange", + "202": { + "description": "DedicatedDatabase", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/estimationPlanChange" + "$ref": "#\/components\/schemas\/dedicatedDatabase" } } } @@ -52252,38 +53796,39 @@ }, "deprecated": false, "x-appwrite": { - "method": "createPlanEstimation", - "group": null, + "method": "createFailover", + "group": "databases", "cookies": false, "type": "", - "demo": "organizations\/create-plan-estimation.md", - "rate-limit": 10, + "demo": "postgresql\/create-failover.md", + "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "billing.write", + "scope": "databases.write", "platforms": [ - "console" + "console", + "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/organizations\/create-plan-estimation.md", "auth": { "Project": [] } }, "security": [ { - "Project": [] + "Project": [], + "Key": [] } ], "parameters": [ { - "name": "organizationId", - "description": "Organization ID", + "name": "databaseId", + "description": "Database ID.", "required": true, "schema": { "type": "string", - "x-example": "<ORGANIZATION_ID>" + "x-example": "<DATABASE_ID>" }, "in": "path" } @@ -52294,51 +53839,34 @@ "schema": { "type": "object", "properties": { - "billingPlan": { - "type": "string", - "description": "Target billing plan", - "x-example": "tier-0" - }, - "invites": { - "type": "array", - "description": "Additional member invites", - "default": [], - "x-example": null, - "items": { - "type": "string" - } - }, - "couponId": { + "targetReplicaId": { "type": "string", - "description": "Coupon id", - "x-example": "<COUPON_ID>", + "description": "Target replica ID to promote. If not specified, the healthiest replica is selected.", + "x-example": "<TARGET_REPLICA_ID>", "x-nullable": true } - }, - "required": [ - "billingPlan" - ] + } } } } } } }, - "\/organizations\/{organizationId}\/regions": { - "get": { - "summary": "List Regions", - "operationId": "organizationsListRegions", + "\/postgresql\/{databaseId}\/maintenance": { + "patch": { + "summary": "Update database maintenance window.", + "operationId": "postgresqlUpdateMaintenance", "tags": [ - "organizations" + "postgresql" ], - "description": "Get all available regions for an organization.", + "description": "Update the maintenance window for a dedicated database. Maintenance operations like minor version upgrades will be performed during this window.", "responses": { "200": { - "description": "Regions list", + "description": "DedicatedDatabase", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/consoleRegionList" + "$ref": "#\/components\/schemas\/dedicatedDatabase" } } } @@ -52346,59 +53874,86 @@ }, "deprecated": false, "x-appwrite": { - "method": "listRegions", - "group": null, + "method": "updateMaintenance", + "group": "databases", "cookies": false, "type": "", - "demo": "organizations\/list-regions.md", + "demo": "postgresql\/update-maintenance.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "projects.read", + "scope": "databases.write", "platforms": [ - "console" + "console", + "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/organizations\/list-regions.md", "auth": { "Project": [] } }, "security": [ { - "Project": [] + "Project": [], + "Key": [] } ], "parameters": [ { - "name": "organizationId", - "description": "Team ID.", + "name": "databaseId", + "description": "Database ID.", "required": true, "schema": { "type": "string", - "x-example": "<ORGANIZATION_ID>" + "x-example": "<DATABASE_ID>" }, "in": "path" } - ] + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "day": { + "type": "string", + "description": "Day of the week for the maintenance window. Allowed values: sun, mon, tue, wed, thu, fri, sat.", + "x-example": "sun" + }, + "hourUtc": { + "type": "integer", + "description": "Hour in UTC (0-23) for maintenance window start.", + "x-example": 0, + "format": "int32" + } + }, + "required": [ + "day", + "hourUtc" + ] + } + } + } + } } }, - "\/organizations\/{organizationId}\/roles": { - "get": { - "summary": "Get Scopes", - "operationId": "organizationsGetScopes", + "\/postgresql\/{databaseId}\/migrations": { + "post": { + "summary": "Migrate database between shared and dedicated.", + "operationId": "postgresqlCreateMigration", "tags": [ - "organizations" + "postgresql" ], - "description": "Get Scopes", + "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": "Roles", + "description": "DedicatedDatabase", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/roles" + "$ref": "#\/components\/schemas\/dedicatedDatabase" } } } @@ -52406,70 +53961,85 @@ }, "deprecated": false, "x-appwrite": { - "method": "getScopes", - "group": null, + "method": "createMigration", + "group": "databases", "cookies": false, "type": "", - "demo": "organizations\/get-scopes.md", + "demo": "postgresql\/create-migration.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "teams.read", + "scope": "databases.write", "platforms": [ - "console" + "console", + "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/organizations\/get-scopes.md", "auth": { "Project": [] } }, "security": [ { - "Project": [] + "Project": [], + "Key": [] } ], "parameters": [ { - "name": "organizationId", - "description": "Organization id", + "name": "databaseId", + "description": "Database ID.", "required": true, "schema": { "type": "string", - "x-example": "<ORGANIZATION_ID>" + "x-example": "<DATABASE_ID>" }, "in": "path" - }, - { - "name": "projectId", - "description": "Project id", - "required": false, - "schema": { - "type": "string", - "x-example": "<PROJECT_ID>", - "default": "" - }, - "in": "query" } - ] + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "targetType": { + "type": "string", + "description": "Target database type to migrate to. Allowed values: shared (serverless, scales to zero when idle), dedicated (always-on with persistent resources).", + "x-example": "shared" + }, + "specification": { + "type": "string", + "description": "Target specification to provision when migrating to dedicated. Ignored for shared. Defaults to the database's current specification.", + "x-example": "<SPECIFICATION>", + "x-nullable": true + } + }, + "required": [ + "targetType" + ] + } + } + } + } } }, - "\/organizations\/{organizationId}\/taxId": { - "patch": { - "summary": "Set team's tax Id", - "operationId": "organizationsSetBillingTaxId", + "\/postgresql\/{databaseId}\/pitr": { + "get": { + "summary": "Get PITR recovery windows.", + "operationId": "postgresqlGetPitr", "tags": [ - "organizations" + "postgresql" ], - "description": "Set an organization's billing tax ID.", + "description": "Get available point-in-time recovery windows for a dedicated database. Returns the earliest and latest recovery points.", "responses": { "200": { - "description": "Organization", + "description": "PITRWindows", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/organization" + "$ref": "#\/components\/schemas\/dedicatedDatabasePITRWindows" } } } @@ -52477,79 +54047,60 @@ }, "deprecated": false, "x-appwrite": { - "method": "setBillingTaxId", - "group": null, + "method": "getPitr", + "group": "databases", "cookies": false, "type": "", - "demo": "organizations\/set-billing-tax-id.md", + "demo": "postgresql\/get-pitr.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "billing.write", + "scope": "databases.read", "platforms": [ - "console" + "console", + "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/organizations\/set-billing-tax-id.md", "auth": { "Project": [] } }, "security": [ { - "Project": [] + "Project": [], + "Key": [] } ], "parameters": [ { - "name": "organizationId", - "description": "Organization ID", + "name": "databaseId", + "description": "Database ID.", "required": true, "schema": { "type": "string", - "x-example": "<ORGANIZATION_ID>" + "x-example": "<DATABASE_ID>" }, "in": "path" } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "taxId": { - "type": "string", - "description": "Tax Id associated to billing.", - "x-example": "<TAX_ID>", - "x-nullable": true - } - }, - "required": [ - "taxId" - ] - } - } - } - } + ] } }, - "\/organizations\/{organizationId}\/usage": { + "\/postgresql\/{databaseId}\/pooler": { "get": { - "summary": "Get team's usage data", - "operationId": "organizationsGetUsage", + "summary": "Get connection pooler configuration.", + "operationId": "postgresqlGetPooler", "tags": [ - "organizations" + "postgresql" ], - "description": "Get the usage data for an organization.", + "description": "Get the connection pooler configuration for a dedicated database. Returns pooler mode, max connections, and pool size settings.", "responses": { "200": { - "description": "Organization", + "description": "PoolerConfig", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/usageOrganization" + "$ref": "#\/components\/schemas\/dedicatedDatabasePooler" } } } @@ -52557,81 +54108,58 @@ }, "deprecated": false, "x-appwrite": { - "method": "getUsage", - "group": null, + "method": "getPooler", + "group": "databases", "cookies": false, "type": "", - "demo": "organizations\/get-usage.md", + "demo": "postgresql\/get-pooler.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "teams.read", + "scope": "databases.read", "platforms": [ - "console" + "console", + "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/organizations\/get-usage.md", "auth": { "Project": [] } }, "security": [ { - "Project": [] + "Project": [], + "Key": [] } ], "parameters": [ { - "name": "organizationId", - "description": "Organization ID", + "name": "databaseId", + "description": "Database ID.", "required": true, "schema": { "type": "string", - "x-example": "<ORGANIZATION_ID>" + "x-example": "<DATABASE_ID>" }, "in": "path" - }, - { - "name": "startDate", - "description": "Starting date for the usage", - "required": false, - "schema": { - "type": "string", - "format": "datetime", - "x-example": "2020-10-15T06:38:00.000+00:00" - }, - "in": "query" - }, - { - "name": "endDate", - "description": "End date for the usage", - "required": false, - "schema": { - "type": "string", - "format": "datetime", - "x-example": "2020-10-15T06:38:00.000+00:00" - }, - "in": "query" } ] - } - }, - "\/organizations\/{organizationId}\/validate": { + }, "patch": { - "summary": "Validate payment for the organization after creation or upgrade", - "operationId": "organizationsValidatePayment", + "summary": "Update connection pooler configuration.", + "operationId": "postgresqlUpdatePooler", "tags": [ - "organizations" + "postgresql" ], - "description": "Validate payment for team after creation or upgrade.", + "description": "Update the connection pooler configuration for a dedicated database. Configure pool mode, max connections, and pool sizes.", "responses": { "200": { - "description": "Organization", + "description": "PoolerConfig", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/organization" + "$ref": "#\/components\/schemas\/dedicatedDatabasePooler" } } } @@ -52639,38 +54167,39 @@ }, "deprecated": false, "x-appwrite": { - "method": "validatePayment", - "group": null, + "method": "updatePooler", + "group": "databases", "cookies": false, "type": "", - "demo": "organizations\/validate-payment.md", + "demo": "postgresql\/update-pooler.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "teams.read", + "scope": "databases.write", "platforms": [ - "console" + "console", + "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/organizations\/validate-payment.md", "auth": { "Project": [] } }, "security": [ { - "Project": [] + "Project": [], + "Key": [] } ], "parameters": [ { - "name": "organizationId", - "description": "Organization ID", + "name": "databaseId", + "description": "Database ID.", "required": true, "schema": { "type": "string", - "x-example": "<ORGANIZATION_ID>" + "x-example": "<DATABASE_ID>" }, "in": "path" } @@ -52681,37 +54210,78 @@ "schema": { "type": "object", "properties": { - "invites": { - "type": "array", - "description": "Additional member invites", - "default": [], - "x-example": null, - "items": { - "type": "string" - } - } - } - } - } - } - } - } - }, - "\/ping": { - "get": { - "summary": "Test the connection between the Appwrite and the SDK.", - "operationId": "pingGet", - "tags": [ - "ping" + "mode": { + "type": "string", + "description": "Connection pool mode. Allowed values: transaction, session. Transaction mode returns connections to the pool after each transaction; session mode holds connections for the entire session lifetime.", + "x-example": "transaction", + "x-nullable": true + }, + "maxConnections": { + "type": "integer", + "description": "Maximum pooled connections.", + "x-example": 10, + "format": "int32", + "x-nullable": true + }, + "defaultPoolSize": { + "type": "integer", + "description": "Default pool size per user.", + "x-example": 1, + "format": "int32", + "x-nullable": true + }, + "readWriteSplitting": { + "type": "boolean", + "description": "Route SELECTs to HA replicas, writes and locked reads to the primary. Defaults to true when HA is enabled.", + "x-example": false, + "x-nullable": true + }, + "poolerCpuRequest": { + "type": "string", + "description": "Pooler sidecar CPU request override (Kubernetes quantity, e.g. \"250m\" or \"1\"). Leave null for the proportional default (5% of DB CPU, floor 100m).", + "x-example": "<POOLER_CPU_REQUEST>", + "x-nullable": true + }, + "poolerCpuLimit": { + "type": "string", + "description": "Pooler sidecar CPU limit override (Kubernetes quantity, e.g. \"500m\" or \"1\"). Leave null for the proportional default (10% of DB CPU, floor 200m). Changing this field rolls the database pod.", + "x-example": "<POOLER_CPU_LIMIT>", + "x-nullable": true + }, + "poolerMemoryRequest": { + "type": "string", + "description": "Pooler sidecar memory request override (Kubernetes quantity, e.g. \"128Mi\" or \"1Gi\"). Leave null for the proportional default (7.5% of DB memory, floor 64Mi).", + "x-example": "<POOLER_MEMORY_REQUEST>", + "x-nullable": true + }, + "poolerMemoryLimit": { + "type": "string", + "description": "Pooler sidecar memory limit override (Kubernetes quantity, e.g. \"256Mi\" or \"1Gi\"). Leave null for the proportional default (15% of DB memory, floor 128Mi). Changing this field rolls the database pod.", + "x-example": "<POOLER_MEMORY_LIMIT>", + "x-nullable": true + } + } + } + } + } + } + } + }, + "\/postgresql\/{databaseId}\/replicas": { + "get": { + "summary": "Get replica status.", + "operationId": "postgresqlGetReplicas", + "tags": [ + "postgresql" ], - "description": "Send a ping to project as part of onboarding.", + "description": "Get high availability status for a dedicated database. Returns replica statuses, replication lag, and sync mode.", "responses": { "200": { - "description": "Any", + "description": "Replicas", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/any" + "$ref": "#\/components\/schemas\/dedicatedDatabaseReplicas" } } } @@ -52719,19 +54289,18 @@ }, "deprecated": false, "x-appwrite": { - "method": "get", - "group": null, + "method": "getReplicas", + "group": "databases", "cookies": false, "type": "", - "demo": "ping\/get.md", + "demo": "postgresql\/get-replicas.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "global", + "scope": "databases.read", "platforms": [ "console", - "server", - "client" + "server" ], "packaging": false, "public": true, @@ -52742,28 +54311,38 @@ "security": [ { "Project": [], - "Key": [], - "JWT": [], - "Session": [] + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "x-example": "<DATABASE_ID>" + }, + "in": "path" } ] } }, - "\/postgresql": { + "\/postgresql\/{databaseId}\/restorations": { "get": { - "summary": "List dedicated databases.", - "operationId": "postgresqlList", + "summary": "List database restorations.", + "operationId": "postgresqlListRestorations", "tags": [ "postgresql" ], - "description": "List all dedicated databases. Results support pagination.", + "description": "List all restorations for a dedicated database. Results can be filtered by status and type.", "responses": { "200": { - "description": "Dedicated databases list", + "description": "Dedicated database restorations list", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/dedicatedDatabaseList" + "$ref": "#\/components\/schemas\/dedicatedDatabaseRestorationList" } } } @@ -52771,17 +54350,18 @@ }, "deprecated": false, "x-appwrite": { - "method": "list", + "method": "listRestorations", "group": "databases", "cookies": false, "type": "", - "demo": "postgresql\/list.md", + "demo": "postgresql\/list-restorations.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", "scope": "databases.read", "platforms": [ - "console" + "console", + "server" ], "packaging": false, "public": true, @@ -52791,39 +54371,81 @@ }, "security": [ { - "Project": [] + "Project": [], + "Key": [] } ], "parameters": [ { - "name": "queries", - "description": "Array of query strings.", + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "x-example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "status", + "description": "Filter by restoration status.", "required": false, "schema": { - "type": "array", - "items": { - "type": "string" - }, - "default": [] + "type": "string", + "x-example": "pending" + }, + "in": "query" + }, + { + "name": "type", + "description": "Filter by restoration type.", + "required": false, + "schema": { + "type": "string", + "x-example": "backup" + }, + "in": "query" + }, + { + "name": "limit", + "description": "Maximum number of restorations to return.", + "required": false, + "schema": { + "type": "integer", + "format": "int32", + "x-example": 1, + "default": 25 + }, + "in": "query" + }, + { + "name": "offset", + "description": "Number of restorations to skip.", + "required": false, + "schema": { + "type": "integer", + "format": "int32", + "x-example": 0, + "default": 0 }, "in": "query" } ] }, "post": { - "summary": "Create a dedicated database.", - "operationId": "postgresqlCreate", + "summary": "Create a database restoration.", + "operationId": "postgresqlCreateRestoration", "tags": [ "postgresql" ], - "description": "Create a new dedicated database with the chosen engine and configuration. Status will be 'provisioning' until the database is ready.", + "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": { - "201": { - "description": "DedicatedDatabase", + "202": { + "description": "Restoration", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/dedicatedDatabase" + "$ref": "#\/components\/schemas\/dedicatedDatabaseRestoration" } } } @@ -52831,17 +54453,18 @@ }, "deprecated": false, "x-appwrite": { - "method": "create", + "method": "createRestoration", "group": "databases", "cookies": false, "type": "", - "demo": "postgresql\/create.md", + "demo": "postgresql\/create-restoration.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", "scope": "databases.write", "platforms": [ - "console" + "console", + "server" ], "packaging": false, "public": true, @@ -52851,7 +54474,20 @@ }, "security": [ { - "Project": [] + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "x-example": "<DATABASE_ID>" + }, + "in": "path" } ], "requestBody": { @@ -52860,132 +54496,47 @@ "schema": { "type": "object", "properties": { - "databaseId": { - "type": "string", - "description": "Database ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.", - "x-example": "<DATABASE_ID>", - "x-appwrite": { - "idGenerator": "ID.unique" - } - }, - "name": { + "type": { "type": "string", - "description": "Database display name. Max length: 128 chars.", - "x-example": "<NAME>" + "description": "Restoration type. Allowed values: backup, pitr. Use \"backup\" to restore from a specific backup, or \"pitr\" for point-in-time recovery.", + "default": "backup", + "x-example": "backup" }, - "version": { + "backupId": { "type": "string", - "description": "Database engine version. Defaults to latest for selected engine.", - "x-example": "17", + "description": "Backup ID to restore from (required for backup type).", + "x-example": "<BACKUP_ID>", "x-nullable": true }, - "specification": { - "type": "string", - "description": "Specification identifier. Drives the allocated CPU, memory, storage, storage class, and connection ceiling.", - "default": "s-1vcpu-1gb", - "x-example": "<SPECIFICATION>" - }, - "replicas": { - "type": "integer", - "description": "Number of high availability replicas (0-5). High availability is enabled when greater than 0.", - "default": 0, - "x-example": 0, - "format": "int32" - }, - "syncMode": { + "targetTime": { "type": "string", - "description": "Replication sync mode preference. Allowed values: async, sync, quorum.", - "x-example": "async", - "x-nullable": true - }, - "networkIdleTimeoutSeconds": { - "type": "integer", - "description": "Connection idle timeout in seconds.", - "default": 900, - "x-example": 60, - "format": "int32" - }, - "networkIPAllowlist": { - "type": "array", - "description": "IP addresses\/CIDR ranges allowed to connect.", - "x-example": null, - "items": { - "type": "string" - }, + "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.", + "x-example": "2020-10-15T06:38:00.000+00:00", + "format": "datetime", "x-nullable": true - }, - "idleTimeoutMinutes": { - "type": "integer", - "description": "Minutes of inactivity before container scales to zero.", - "default": 15, - "x-example": 5, - "format": "int32" - }, - "pitr": { - "type": "boolean", - "description": "Enable point-in-time recovery (PITR). Continuously archives changes so the database can be restored to any moment within the retention window.", - "default": true, - "x-example": false - }, - "pitrRetentionDays": { - "type": "integer", - "description": "Number of days to retain PITR data.", - "default": 7, - "x-example": 1, - "format": "int32" - }, - "storageAutoscaling": { - "type": "boolean", - "description": "Enable automatic storage expansion when usage exceeds threshold.", - "default": false, - "x-example": false - }, - "storageAutoscalingThresholdPercent": { - "type": "integer", - "description": "Storage usage percentage (50-95) that triggers automatic expansion.", - "default": 85, - "x-example": 50, - "format": "int32" - }, - "storageAutoscalingMaxGb": { - "type": "integer", - "description": "Maximum storage size in GB for autoscaling. 0 means no limit.", - "default": 0, - "x-example": 0, - "format": "int32" - }, - "api": { - "type": "string", - "description": "Product API that owns this database: nativedb (raw, direct-access), tablesdb, documentsdb, or vectorsdb. tablesdb\/documentsdb\/vectorsdb databases are reached only through their product APIs.", - "default": "nativedb", - "x-example": "nativedb" } - }, - "required": [ - "databaseId", - "name" - ] + } } } } } } }, - "\/postgresql\/specifications": { + "\/postgresql\/{databaseId}\/restorations\/{restorationId}": { "get": { - "summary": "List dedicated database specifications.", - "operationId": "postgresqlListSpecifications", + "summary": "Get a database restoration.", + "operationId": "postgresqlGetRestoration", "tags": [ "postgresql" ], - "description": "List the dedicated database specifications available on the current plan. Each specification reports its resource limits, pricing, and whether it is enabled for the organization.", + "description": "Get details of a specific database restoration including its status, type, and timestamps.", "responses": { "200": { - "description": "SpecificationList", + "description": "Restoration", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/dedicatedDatabaseSpecificationList" + "$ref": "#\/components\/schemas\/dedicatedDatabaseRestoration" } } } @@ -52993,17 +54544,18 @@ }, "deprecated": false, "x-appwrite": { - "method": "listSpecifications", + "method": "getRestoration", "group": "databases", "cookies": false, "type": "", - "demo": "postgresql\/list-specifications.md", + "demo": "postgresql\/get-restoration.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", "scope": "databases.read", "platforms": [ - "console" + "console", + "server" ], "packaging": false, "public": true, @@ -53013,26 +54565,49 @@ }, "security": [ { - "Project": [] + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "x-example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "restorationId", + "description": "Restoration ID.", + "required": true, + "schema": { + "type": "string", + "x-example": "<RESTORATION_ID>" + }, + "in": "path" } ] } }, - "\/postgresql\/{databaseId}": { + "\/postgresql\/{databaseId}\/status": { "get": { - "summary": "Get dedicated database.", - "operationId": "postgresqlGet", + "summary": "Get database status.", + "operationId": "postgresqlGetStatus", "tags": [ "postgresql" ], - "description": "Get a dedicated database by its unique ID. Returns the database configuration and current status.", + "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": "DedicatedDatabase", + "description": "Status", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/dedicatedDatabase" + "$ref": "#\/components\/schemas\/databaseStatus" } } } @@ -53040,17 +54615,18 @@ }, "deprecated": false, "x-appwrite": { - "method": "get", + "method": "getStatus", "group": "databases", "cookies": false, "type": "", - "demo": "postgresql\/get.md", + "demo": "postgresql\/get-status.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", "scope": "databases.read", "platforms": [ - "console" + "console", + "server" ], "packaging": false, "public": true, @@ -53060,7 +54636,8 @@ }, "security": [ { - "Project": [] + "Project": [], + "Key": [] } ], "parameters": [ @@ -53075,14 +54652,16 @@ "in": "path" } ] - }, - "patch": { - "summary": "Update dedicated database.", - "operationId": "postgresqlUpdate", + } + }, + "\/postgresql\/{databaseId}\/upgrades": { + "post": { + "summary": "Upgrade database version.", + "operationId": "postgresqlCreateUpgrade", "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.", + "description": "Upgrade a dedicated database to a new engine version. Uses blue-green deployment for zero-downtime cutover.", "responses": { "200": { "description": "DedicatedDatabase", @@ -53097,17 +54676,18 @@ }, "deprecated": false, "x-appwrite": { - "method": "update", + "method": "createUpgrade", "group": "databases", "cookies": false, "type": "", - "demo": "postgresql\/update.md", + "demo": "postgresql\/create-upgrade.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", "scope": "databases.write", "platforms": [ - "console" + "console", + "server" ], "packaging": false, "public": true, @@ -53117,7 +54697,8 @@ }, "security": [ { - "Project": [] + "Project": [], + "Key": [] } ], "parameters": [ @@ -53138,218 +54719,36 @@ "schema": { "type": "object", "properties": { - "name": { - "type": "string", - "description": "Database display name.", - "x-example": "<NAME>", - "x-nullable": true - }, - "status": { - "type": "string", - "description": "Database status. Allowed values: ready, paused, inactive. Set to \"paused\" to pause, \"ready\" to resume (also recovers a failed database whose infrastructure is healthy), or \"inactive\" to spin down a shared-pool database.", - "x-example": "ready", - "x-nullable": true - }, - "specification": { - "type": "string", - "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.", - "x-example": "<SPECIFICATION>", - "x-nullable": true - }, - "replicas": { - "type": "integer", - "description": "Number of high availability replicas (0-5). High availability is enabled when greater than 0.", - "x-example": 0, - "format": "int32", - "x-nullable": true - }, - "syncMode": { + "targetVersion": { "type": "string", - "description": "Replication sync mode preference. Allowed values: async, sync, quorum.", - "x-example": "async", - "x-nullable": true - }, - "networkIdleTimeoutSeconds": { - "type": "integer", - "description": "Connection idle timeout in seconds (60-86400).", - "x-example": 60, - "format": "int32", - "x-nullable": true - }, - "networkIPAllowlist": { - "type": "array", - "description": "IP addresses\/CIDR ranges allowed to connect.", - "x-example": null, - "items": { - "type": "string" - }, - "x-nullable": true - }, - "idleTimeoutMinutes": { - "type": "integer", - "description": "Minutes before container scales to zero.", - "x-example": 5, - "format": "int32", - "x-nullable": true - }, - "pitr": { - "type": "boolean", - "description": "Enable or disable point-in-time recovery (PITR).", - "x-example": false, - "x-nullable": true - }, - "pitrRetentionDays": { - "type": "integer", - "description": "Days to retain PITR data.", - "x-example": 1, - "format": "int32", - "x-nullable": true - }, - "storageAutoscaling": { - "type": "boolean", - "description": "Enable automatic storage expansion when usage exceeds threshold.", - "x-example": false, - "x-nullable": true - }, - "storageAutoscalingThresholdPercent": { - "type": "integer", - "description": "Storage usage percentage (50-95) that triggers automatic expansion.", - "x-example": 50, - "format": "int32", - "x-nullable": true - }, - "storageAutoscalingMaxGb": { - "type": "integer", - "description": "Maximum storage size in GB for autoscaling. 0 means no limit.", - "x-example": 0, - "format": "int32", - "x-nullable": true - }, - "metricsTraceSampleRate": { - "type": "number", - "description": "Fraction of queries to trace (0.0\u20131.0). Forwarded to the sidecar.", - "x-example": null, - "format": "float", - "x-nullable": true - }, - "metricsSlowQueryLogThresholdMs": { - "type": "integer", - "description": "Threshold in ms above which queries are logged as slow. Forwarded to the sidecar.", - "x-example": 0, - "format": "int32", - "x-nullable": true - }, - "sqlApiEnabled": { - "type": "boolean", - "description": "Enable the SQL API sidecar for this database.", - "x-example": false, - "x-nullable": true - }, - "sqlApiAllowedStatements": { - "type": "array", - "description": "Statement types the SQL API accepts. Allowed values: SELECT, INSERT, UPDATE, DELETE, CREATE, ALTER, DROP, TRUNCATE, GRANT, REVOKE.", - "x-example": null, - "items": { - "type": "string" - }, - "x-nullable": true - }, - "sqlApiMaxRows": { - "type": "integer", - "description": "Maximum rows returned per SQL API execution (1-1000000).", - "x-example": 1, - "format": "int32", - "x-nullable": true - }, - "sqlApiMaxBytes": { - "type": "integer", - "description": "Maximum serialised SQL API result payload in bytes (1024-104857600).", - "x-example": 1024, - "format": "int32", - "x-nullable": true - }, - "sqlApiTimeoutSeconds": { - "type": "integer", - "description": "Per-call SQL API execution timeout in seconds (1-300).", - "x-example": 1, - "format": "int32", - "x-nullable": true + "description": "Target engine version to upgrade to.", + "x-example": "<TARGET_VERSION>" } - } + }, + "required": [ + "targetVersion" + ] } } } } - }, - "delete": { - "summary": "Delete dedicated 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": { - "method": "delete", - "group": "databases", - "cookies": false, - "type": "", - "demo": "postgresql\/delete.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "databases.write", - "platforms": [ - "console" - ], - "packaging": false, - "public": true, - "produces": [ - "application\/json" - ], - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [] - } - ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "x-example": "<DATABASE_ID>" - }, - "in": "path" - } - ] } }, - "\/postgresql\/{databaseId}\/backups": { + "\/presences": { "get": { - "summary": "List database backups.", - "operationId": "postgresqlListBackups", + "summary": "List presences", + "operationId": "presencesList", "tags": [ - "postgresql" + "presences" ], - "description": "List all backups for a dedicated database. Results can be filtered by status and type.", + "description": "List presence logs. Expired entries are filtered out automatically.\n", "responses": { "200": { - "description": "BackupList", + "description": "Presences List", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/dedicatedDatabaseBackupList" + "$ref": "#\/components\/schemas\/presenceList" } } } @@ -53357,43 +54756,39 @@ }, "deprecated": false, "x-appwrite": { - "method": "listBackups", - "group": "databases", + "method": "list", + "group": "presences", "cookies": false, "type": "", - "demo": "postgresql\/list-backups.md", + "demo": "presences\/list.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "databases.read", + "scope": "presences.read", "platforms": [ - "console" + "console", + "server", + "client" ], "packaging": false, "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/presences\/list.md", "auth": { "Project": [] } }, "security": [ { - "Project": [] + "Project": [], + "Key": [], + "Session": [], + "JWT": [] } ], "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "x-example": "<DATABASE_ID>" - }, - "in": "path" - }, { "name": "queries", - "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/queries). Maximum of 100 queries are allowed, each 4096 characters long. You may filter on the following attributes: status, type, databaseId", + "description": "Array of query strings generated using the Query class provided by the SDK.", "required": false, "schema": { "type": "array", @@ -53403,23 +54798,48 @@ "default": [] }, "in": "query" + }, + { + "name": "total", + "description": "When set to false, the total count returned will be 0 and will not be calculated.", + "required": false, + "schema": { + "type": "boolean", + "x-example": false, + "default": true + }, + "in": "query" + }, + { + "name": "ttl", + "description": "TTL (seconds) for caching list responses. Responses are stored in an in-memory key-value cache, keyed per project, collection, schema version (attributes and indexes), caller authorization roles, and the exact query \u2014 so users with different permissions never share cached entries. Schema changes invalidate cached entries automatically; document writes do not, so choose a TTL you are comfortable serving as stale data. Set to 0 to disable caching. Must be between 0 and 86400 (24 hours).", + "required": false, + "schema": { + "type": "integer", + "format": "int32", + "x-example": 0, + "default": 0 + }, + "in": "query" } ] - }, - "post": { - "summary": "Create a database backup.", - "operationId": "postgresqlCreateBackup", + } + }, + "\/presences\/usage": { + "get": { + "summary": "Get presence usage", + "operationId": "presencesGetUsage", "tags": [ - "postgresql" + "presences" ], - "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.", + "description": "Get presence usage metrics, including the current total of online users and historical online user counts for the selected time range.\n", "responses": { - "202": { - "description": "Backup", + "200": { + "description": "UsagePresence", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/dedicatedDatabaseBackup" + "$ref": "#\/components\/schemas\/usagePresence" } } } @@ -53427,20 +54847,21 @@ }, "deprecated": false, "x-appwrite": { - "method": "createBackup", - "group": "databases", + "method": "getUsage", + "group": null, "cookies": false, "type": "", - "demo": "postgresql\/create-backup.md", + "demo": "presences\/get-usage.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "databases.write", + "scope": "presences.read", "platforms": [ "console" ], "packaging": false, "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/presences\/get-usage.md", "auth": { "Project": [] } @@ -53452,50 +54873,45 @@ ], "parameters": [ { - "name": "databaseId", - "description": "Database ID.", - "required": true, + "name": "range", + "description": "Date range.", + "required": false, "schema": { "type": "string", - "x-example": "<DATABASE_ID>" + "x-example": "24h", + "enum": [ + "24h", + "30d", + "90d" + ], + "x-enum-name": "UsageRange", + "x-enum-keys": [ + "Twenty Four Hours", + "Thirty Days", + "Ninety Days" + ], + "default": "30d" }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "type": { - "type": "string", - "description": "Backup type: full or incremental.", - "default": "full", - "x-example": "full" - } - } - } - } + "in": "query" } - } + ] } }, - "\/postgresql\/{databaseId}\/backups\/policies": { + "\/presences\/{presenceId}": { "get": { - "summary": "List database backup policies.", - "operationId": "postgresqlListBackupPolicies", + "summary": "Get presence", + "operationId": "presencesGet", "tags": [ - "postgresql" + "presences" ], - "description": "List scheduled backup policies for a dedicated database.", + "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": "Backup policy list", + "description": "Presence", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/backupPolicyList" + "$ref": "#\/components\/schemas\/presence" } } } @@ -53503,69 +54919,62 @@ }, "deprecated": false, "x-appwrite": { - "method": "listBackupPolicies", - "group": "databases", + "method": "get", + "group": "presences", "cookies": false, "type": "", - "demo": "postgresql\/list-backup-policies.md", + "demo": "presences\/get.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "databases.read", + "scope": "presences.read", "platforms": [ - "console" + "console", + "server", + "client" ], "packaging": false, "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/presences\/get.md", "auth": { "Project": [] } }, "security": [ { - "Project": [] + "Project": [], + "Key": [], + "Session": [], + "JWT": [] } ], "parameters": [ { - "name": "databaseId", - "description": "Database ID.", + "name": "presenceId", + "description": "Presence unique ID.", "required": true, "schema": { "type": "string", - "x-example": "<DATABASE_ID>" + "x-example": "<PRESENCE_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 a database backup policy.", - "operationId": "postgresqlCreateBackupPolicy", + "put": { + "summary": "Upsert presence", + "operationId": "presencesUpsert", "tags": [ - "postgresql" + "presences" ], - "description": "Create a scheduled backup policy for a dedicated database.", + "description": "Create or update a presence log by its user ID.\n", "responses": { - "201": { - "description": "backup", + "200": { + "description": "Presence", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/backupPolicy" + "$ref": "#\/components\/schemas\/presence" } } } @@ -53573,37 +54982,70 @@ }, "deprecated": false, "x-appwrite": { - "method": "createBackupPolicy", - "group": "databases", + "method": "upsert", + "group": "presences", "cookies": false, "type": "", - "demo": "postgresql\/create-backup-policy.md", + "demo": "presences\/upsert.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "databases.write", + "scope": "presences.write", "platforms": [ + "client", "console" ], "packaging": false, "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/presences\/upsert.md", + "methods": [ + { + "name": "upsert", + "namespace": "presences", + "desc": "Upsert presence", + "auth": { + "Project": [] + }, + "parameters": [ + "presenceId", + "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": [] + "Project": [], + "Session": [] } ], "parameters": [ { - "name": "databaseId", - "description": "Database ID.", + "name": "presenceId", + "description": "Presence unique ID.", "required": true, "schema": { "type": "string", - "x-example": "<DATABASE_ID>" + "x-example": "<PRESENCE_ID>" }, "in": "path" } @@ -53614,70 +55056,59 @@ "schema": { "type": "object", "properties": { - "policyId": { - "type": "string", - "description": "Policy ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.", - "x-example": "<POLICY_ID>", - "x-appwrite": { - "idGenerator": "ID.unique" - } - }, - "name": { + "userId": { "type": "string", - "description": "Policy name. Max length: 128 chars.", - "x-example": "<NAME>" + "description": "User ID.", + "x-example": "<USER_ID>" }, - "schedule": { + "status": { "type": "string", - "description": "Schedule CRON syntax.", - "x-example": null + "description": "Presence status.", + "x-example": "<STATUS>" }, - "retention": { - "type": "integer", - "description": "Days to keep backups before deletion.", - "x-example": 1, - "format": "int32" + "permissions": { + "type": "array", + "description": "An array of permissions strings. By default, only the current user is granted all permissions. [Learn more about permissions](https:\/\/appwrite.io\/docs\/permissions).", + "x-example": "[\"read(\"any\")\"]", + "items": { + "type": "string" + } }, - "type": { + "expiresAt": { "type": "string", - "description": "Backup type: full or incremental.", - "default": "full", - "x-example": "full" + "description": "Presence expiry datetime.", + "x-example": "2020-10-15T06:38:00.000+00:00", + "format": "datetime" }, - "enabled": { - "type": "boolean", - "description": "Is policy enabled? When disabled, no backups will be taken.", - "default": true, - "x-example": false + "metadata": { + "type": "object", + "description": "Presence metadata object.", + "default": [], + "x-example": "{}" } }, "required": [ - "policyId", - "name", - "schedule", - "retention" + "status" ] } } } } - } - }, - "\/postgresql\/{databaseId}\/backups\/policies\/{policyId}": { - "get": { - "summary": "Get a database backup policy.", - "operationId": "postgresqlGetBackupPolicy", + }, + "patch": { + "summary": "Update presence", + "operationId": "presencesUpdate", "tags": [ - "postgresql" + "presences" ], - "description": "Get a scheduled backup policy for a dedicated database.", + "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": "backup", + "description": "Presence", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/backupPolicy" + "$ref": "#\/components\/schemas\/presence" } } } @@ -53685,114 +55116,70 @@ }, "deprecated": false, "x-appwrite": { - "method": "getBackupPolicy", - "group": "databases", + "method": "update", + "group": "presences", "cookies": false, "type": "", - "demo": "postgresql\/get-backup-policy.md", + "demo": "presences\/update.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "databases.read", + "scope": "presences.write", "platforms": [ + "client", "console" ], "packaging": false, "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/presences\/update.md", + "methods": [ + { + "name": "update", + "namespace": "presences", + "desc": "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": [] + "Project": [], + "Session": [] } ], "parameters": [ { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "x-example": "<DATABASE_ID>" - }, - "in": "path" - }, - { - "name": "policyId", - "description": "Policy ID.", + "name": "presenceId", + "description": "Presence unique ID.", "required": true, "schema": { "type": "string", - "x-example": "<POLICY_ID>" - }, - "in": "path" - } - ] - }, - "patch": { - "summary": "Update a database 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": { - "method": "updateBackupPolicy", - "group": "databases", - "cookies": false, - "type": "", - "demo": "postgresql\/update-backup-policy.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "databases.write", - "platforms": [ - "console" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [] - } - ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "x-example": "<DATABASE_ID>" - }, - "in": "path" - }, - { - "name": "policyId", - "description": "Policy ID.", - "required": true, - "schema": { - "type": "string", - "x-example": "<POLICY_ID>" + "x-example": "<PRESENCE_ID>" }, "in": "path" } @@ -53803,29 +55190,41 @@ "schema": { "type": "object", "properties": { - "name": { + "userId": { "type": "string", - "description": "Policy name. Max length: 128 chars.", - "x-example": "<NAME>", - "x-nullable": true + "description": "User ID.", + "x-example": "<USER_ID>" }, - "schedule": { + "status": { "type": "string", - "description": "Schedule CRON syntax.", - "x-example": null + "description": "Presence status.", + "x-example": "<STATUS>" }, - "retention": { - "type": "integer", - "description": "Days to keep backups before deletion.", - "x-example": 1, - "format": "int32", - "x-nullable": true + "expiresAt": { + "type": "string", + "description": "Presence expiry datetime.", + "x-example": "2020-10-15T06:38:00.000+00:00", + "format": "datetime" }, - "enabled": { + "metadata": { + "type": "object", + "description": "Presence metadata object.", + "default": {}, + "x-example": "{}" + }, + "permissions": { + "type": "array", + "description": "An array of permissions strings. By default, only the current user is granted all permissions. [Learn more about permissions](https:\/\/appwrite.io\/docs\/permissions).", + "x-example": "[\"read(\"any\")\"]", + "items": { + "type": "string" + } + }, + "purge": { "type": "boolean", - "description": "Is policy enabled? When disabled, no backups will be taken.", - "x-example": false, - "x-nullable": true + "description": "When true, purge cached responses used by list presences endpoint.", + "default": false, + "x-example": false } } } @@ -53834,12 +55233,12 @@ } }, "delete": { - "summary": "Delete a database backup policy.", - "operationId": "postgresqlDeleteBackupPolicy", + "summary": "Delete presence", + "operationId": "presencesDelete", "tags": [ - "postgresql" + "presences" ], - "description": "Delete a scheduled backup policy for a dedicated database. Backups already taken by the policy are kept until their retention expires.", + "description": "Delete a presence log by its unique ID.\n", "responses": { "204": { "description": "No content" @@ -53847,71 +55246,64 @@ }, "deprecated": false, "x-appwrite": { - "method": "deleteBackupPolicy", - "group": "databases", + "method": "delete", + "group": "presences", "cookies": false, "type": "", - "demo": "postgresql\/delete-backup-policy.md", + "demo": "presences\/delete.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "databases.write", + "scope": "presences.write", "platforms": [ - "console" + "console", + "server", + "client" ], "packaging": false, "public": true, - "produces": [ - "application\/json" - ], + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/presences\/delete.md", "auth": { "Project": [] } }, "security": [ { - "Project": [] + "Project": [], + "Key": [], + "Session": [], + "JWT": [] } ], "parameters": [ { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "x-example": "<DATABASE_ID>" - }, - "in": "path" - }, - { - "name": "policyId", - "description": "Policy ID.", + "name": "presenceId", + "description": "Presence unique ID.", "required": true, "schema": { "type": "string", - "x-example": "<POLICY_ID>" + "x-example": "<PRESENCE_ID>" }, "in": "path" } ] } }, - "\/postgresql\/{databaseId}\/backups\/storage": { - "put": { - "summary": "Update database backup storage.", - "operationId": "postgresqlUpdateBackupStorage", + "\/project": { + "get": { + "summary": "Get project", + "operationId": "projectGet", "tags": [ - "postgresql" + "project" ], - "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.", + "description": "Get a project.", "responses": { "200": { - "description": "BackupStorageConfig", + "description": "Project", "content": { - "application\/json": { + "": { "schema": { - "$ref": "#\/components\/schemas\/dedicatedDatabaseBackupStorage" + "$ref": "#\/components\/schemas\/project" } } } @@ -53919,17 +55311,18 @@ }, "deprecated": false, "x-appwrite": { - "method": "updateBackupStorage", - "group": "databases", + "method": "get", + "group": null, "cookies": false, "type": "", - "demo": "postgresql\/update-backup-storage.md", + "demo": "project\/get.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "databases.write", + "scope": "project.read", "platforms": [ - "console" + "console", + "server" ], "packaging": false, "public": true, @@ -53939,111 +55332,37 @@ }, "security": [ { - "Project": [] - } - ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "x-example": "<DATABASE_ID>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "provider": { - "type": "string", - "description": "Storage provider for off-cluster backups. Allowed values: s3 (Amazon S3 or S3-compatible), gcs (Google Cloud Storage), azure (Azure Blob Storage).", - "x-example": "s3" - }, - "bucket": { - "type": "string", - "description": "Storage bucket or container name.", - "x-example": "<BUCKET>" - }, - "region": { - "type": "string", - "description": "Storage region.", - "default": "", - "x-example": "<REGION>" - }, - "prefix": { - "type": "string", - "description": "Object key prefix for backups.", - "default": "backups\/", - "x-example": "<PREFIX>" - }, - "endpoint": { - "type": "string", - "description": "Custom endpoint for S3-compatible storage (e.g. MinIO).", - "default": "", - "x-example": "<ENDPOINT>" - }, - "accessKey": { - "type": "string", - "description": "Access key or client ID for authentication.", - "x-example": "<ACCESS_KEY>" - }, - "secretKey": { - "type": "string", - "description": "Secret key or service account JSON for authentication.", - "x-example": "<SECRET_KEY>" - } - }, - "required": [ - "provider", - "bucket", - "accessKey", - "secretKey" - ] - } - } + "Project": [], + "Key": [] } - } - } - }, - "\/postgresql\/{databaseId}\/backups\/{backupId}": { - "get": { - "summary": "Get a database backup.", - "operationId": "postgresqlGetBackup", + ] + }, + "delete": { + "summary": "Delete project", + "operationId": "projectDelete", "tags": [ - "postgresql" + "project" ], - "description": "Get details of a specific database backup including its status, size, and timestamps.", + "description": "Delete a project.", "responses": { - "200": { - "description": "Backup", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/dedicatedDatabaseBackup" - } - } - } + "204": { + "description": "No content" } }, "deprecated": false, "x-appwrite": { - "method": "getBackup", - "group": "databases", + "method": "delete", + "group": null, "cookies": false, "type": "", - "demo": "postgresql\/get-backup.md", + "demo": "project\/delete.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "databases.read", + "scope": "project.write", "platforms": [ - "console" + "console", + "server" ], "packaging": false, "public": true, @@ -54053,111 +55372,126 @@ }, "security": [ { - "Project": [] - } - ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "x-example": "<DATABASE_ID>" - }, - "in": "path" - }, - { - "name": "backupId", - "description": "Backup ID.", - "required": true, - "schema": { - "type": "string", - "x-example": "<BACKUP_ID>" - }, - "in": "path" + "Project": [], + "Key": [] } ] - }, - "delete": { - "summary": "Delete a database backup.", - "operationId": "postgresqlDeleteBackup", + } + }, + "\/project\/auth-methods\/{methodId}": { + "patch": { + "summary": "Update project auth method status", + "operationId": "projectUpdateAuthMethod", "tags": [ - "postgresql" + "project" ], - "description": "Delete a database backup. This will permanently remove the backup from storage and cannot be undone.", + "description": "Update properties of a specific auth method. Use this endpoint to enable or disable a method in your project. ", "responses": { - "204": { - "description": "No content" + "200": { + "description": "Project", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/project" + } + } + } } }, "deprecated": false, "x-appwrite": { - "method": "deleteBackup", - "group": "databases", + "method": "updateAuthMethod", + "group": null, "cookies": false, "type": "", - "demo": "postgresql\/delete-backup.md", + "demo": "project\/update-auth-method.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "databases.write", + "scope": "project.write", "platforms": [ - "console" + "console", + "server" ], "packaging": false, "public": true, - "produces": [ - "application\/json" - ], "auth": { "Project": [] } }, "security": [ { - "Project": [] + "Project": [], + "Key": [] } ], "parameters": [ { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "x-example": "<DATABASE_ID>" - }, - "in": "path" - }, - { - "name": "backupId", - "description": "Backup ID.", + "name": "methodId", + "description": "Auth Method ID. Possible values: email-password,magic-url,email-otp,anonymous,invites,jwt,phone", "required": true, "schema": { "type": "string", - "x-example": "<BACKUP_ID>" + "x-example": "email-password", + "enum": [ + "email-password", + "magic-url", + "email-otp", + "anonymous", + "invites", + "jwt", + "phone" + ], + "x-enum-name": "ProjectAuthMethodId", + "x-enum-keys": [ + "email-password", + "magic-url", + "email-otp", + "anonymous", + "invites", + "jwt", + "phone" + ] }, "in": "path" } - ] + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "enabled": { + "type": "boolean", + "description": "Auth method status.", + "x-example": false + } + }, + "required": [ + "enabled" + ] + } + } + } + } } }, - "\/postgresql\/{databaseId}\/branches": { + "\/project\/keys": { "get": { - "summary": "List database branches.", - "operationId": "postgresqlListBranches", + "summary": "List project keys", + "operationId": "projectListKeys", "tags": [ - "postgresql" + "project" ], - "description": "List all ephemeral branches for a dedicated database. Returns branch metadata including ID, name, namespace, and expiration time.", + "description": "Get a list of all API keys from the current project.", "responses": { "200": { - "description": "BranchList", + "description": "API Keys List", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/dedicatedDatabaseBranchList" + "$ref": "#\/components\/schemas\/keyList" } } } @@ -54165,17 +55499,18 @@ }, "deprecated": false, "x-appwrite": { - "method": "listBranches", - "group": "databases", + "method": "listKeys", + "group": "keys", "cookies": false, "type": "", - "demo": "postgresql\/list-branches.md", + "demo": "project\/list-keys.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "databases.read", + "scope": "keys.read", "platforms": [ - "console" + "console", + "server" ], "packaging": false, "public": true, @@ -54185,36 +55520,51 @@ }, "security": [ { - "Project": [] + "Project": [], + "Key": [] } ], "parameters": [ { - "name": "databaseId", - "description": "Database ID.", - "required": true, + "name": "queries", + "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/queries). Maximum of 100 queries are allowed, each 4096 characters long. You may filter on the following attributes: expire, accessedAt, name, scopes", + "required": false, "schema": { - "type": "string", - "x-example": "<DATABASE_ID>" + "type": "array", + "items": { + "type": "string" + }, + "default": [] }, - "in": "path" + "in": "query" + }, + { + "name": "total", + "description": "When set to false, the total count returned will be 0 and will not be calculated.", + "required": false, + "schema": { + "type": "boolean", + "x-example": false, + "default": true + }, + "in": "query" } ] }, "post": { - "summary": "Create a database branch.", - "operationId": "postgresqlCreateBranch", + "summary": "Create project key", + "operationId": "projectCreateKey", "tags": [ - "postgresql" + "project" ], - "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.", + "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": { - "202": { - "description": "DedicatedDatabase", + "201": { + "description": "Key", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/dedicatedDatabase" + "$ref": "#\/components\/schemas\/key" } } } @@ -54222,17 +55572,18 @@ }, "deprecated": false, "x-appwrite": { - "method": "createBranch", - "group": "databases", + "method": "createKey", + "group": "keys", "cookies": false, "type": "", - "demo": "postgresql\/create-branch.md", + "demo": "project\/create-key.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "databases.write", + "scope": "keys.write", "platforms": [ - "console" + "console", + "server" ], "packaging": false, "public": true, @@ -54242,19 +55593,8 @@ }, "security": [ { - "Project": [] - } - ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "x-example": "<DATABASE_ID>" - }, - "in": "path" + "Project": [], + "Key": [] } ], "requestBody": { @@ -54263,242 +55603,252 @@ "schema": { "type": "object", "properties": { - "branchId": { + "keyId": { "type": "string", - "description": "Branch ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.", - "default": "", - "x-example": "<BRANCH_ID>", + "description": "Key ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.", + "x-example": "<KEY_ID>", "x-appwrite": { "idGenerator": "ID.unique" } }, - "ttl": { - "type": "integer", - "description": "Time-to-live in seconds before the branch expires. Min 300 (5 min), max 604800 (7 days). Default: 86400 (24h).", - "default": 86400, - "x-example": 300, - "format": "int32" - } - } - } - } - } - } - } - }, - "\/postgresql\/{databaseId}\/branches\/{branchId}": { - "delete": { - "summary": "Delete a database 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": { - "method": "deleteBranch", - "group": "databases", - "cookies": false, - "type": "", - "demo": "postgresql\/delete-branch.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "databases.write", - "platforms": [ - "console" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [] - } - ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "x-example": "<DATABASE_ID>" - }, - "in": "path" - }, - { - "name": "branchId", - "description": "Branch ID.", - "required": true, - "schema": { - "type": "string", - "x-example": "<BRANCH_ID>" - }, - "in": "path" - } - ] - } - }, - "\/postgresql\/{databaseId}\/credentials": { - "patch": { - "summary": "Rotate database credentials.", - "operationId": "postgresqlUpdateCredentials", - "tags": [ - "postgresql" - ], - "description": "Rotate the primary connection credentials for a dedicated database. Generates a new password and updates the database atomically. Previous credentials stop working immediately. Returns the database with a refreshed connection string carrying the new password.", - "responses": { - "200": { - "description": "DedicatedDatabase", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/dedicatedDatabase" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "method": "updateCredentials", - "group": "databases", - "cookies": false, - "type": "", - "demo": "postgresql\/update-credentials.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "databases.write", - "platforms": [ - "console" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [] - } - ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "x-example": "<DATABASE_ID>" - }, - "in": "path" - } - ] - } - }, - "\/postgresql\/{databaseId}\/executions": { - "post": { - "summary": "Execute a SQL statement against a dedicated database.", - "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": { - "method": "createExecution", - "group": "databases", - "cookies": false, - "type": "", - "demo": "postgresql\/create-execution.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "databases.write", - "platforms": [ - "console" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [] - } - ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "x-example": "<DATABASE_ID>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "sql": { + "name": { "type": "string", - "description": "SQL statement to execute. Exactly one statement per request.", - "x-example": "<SQL>" + "description": "Key name. Max length: 128 chars.", + "x-example": "<NAME>" }, - "bindings": { - "type": "object", - "description": "Optional bound parameters. Pass either a positional list or a name => value map matching the placeholder style used in the SQL.", - "default": {}, - "x-example": "{}", - "x-nullable": true + "scopes": { + "type": "array", + "description": "Key scopes list. Maximum of 200 scopes are allowed.", + "x-example": null, + "items": { + "type": "string", + "enum": [ + "project.read", + "project.write", + "keys.read", + "keys.write", + "platforms.read", + "platforms.write", + "mocks.read", + "mocks.write", + "policies.read", + "policies.write", + "project.policies.read", + "project.policies.write", + "project.oauth2.read", + "project.oauth2.write", + "templates.read", + "templates.write", + "stages.read", + "stages.write", + "users.read", + "users.write", + "sessions.read", + "sessions.write", + "teams.read", + "teams.write", + "databases.read", + "databases.write", + "tables.read", + "tables.write", + "columns.read", + "columns.write", + "indexes.read", + "indexes.write", + "rows.read", + "rows.write", + "collections.read", + "collections.write", + "attributes.read", + "attributes.write", + "documents.read", + "documents.write", + "buckets.read", + "buckets.write", + "files.read", + "files.write", + "tokens.read", + "tokens.write", + "functions.read", + "functions.write", + "executions.read", + "executions.write", + "execution.read", + "execution.write", + "sites.read", + "sites.write", + "log.read", + "log.write", + "providers.read", + "providers.write", + "topics.read", + "topics.write", + "subscribers.read", + "subscribers.write", + "targets.read", + "targets.write", + "messages.read", + "messages.write", + "rules.read", + "rules.write", + "webhooks.read", + "webhooks.write", + "locale.read", + "avatars.read", + "health.read", + "assistant.read", + "migrations.read", + "migrations.write", + "schedules.read", + "schedules.write", + "vcs.read", + "vcs.write", + "insights.read", + "insights.write", + "reports.read", + "reports.write", + "presences.read", + "presences.write", + "backups.policies.read", + "backups.policies.write", + "archives.read", + "archives.write", + "restorations.read", + "restorations.write", + "dedicatedDatabases.execute", + "domains.read", + "domains.write", + "wafRules.read", + "wafRules.write", + "events.read", + "apps.read", + "apps.write", + "oauth2.read", + "oauth2.write", + "oauth2.introspect", + "usage.read" + ], + "x-enum-name": "ProjectKeyScopes", + "x-enum-keys": [ + "project.read", + "project.write", + "keys.read", + "keys.write", + "platforms.read", + "platforms.write", + "mocks.read", + "mocks.write", + "policies.read", + "policies.write", + "project.policies.read", + "project.policies.write", + "project.oauth2.read", + "project.oauth2.write", + "templates.read", + "templates.write", + "stages.read", + "stages.write", + "users.read", + "users.write", + "sessions.read", + "sessions.write", + "teams.read", + "teams.write", + "databases.read", + "databases.write", + "tables.read", + "tables.write", + "columns.read", + "columns.write", + "indexes.read", + "indexes.write", + "rows.read", + "rows.write", + "collections.read", + "collections.write", + "attributes.read", + "attributes.write", + "documents.read", + "documents.write", + "buckets.read", + "buckets.write", + "files.read", + "files.write", + "tokens.read", + "tokens.write", + "functions.read", + "functions.write", + "executions.read", + "executions.write", + "execution.read", + "execution.write", + "sites.read", + "sites.write", + "log.read", + "log.write", + "providers.read", + "providers.write", + "topics.read", + "topics.write", + "subscribers.read", + "subscribers.write", + "targets.read", + "targets.write", + "messages.read", + "messages.write", + "rules.read", + "rules.write", + "webhooks.read", + "webhooks.write", + "locale.read", + "avatars.read", + "health.read", + "assistant.read", + "migrations.read", + "migrations.write", + "schedules.read", + "schedules.write", + "vcs.read", + "vcs.write", + "insights.read", + "insights.write", + "reports.read", + "reports.write", + "presences.read", + "presences.write", + "backups.policies.read", + "backups.policies.write", + "archives.read", + "archives.write", + "restorations.read", + "restorations.write", + "dedicatedDatabases.execute", + "domains.read", + "domains.write", + "wafRules.read", + "wafRules.write", + "events.read", + "apps.read", + "apps.write", + "oauth2.read", + "oauth2.write", + "oauth2.introspect", + "usage.read" + ] + } }, - "timeoutSeconds": { - "type": "integer", - "description": "Per-call execution timeout override. Must be less than or equal to the database's configured sqlApiTimeoutSeconds.", - "x-example": 1, - "format": "int32", + "expire": { + "type": "string", + "description": "Expiration time in [ISO 8601](https:\/\/www.iso.org\/iso-8601-date-and-time-format.html) format. Use null for unlimited expiration.", + "x-example": "2020-10-15T06:38:00.000+00:00", + "format": "datetime", "x-nullable": true } }, "required": [ - "sql" + "keyId", + "name", + "scopes" ] } } @@ -54506,78 +55856,21 @@ } } }, - "\/postgresql\/{databaseId}\/extensions": { - "get": { - "summary": "List database 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": { - "method": "listExtensions", - "group": "databases", - "cookies": false, - "type": "", - "demo": "postgresql\/list-extensions.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "databases.read", - "platforms": [ - "console" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [] - } - ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "x-example": "<DATABASE_ID>" - }, - "in": "path" - } - ] - }, + "\/project\/keys\/ephemeral": { "post": { - "summary": "Install a database extension.", - "operationId": "postgresqlCreateExtension", + "summary": "Create ephemeral project key", + "operationId": "projectCreateEphemeralKey", "tags": [ - "postgresql" + "project" ], - "description": "Install a database extension. Only available for PostgreSQL databases. The install runs asynchronously; poll the extensions list endpoint for status.", + "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": { - "202": { - "description": "DedicatedDatabase", + "201": { + "description": "Ephemeral Key", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/dedicatedDatabase" + "$ref": "#\/components\/schemas\/ephemeralKey" } } } @@ -54585,17 +55878,18 @@ }, "deprecated": false, "x-appwrite": { - "method": "createExtension", - "group": "databases", + "method": "createEphemeralKey", + "group": "keys", "cookies": false, "type": "", - "demo": "postgresql\/create-extension.md", + "demo": "project\/create-ephemeral-key.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "databases.write", + "scope": "keys.write", "platforms": [ - "console" + "console", + "server" ], "packaging": false, "public": true, @@ -54605,19 +55899,8 @@ }, "security": [ { - "Project": [] - } - ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "x-example": "<DATABASE_ID>" - }, - "in": "path" + "Project": [], + "Key": [] } ], "requestBody": { @@ -54626,14 +55909,237 @@ "schema": { "type": "object", "properties": { - "name": { - "type": "string", - "description": "Extension name (e.g., pgvector, postgis, uuid-ossp).", - "x-example": "<NAME>" + "scopes": { + "type": "array", + "description": "Key scopes list. Maximum of 200 scopes are allowed.", + "x-example": null, + "items": { + "type": "string", + "enum": [ + "project.read", + "project.write", + "keys.read", + "keys.write", + "platforms.read", + "platforms.write", + "mocks.read", + "mocks.write", + "policies.read", + "policies.write", + "project.policies.read", + "project.policies.write", + "project.oauth2.read", + "project.oauth2.write", + "templates.read", + "templates.write", + "stages.read", + "stages.write", + "users.read", + "users.write", + "sessions.read", + "sessions.write", + "teams.read", + "teams.write", + "databases.read", + "databases.write", + "tables.read", + "tables.write", + "columns.read", + "columns.write", + "indexes.read", + "indexes.write", + "rows.read", + "rows.write", + "collections.read", + "collections.write", + "attributes.read", + "attributes.write", + "documents.read", + "documents.write", + "buckets.read", + "buckets.write", + "files.read", + "files.write", + "tokens.read", + "tokens.write", + "functions.read", + "functions.write", + "executions.read", + "executions.write", + "execution.read", + "execution.write", + "sites.read", + "sites.write", + "log.read", + "log.write", + "providers.read", + "providers.write", + "topics.read", + "topics.write", + "subscribers.read", + "subscribers.write", + "targets.read", + "targets.write", + "messages.read", + "messages.write", + "rules.read", + "rules.write", + "webhooks.read", + "webhooks.write", + "locale.read", + "avatars.read", + "health.read", + "assistant.read", + "migrations.read", + "migrations.write", + "schedules.read", + "schedules.write", + "vcs.read", + "vcs.write", + "insights.read", + "insights.write", + "reports.read", + "reports.write", + "presences.read", + "presences.write", + "backups.policies.read", + "backups.policies.write", + "archives.read", + "archives.write", + "restorations.read", + "restorations.write", + "dedicatedDatabases.execute", + "domains.read", + "domains.write", + "wafRules.read", + "wafRules.write", + "events.read", + "apps.read", + "apps.write", + "oauth2.read", + "oauth2.write", + "oauth2.introspect", + "usage.read" + ], + "x-enum-name": "ProjectKeyScopes", + "x-enum-keys": [ + "project.read", + "project.write", + "keys.read", + "keys.write", + "platforms.read", + "platforms.write", + "mocks.read", + "mocks.write", + "policies.read", + "policies.write", + "project.policies.read", + "project.policies.write", + "project.oauth2.read", + "project.oauth2.write", + "templates.read", + "templates.write", + "stages.read", + "stages.write", + "users.read", + "users.write", + "sessions.read", + "sessions.write", + "teams.read", + "teams.write", + "databases.read", + "databases.write", + "tables.read", + "tables.write", + "columns.read", + "columns.write", + "indexes.read", + "indexes.write", + "rows.read", + "rows.write", + "collections.read", + "collections.write", + "attributes.read", + "attributes.write", + "documents.read", + "documents.write", + "buckets.read", + "buckets.write", + "files.read", + "files.write", + "tokens.read", + "tokens.write", + "functions.read", + "functions.write", + "executions.read", + "executions.write", + "execution.read", + "execution.write", + "sites.read", + "sites.write", + "log.read", + "log.write", + "providers.read", + "providers.write", + "topics.read", + "topics.write", + "subscribers.read", + "subscribers.write", + "targets.read", + "targets.write", + "messages.read", + "messages.write", + "rules.read", + "rules.write", + "webhooks.read", + "webhooks.write", + "locale.read", + "avatars.read", + "health.read", + "assistant.read", + "migrations.read", + "migrations.write", + "schedules.read", + "schedules.write", + "vcs.read", + "vcs.write", + "insights.read", + "insights.write", + "reports.read", + "reports.write", + "presences.read", + "presences.write", + "backups.policies.read", + "backups.policies.write", + "archives.read", + "archives.write", + "restorations.read", + "restorations.write", + "dedicatedDatabases.execute", + "domains.read", + "domains.write", + "wafRules.read", + "wafRules.write", + "events.read", + "apps.read", + "apps.write", + "oauth2.read", + "oauth2.write", + "oauth2.introspect", + "usage.read" + ] + } + }, + "duration": { + "type": "integer", + "description": "Time in seconds before ephemeral key expires. Maximum duration is 3600 seconds.", + "x-example": "600", + "format": "int32" } }, "required": [ - "name" + "scopes", + "duration" ] } } @@ -54641,166 +56147,21 @@ } } }, - "\/postgresql\/{databaseId}\/extensions\/{extensionName}": { - "delete": { - "summary": "Uninstall a database 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": { - "method": "deleteExtension", - "group": "databases", - "cookies": false, - "type": "", - "demo": "postgresql\/delete-extension.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "databases.write", - "platforms": [ - "console" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [] - } - ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "x-example": "<DATABASE_ID>" - }, - "in": "path" - }, - { - "name": "extensionName", - "description": "Extension name to uninstall.", - "required": true, - "schema": { - "type": "string", - "x-example": "<EXTENSION_NAME>" - }, - "in": "path" - } - ] - } - }, - "\/postgresql\/{databaseId}\/failovers": { - "post": { - "summary": "Trigger manual 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.", - "responses": { - "202": { - "description": "DedicatedDatabase", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/dedicatedDatabase" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "method": "createFailover", - "group": "databases", - "cookies": false, - "type": "", - "demo": "postgresql\/create-failover.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "databases.write", - "platforms": [ - "console" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [] - } - ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "x-example": "<DATABASE_ID>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "targetReplicaId": { - "type": "string", - "description": "Target replica ID to promote. If not specified, the healthiest replica is selected.", - "x-example": "<TARGET_REPLICA_ID>", - "x-nullable": true - } - } - } - } - } - } - } - }, - "\/postgresql\/{databaseId}\/maintenance": { - "patch": { - "summary": "Update database maintenance window.", - "operationId": "postgresqlUpdateMaintenance", + "\/project\/keys\/{keyId}": { + "get": { + "summary": "Get project key", + "operationId": "projectGetKey", "tags": [ - "postgresql" + "project" ], - "description": "Update the maintenance window for a dedicated database. Maintenance operations like minor version upgrades will be performed during this window.", + "description": "Get a key by its unique ID. ", "responses": { "200": { - "description": "DedicatedDatabase", + "description": "Key", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/dedicatedDatabase" + "$ref": "#\/components\/schemas\/key" } } } @@ -54808,17 +56169,18 @@ }, "deprecated": false, "x-appwrite": { - "method": "updateMaintenance", - "group": "databases", + "method": "getKey", + "group": "keys", "cookies": false, "type": "", - "demo": "postgresql\/update-maintenance.md", + "demo": "project\/get-key.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "databases.write", + "scope": "keys.read", "platforms": [ - "console" + "console", + "server" ], "packaging": false, "public": true, @@ -54828,64 +56190,37 @@ }, "security": [ { - "Project": [] + "Project": [], + "Key": [] } ], "parameters": [ { - "name": "databaseId", - "description": "Database ID.", + "name": "keyId", + "description": "Key ID.", "required": true, "schema": { "type": "string", - "x-example": "<DATABASE_ID>" + "x-example": "<KEY_ID>" }, "in": "path" } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "day": { - "type": "string", - "description": "Day of the week for the maintenance window. Allowed values: sun, mon, tue, wed, thu, fri, sat.", - "x-example": "sun" - }, - "hourUtc": { - "type": "integer", - "description": "Hour in UTC (0-23) for maintenance window start.", - "x-example": 0, - "format": "int32" - } - }, - "required": [ - "day", - "hourUtc" - ] - } - } - } - } - } - }, - "\/postgresql\/{databaseId}\/migrations": { - "post": { - "summary": "Migrate database between shared and dedicated.", - "operationId": "postgresqlCreateMigration", + ] + }, + "put": { + "summary": "Update project key", + "operationId": "projectUpdateKey", "tags": [ - "postgresql" + "project" ], - "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.", + "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": "DedicatedDatabase", + "description": "Key", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/dedicatedDatabase" + "$ref": "#\/components\/schemas\/key" } } } @@ -54893,17 +56228,18 @@ }, "deprecated": false, "x-appwrite": { - "method": "createMigration", - "group": "databases", + "method": "updateKey", + "group": "keys", "cookies": false, "type": "", - "demo": "postgresql\/create-migration.md", + "demo": "project\/update-key.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "databases.write", + "scope": "keys.write", "platforms": [ - "console" + "console", + "server" ], "packaging": false, "public": true, @@ -54913,17 +56249,18 @@ }, "security": [ { - "Project": [] + "Project": [], + "Key": [] } ], "parameters": [ { - "name": "databaseId", - "description": "Database ID.", + "name": "keyId", + "description": "Key ID.", "required": true, "schema": { "type": "string", - "x-example": "<DATABASE_ID>" + "x-example": "<KEY_ID>" }, "in": "path" } @@ -54934,119 +56271,275 @@ "schema": { "type": "object", "properties": { - "targetType": { + "name": { "type": "string", - "description": "Target database type to migrate to. Allowed values: shared (serverless, scales to zero when idle), dedicated (always-on with persistent resources).", - "x-example": "shared" + "description": "Key name. Max length: 128 chars.", + "x-example": "<NAME>" }, - "specification": { - "type": "string", - "description": "Target specification to provision when migrating to dedicated. Ignored for shared. Defaults to the database's current specification.", - "x-example": "<SPECIFICATION>", - "x-nullable": true - } - }, - "required": [ - "targetType" - ] - } - } - } - } - } - }, - "\/postgresql\/{databaseId}\/pitr": { - "get": { - "summary": "Get PITR recovery windows.", - "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": { - "method": "getPitr", - "group": "databases", - "cookies": false, - "type": "", - "demo": "postgresql\/get-pitr.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "databases.read", - "platforms": [ - "console" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [] - } - ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "x-example": "<DATABASE_ID>" - }, - "in": "path" + "scopes": { + "type": "array", + "description": "Key scopes list. Maximum of 200 scopes are allowed.", + "x-example": null, + "items": { + "type": "string", + "enum": [ + "project.read", + "project.write", + "keys.read", + "keys.write", + "platforms.read", + "platforms.write", + "mocks.read", + "mocks.write", + "policies.read", + "policies.write", + "project.policies.read", + "project.policies.write", + "project.oauth2.read", + "project.oauth2.write", + "templates.read", + "templates.write", + "stages.read", + "stages.write", + "users.read", + "users.write", + "sessions.read", + "sessions.write", + "teams.read", + "teams.write", + "databases.read", + "databases.write", + "tables.read", + "tables.write", + "columns.read", + "columns.write", + "indexes.read", + "indexes.write", + "rows.read", + "rows.write", + "collections.read", + "collections.write", + "attributes.read", + "attributes.write", + "documents.read", + "documents.write", + "buckets.read", + "buckets.write", + "files.read", + "files.write", + "tokens.read", + "tokens.write", + "functions.read", + "functions.write", + "executions.read", + "executions.write", + "execution.read", + "execution.write", + "sites.read", + "sites.write", + "log.read", + "log.write", + "providers.read", + "providers.write", + "topics.read", + "topics.write", + "subscribers.read", + "subscribers.write", + "targets.read", + "targets.write", + "messages.read", + "messages.write", + "rules.read", + "rules.write", + "webhooks.read", + "webhooks.write", + "locale.read", + "avatars.read", + "health.read", + "assistant.read", + "migrations.read", + "migrations.write", + "schedules.read", + "schedules.write", + "vcs.read", + "vcs.write", + "insights.read", + "insights.write", + "reports.read", + "reports.write", + "presences.read", + "presences.write", + "backups.policies.read", + "backups.policies.write", + "archives.read", + "archives.write", + "restorations.read", + "restorations.write", + "dedicatedDatabases.execute", + "domains.read", + "domains.write", + "wafRules.read", + "wafRules.write", + "events.read", + "apps.read", + "apps.write", + "oauth2.read", + "oauth2.write", + "oauth2.introspect", + "usage.read" + ], + "x-enum-name": "ProjectKeyScopes", + "x-enum-keys": [ + "project.read", + "project.write", + "keys.read", + "keys.write", + "platforms.read", + "platforms.write", + "mocks.read", + "mocks.write", + "policies.read", + "policies.write", + "project.policies.read", + "project.policies.write", + "project.oauth2.read", + "project.oauth2.write", + "templates.read", + "templates.write", + "stages.read", + "stages.write", + "users.read", + "users.write", + "sessions.read", + "sessions.write", + "teams.read", + "teams.write", + "databases.read", + "databases.write", + "tables.read", + "tables.write", + "columns.read", + "columns.write", + "indexes.read", + "indexes.write", + "rows.read", + "rows.write", + "collections.read", + "collections.write", + "attributes.read", + "attributes.write", + "documents.read", + "documents.write", + "buckets.read", + "buckets.write", + "files.read", + "files.write", + "tokens.read", + "tokens.write", + "functions.read", + "functions.write", + "executions.read", + "executions.write", + "execution.read", + "execution.write", + "sites.read", + "sites.write", + "log.read", + "log.write", + "providers.read", + "providers.write", + "topics.read", + "topics.write", + "subscribers.read", + "subscribers.write", + "targets.read", + "targets.write", + "messages.read", + "messages.write", + "rules.read", + "rules.write", + "webhooks.read", + "webhooks.write", + "locale.read", + "avatars.read", + "health.read", + "assistant.read", + "migrations.read", + "migrations.write", + "schedules.read", + "schedules.write", + "vcs.read", + "vcs.write", + "insights.read", + "insights.write", + "reports.read", + "reports.write", + "presences.read", + "presences.write", + "backups.policies.read", + "backups.policies.write", + "archives.read", + "archives.write", + "restorations.read", + "restorations.write", + "dedicatedDatabases.execute", + "domains.read", + "domains.write", + "wafRules.read", + "wafRules.write", + "events.read", + "apps.read", + "apps.write", + "oauth2.read", + "oauth2.write", + "oauth2.introspect", + "usage.read" + ] + } + }, + "expire": { + "type": "string", + "description": "Expiration time in [ISO 8601](https:\/\/www.iso.org\/iso-8601-date-and-time-format.html) format. Use null for unlimited expiration.", + "x-example": "2020-10-15T06:38:00.000+00:00", + "format": "datetime", + "x-nullable": true + } + }, + "required": [ + "name", + "scopes" + ] + } + } } - ] - } - }, - "\/postgresql\/{databaseId}\/pooler": { - "get": { - "summary": "Get connection pooler configuration.", - "operationId": "postgresqlGetPooler", + } + }, + "delete": { + "summary": "Delete project key", + "operationId": "projectDeleteKey", "tags": [ - "postgresql" + "project" ], - "description": "Get the connection pooler configuration for a dedicated database. Returns pooler mode, max connections, and pool size settings.", + "description": "Delete a key by its unique ID. Once deleted, the key can no longer be used to authenticate API calls.", "responses": { - "200": { - "description": "PoolerConfig", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/dedicatedDatabasePooler" - } - } - } + "204": { + "description": "No content" } }, "deprecated": false, "x-appwrite": { - "method": "getPooler", - "group": "databases", + "method": "deleteKey", + "group": "keys", "cookies": false, "type": "", - "demo": "postgresql\/get-pooler.md", + "demo": "project\/delete-key.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "databases.read", + "scope": "keys.write", "platforms": [ - "console" + "console", + "server" ], "packaging": false, "public": true, @@ -55056,36 +56549,39 @@ }, "security": [ { - "Project": [] + "Project": [], + "Key": [] } ], "parameters": [ { - "name": "databaseId", - "description": "Database ID.", + "name": "keyId", + "description": "Key ID.", "required": true, "schema": { "type": "string", - "x-example": "<DATABASE_ID>" + "x-example": "<KEY_ID>" }, "in": "path" } ] - }, - "patch": { - "summary": "Update connection pooler configuration.", - "operationId": "postgresqlUpdatePooler", + } + }, + "\/project\/labels": { + "put": { + "summary": "Update project labels", + "operationId": "projectUpdateLabels", "tags": [ - "postgresql" + "project" ], - "description": "Update the connection pooler configuration for a dedicated database. Configure pool mode, max connections, and pool sizes.", + "description": "Update the project labels. Labels can be used to easily filter projects in an organization.", "responses": { "200": { - "description": "PoolerConfig", + "description": "Project", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/dedicatedDatabasePooler" + "$ref": "#\/components\/schemas\/project" } } } @@ -55093,17 +56589,18 @@ }, "deprecated": false, "x-appwrite": { - "method": "updatePooler", - "group": "databases", + "method": "updateLabels", + "group": null, "cookies": false, "type": "", - "demo": "postgresql\/update-pooler.md", + "demo": "project\/update-labels.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "databases.write", + "scope": "project.write", "platforms": [ - "console" + "console", + "server" ], "packaging": false, "public": true, @@ -55113,19 +56610,8 @@ }, "security": [ { - "Project": [] - } - ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "x-example": "<DATABASE_ID>" - }, - "in": "path" + "Project": [], + "Key": [] } ], "requestBody": { @@ -55134,78 +56620,39 @@ "schema": { "type": "object", "properties": { - "mode": { - "type": "string", - "description": "Connection pool mode. Allowed values: transaction, session. Transaction mode returns connections to the pool after each transaction; session mode holds connections for the entire session lifetime.", - "x-example": "transaction", - "x-nullable": true - }, - "maxConnections": { - "type": "integer", - "description": "Maximum pooled connections.", - "x-example": 10, - "format": "int32", - "x-nullable": true - }, - "defaultPoolSize": { - "type": "integer", - "description": "Default pool size per user.", - "x-example": 1, - "format": "int32", - "x-nullable": true - }, - "readWriteSplitting": { - "type": "boolean", - "description": "Route SELECTs to HA replicas, writes and locked reads to the primary. Defaults to true when HA is enabled.", - "x-example": false, - "x-nullable": true - }, - "poolerCpuRequest": { - "type": "string", - "description": "Pooler sidecar CPU request override (Kubernetes quantity, e.g. \"250m\" or \"1\"). Leave null for the proportional default (5% of DB CPU, floor 100m).", - "x-example": "<POOLER_CPU_REQUEST>", - "x-nullable": true - }, - "poolerCpuLimit": { - "type": "string", - "description": "Pooler sidecar CPU limit override (Kubernetes quantity, e.g. \"500m\" or \"1\"). Leave null for the proportional default (10% of DB CPU, floor 200m). Changing this field rolls the database pod.", - "x-example": "<POOLER_CPU_LIMIT>", - "x-nullable": true - }, - "poolerMemoryRequest": { - "type": "string", - "description": "Pooler sidecar memory request override (Kubernetes quantity, e.g. \"128Mi\" or \"1Gi\"). Leave null for the proportional default (7.5% of DB memory, floor 64Mi).", - "x-example": "<POOLER_MEMORY_REQUEST>", - "x-nullable": true - }, - "poolerMemoryLimit": { - "type": "string", - "description": "Pooler sidecar memory limit override (Kubernetes quantity, e.g. \"256Mi\" or \"1Gi\"). Leave null for the proportional default (15% of DB memory, floor 128Mi). Changing this field rolls the database pod.", - "x-example": "<POOLER_MEMORY_LIMIT>", - "x-nullable": true + "labels": { + "type": "array", + "description": "Array of project labels. Replaces the previous labels. Maximum of 1000 labels are allowed, each up to 36 alphanumeric characters long.", + "x-example": null, + "items": { + "type": "string" + } } - } + }, + "required": [ + "labels" + ] } } } } } }, - "\/postgresql\/{databaseId}\/replicas": { + "\/project\/mock-phones": { "get": { - "summary": "Get replica status.", - "operationId": "postgresqlGetReplicas", + "summary": "List project mock phones", + "operationId": "projectListMockPhones", "tags": [ - "postgresql" + "project" ], - "description": "Get high availability status for a dedicated database. Returns replica statuses, replication lag, and sync mode.", + "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": "Replicas", + "description": "Mock Numbers List", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/dedicatedDatabaseReplicas" + "$ref": "#\/components\/schemas\/mockNumberList" } } } @@ -55213,17 +56660,18 @@ }, "deprecated": false, "x-appwrite": { - "method": "getReplicas", - "group": "databases", + "method": "listMockPhones", + "group": "mocks", "cookies": false, "type": "", - "demo": "postgresql\/get-replicas.md", + "demo": "project\/list-mock-phones.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "databases.read", + "scope": "mocks.read", "platforms": [ - "console" + "console", + "server" ], "packaging": false, "public": true, @@ -55233,38 +56681,51 @@ }, "security": [ { - "Project": [] + "Project": [], + "Key": [] } ], "parameters": [ { - "name": "databaseId", - "description": "Database ID.", - "required": true, + "name": "queries", + "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/queries). Only supported methods are limit and offset", + "required": false, "schema": { - "type": "string", - "x-example": "<DATABASE_ID>" + "type": "array", + "items": { + "type": "string" + }, + "default": [] }, - "in": "path" + "in": "query" + }, + { + "name": "total", + "description": "When set to false, the total count returned will be 0 and will not be calculated.", + "required": false, + "schema": { + "type": "boolean", + "x-example": false, + "default": true + }, + "in": "query" } ] - } - }, - "\/postgresql\/{databaseId}\/restorations": { - "get": { - "summary": "List database restorations.", - "operationId": "postgresqlListRestorations", + }, + "post": { + "summary": "Create project mock phone", + "operationId": "projectCreateMockPhone", "tags": [ - "postgresql" + "project" ], - "description": "List all restorations for a dedicated database. Results can be filtered by status and type.", + "description": "Create a new mock phone for your project. Use this endpoint to register a mock phone number and its sign-in OTP for your testers.", "responses": { - "200": { - "description": "Dedicated database restorations list", + "201": { + "description": "Mock Number", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/dedicatedDatabaseRestorationList" + "$ref": "#\/components\/schemas\/mockNumber" } } } @@ -55272,17 +56733,18 @@ }, "deprecated": false, "x-appwrite": { - "method": "listRestorations", - "group": "databases", + "method": "createMockPhone", + "group": "mocks", "cookies": false, "type": "", - "demo": "postgresql\/list-restorations.md", + "demo": "project\/create-mock-phone.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "databases.read", + "scope": "mocks.write", "platforms": [ - "console" + "console", + "server" ], "packaging": false, "public": true, @@ -55292,120 +56754,8 @@ }, "security": [ { - "Project": [] - } - ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "x-example": "<DATABASE_ID>" - }, - "in": "path" - }, - { - "name": "status", - "description": "Filter by restoration status.", - "required": false, - "schema": { - "type": "string", - "x-example": "pending" - }, - "in": "query" - }, - { - "name": "type", - "description": "Filter by restoration type.", - "required": false, - "schema": { - "type": "string", - "x-example": "backup" - }, - "in": "query" - }, - { - "name": "limit", - "description": "Maximum number of restorations to return.", - "required": false, - "schema": { - "type": "integer", - "format": "int32", - "x-example": 1, - "default": 25 - }, - "in": "query" - }, - { - "name": "offset", - "description": "Number of restorations to skip.", - "required": false, - "schema": { - "type": "integer", - "format": "int32", - "x-example": 0, - "default": 0 - }, - "in": "query" - } - ] - }, - "post": { - "summary": "Create a database 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": { - "method": "createRestoration", - "group": "databases", - "cookies": false, - "type": "", - "demo": "postgresql\/create-restoration.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "databases.write", - "platforms": [ - "console" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [] - } - ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "x-example": "<DATABASE_ID>" - }, - "in": "path" + "Project": [], + "Key": [] } ], "requestBody": { @@ -55414,47 +56764,43 @@ "schema": { "type": "object", "properties": { - "type": { - "type": "string", - "description": "Restoration type. Allowed values: backup, pitr. Use \"backup\" to restore from a specific backup, or \"pitr\" for point-in-time recovery.", - "default": "backup", - "x-example": "backup" - }, - "backupId": { + "number": { "type": "string", - "description": "Backup ID to restore from (required for backup type).", - "x-example": "<BACKUP_ID>", - "x-nullable": true + "description": "Phone number to associate with the mock phone. Must be a valid E.164 formatted phone number.", + "x-example": "+12065550100", + "format": "phone" }, - "targetTime": { + "otp": { "type": "string", - "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.", - "x-example": "2020-10-15T06:38:00.000+00:00", - "format": "datetime", - "x-nullable": true + "description": "One-time password (OTP) to associate with the mock phone. Must be a 6-digit numeric code.", + "x-example": "<OTP>" } - } + }, + "required": [ + "number", + "otp" + ] } } } } } }, - "\/postgresql\/{databaseId}\/restorations\/{restorationId}": { + "\/project\/mock-phones\/{number}": { "get": { - "summary": "Get a database restoration.", - "operationId": "postgresqlGetRestoration", + "summary": "Get project mock phone", + "operationId": "projectGetMockPhone", "tags": [ - "postgresql" + "project" ], - "description": "Get details of a specific database restoration including its status, type, and timestamps.", + "description": "Get a mock phone by its unique number. This endpoint returns the mock phone's OTP.", "responses": { "200": { - "description": "Restoration", + "description": "Mock Number", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/dedicatedDatabaseRestoration" + "$ref": "#\/components\/schemas\/mockNumber" } } } @@ -55462,17 +56808,18 @@ }, "deprecated": false, "x-appwrite": { - "method": "getRestoration", - "group": "databases", + "method": "getMockPhone", + "group": "mocks", "cookies": false, "type": "", - "demo": "postgresql\/get-restoration.md", + "demo": "project\/get-mock-phone.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "databases.read", + "scope": "mocks.read", "platforms": [ - "console" + "console", + "server" ], "packaging": false, "public": true, @@ -55482,48 +56829,38 @@ }, "security": [ { - "Project": [] + "Project": [], + "Key": [] } ], "parameters": [ { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "x-example": "<DATABASE_ID>" - }, - "in": "path" - }, - { - "name": "restorationId", - "description": "Restoration ID.", + "name": "number", + "description": "Phone number associated with the mock phone. Must be a valid E.164 formatted phone number.", "required": true, "schema": { "type": "string", - "x-example": "<RESTORATION_ID>" + "format": "phone", + "x-example": "+12065550100" }, "in": "path" } ] - } - }, - "\/postgresql\/{databaseId}\/status": { - "get": { - "summary": "Get database status.", - "operationId": "postgresqlGetStatus", + }, + "put": { + "summary": "Update project mock phone", + "operationId": "projectUpdateMockPhone", "tags": [ - "postgresql" + "project" ], - "description": "Get real-time health and status information for a dedicated database. Returns health status, readiness, uptime, connection info, replica status, and volume information.", + "description": "Update a mock phone by its unique number. Use this endpoint to update the mock phone's OTP.", "responses": { "200": { - "description": "Status", + "description": "Mock Number", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/databaseStatus" + "$ref": "#\/components\/schemas\/mockNumber" } } } @@ -55531,17 +56868,18 @@ }, "deprecated": false, "x-appwrite": { - "method": "getStatus", - "group": "databases", + "method": "updateMockPhone", + "group": "mocks", "cookies": false, "type": "", - "demo": "postgresql\/get-status.md", + "demo": "project\/update-mock-phone.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "databases.read", + "scope": "mocks.write", "platforms": [ - "console" + "console", + "server" ], "packaging": false, "public": true, @@ -55551,56 +56889,69 @@ }, "security": [ { - "Project": [] + "Project": [], + "Key": [] } ], "parameters": [ { - "name": "databaseId", - "description": "Database ID.", + "name": "number", + "description": "Phone number associated with the mock phone. Must be a valid E.164 formatted phone number.", "required": true, "schema": { "type": "string", - "x-example": "<DATABASE_ID>" + "format": "phone", + "x-example": "+12065550100" }, "in": "path" } - ] - } - }, - "\/postgresql\/{databaseId}\/upgrades": { - "post": { - "summary": "Upgrade database version.", - "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" - } + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "otp": { + "type": "string", + "description": "One-time password (OTP) to associate with the mock phone. Must be a 6-digit numeric code.", + "x-example": "<OTP>" + } + }, + "required": [ + "otp" + ] } } } + } + }, + "delete": { + "summary": "Delete project mock phone", + "operationId": "projectDeleteMockPhone", + "tags": [ + "project" + ], + "description": "Delete a mock phone by its unique number. This endpoint removes the mock phone and its OTP configuration from the project.", + "responses": { + "204": { + "description": "No content" + } }, "deprecated": false, "x-appwrite": { - "method": "createUpgrade", - "group": "databases", + "method": "deleteMockPhone", + "group": "mocks", "cookies": false, "type": "", - "demo": "postgresql\/create-upgrade.md", + "demo": "project\/delete-mock-phone.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "databases.write", + "scope": "mocks.write", "platforms": [ - "console" + "console", + "server" ], "packaging": false, "public": true, @@ -55610,57 +56961,40 @@ }, "security": [ { - "Project": [] + "Project": [], + "Key": [] } ], "parameters": [ { - "name": "databaseId", - "description": "Database ID.", + "name": "number", + "description": "Phone number associated with the mock phone. Must be a valid E.164 formatted phone number.", "required": true, "schema": { "type": "string", - "x-example": "<DATABASE_ID>" + "format": "phone", + "x-example": "+12065550100" }, "in": "path" } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "targetVersion": { - "type": "string", - "description": "Target engine version to upgrade to.", - "x-example": "<TARGET_VERSION>" - } - }, - "required": [ - "targetVersion" - ] - } - } - } - } + ] } }, - "\/presences": { + "\/project\/oauth2": { "get": { - "summary": "List presences", - "operationId": "presencesList", + "summary": "List project OAuth2 providers", + "operationId": "projectListOAuth2Providers", "tags": [ - "presences" + "project" ], - "description": "List presence logs. Expired entries are filtered out automatically.\n", + "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": "Presences List", + "description": "OAuth2 Providers List", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/presenceList" + "$ref": "#\/components\/schemas\/oAuth2ProviderList" } } } @@ -55668,23 +57002,21 @@ }, "deprecated": false, "x-appwrite": { - "method": "list", - "group": "presences", + "method": "listOAuth2Providers", + "group": "oauth2", "cookies": false, "type": "", - "demo": "presences\/list.md", + "demo": "project\/list-o-auth-2-providers.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "presences.read", + "scope": "project.oauth2.read", "platforms": [ "console", - "server", - "client" + "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/presences\/list.md", "auth": { "Project": [] } @@ -55692,15 +57024,13 @@ "security": [ { "Project": [], - "Key": [], - "Session": [], - "JWT": [] + "Key": [] } ], "parameters": [ { "name": "queries", - "description": "Array of query strings generated using the Query class provided by the SDK.", + "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", @@ -55721,37 +57051,25 @@ "default": true }, "in": "query" - }, - { - "name": "ttl", - "description": "TTL (seconds) for caching list responses. Responses are stored in an in-memory key-value cache, keyed per project, collection, schema version (attributes and indexes), caller authorization roles, and the exact query \u2014 so users with different permissions never share cached entries. Schema changes invalidate cached entries automatically; document writes do not, so choose a TTL you are comfortable serving as stale data. Set to 0 to disable caching. Must be between 0 and 86400 (24 hours).", - "required": false, - "schema": { - "type": "integer", - "format": "int32", - "x-example": 0, - "default": 0 - }, - "in": "query" } ] } }, - "\/presences\/usage": { - "get": { - "summary": "Get presence usage", - "operationId": "presencesGetUsage", + "\/project\/oauth2-server": { + "put": { + "summary": "Update OAuth2 server", + "operationId": "projectUpdateOAuth2Server", "tags": [ - "presences" + "project" ], - "description": "Get presence usage metrics, including the current total of online users and historical online user counts for the selected time range.\n", + "description": "Update the OAuth2 server (OIDC provider) configuration.", "responses": { "200": { - "description": "UsagePresence", + "description": "Project", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/usagePresence" + "$ref": "#\/components\/schemas\/project" } } } @@ -55759,95 +57077,21 @@ }, "deprecated": false, "x-appwrite": { - "method": "getUsage", + "method": "updateOAuth2Server", "group": null, "cookies": false, "type": "", - "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, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/presences\/get-usage.md", - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [] - } - ], - "parameters": [ - { - "name": "range", - "description": "Date range.", - "required": false, - "schema": { - "type": "string", - "x-example": "24h", - "enum": [ - "24h", - "30d", - "90d" - ], - "x-enum-name": "UsageRange", - "x-enum-keys": [ - "Twenty Four Hours", - "Thirty Days", - "Ninety Days" - ], - "default": "30d" - }, - "in": "query" - } - ] - } - }, - "\/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": { - "method": "get", - "group": "presences", - "cookies": false, - "type": "", - "demo": "presences\/get.md", + "demo": "project\/update-o-auth-2-server.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "presences.read", + "scope": "project.write", "platforms": [ "console", - "server", - "client" + "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/presences\/get.md", "auth": { "Project": [] } @@ -55855,111 +57099,7 @@ "security": [ { "Project": [], - "Key": [], - "Session": [], - "JWT": [] - } - ], - "parameters": [ - { - "name": "presenceId", - "description": "Presence unique ID.", - "required": true, - "schema": { - "type": "string", - "x-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": { - "method": "upsert", - "group": "presences", - "cookies": false, - "type": "", - "demo": "presences\/upsert.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "presences.write", - "platforms": [ - "client", - "console" - ], - "packaging": false, - "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/presences\/upsert.md", - "methods": [ - { - "name": "upsert", - "namespace": "presences", - "desc": "Upsert presence", - "auth": { - "Project": [] - }, - "parameters": [ - "presenceId", - "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", - "x-example": "<PRESENCE_ID>" - }, - "in": "path" + "Key": [] } ], "requestBody": { @@ -55968,59 +57108,131 @@ "schema": { "type": "object", "properties": { - "userId": { - "type": "string", - "description": "User ID.", - "x-example": "<USER_ID>" + "enabled": { + "type": "boolean", + "description": "Enable or disable the OAuth2 server.", + "x-example": false }, - "status": { + "authorizationUrl": { "type": "string", - "description": "Presence status.", - "x-example": "<STATUS>" + "description": "URL to your application with consent screen.", + "x-example": "https:\/\/example.com", + "format": "url" }, - "permissions": { + "scopes": { "type": "array", - "description": "An array of permissions strings. By default, only the current user is granted all permissions. [Learn more about permissions](https:\/\/appwrite.io\/docs\/permissions).", - "x-example": "[\"read(\"any\")\"]", + "description": "List of allowed OAuth2 scopes. Maximum of 100 scopes are allowed, each up to 128 characters long.", + "default": [], + "x-example": null, "items": { "type": "string" } }, - "expiresAt": { + "authorizationDetailsTypes": { + "type": "array", + "description": "List of accepted `authorization_details` types. Maximum of 100 types are allowed, each up to 128 characters long.", + "default": [], + "x-example": null, + "items": { + "type": "string" + } + }, + "accessTokenDuration": { + "type": "integer", + "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.", + "x-example": 60, + "format": "int32", + "x-nullable": true + }, + "refreshTokenDuration": { + "type": "integer", + "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.", + "x-example": 60, + "format": "int32", + "x-nullable": true + }, + "publicAccessTokenDuration": { + "type": "integer", + "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.", + "x-example": 60, + "format": "int32", + "x-nullable": true + }, + "publicRefreshTokenDuration": { + "type": "integer", + "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.", + "x-example": 60, + "format": "int32", + "x-nullable": true + }, + "confidentialPkce": { + "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.", + "x-example": false, + "x-nullable": true + }, + "verificationUrl": { "type": "string", - "description": "Presence expiry datetime.", - "x-example": "2020-10-15T06:38:00.000+00:00", - "format": "datetime" + "description": "URL to your application page where users enter the device flow user code. Required to enable the Device Authorization Grant.", + "default": "", + "x-example": "https:\/\/example.com", + "format": "url" }, - "metadata": { - "type": "object", - "description": "Presence metadata object.", + "userCodeLength": { + "type": "integer", + "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.", + "x-example": 6, + "format": "int32", + "x-nullable": true + }, + "userCodeFormat": { + "type": "string", + "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`.", + "default": "alphanumeric", + "x-example": "numeric" + }, + "deviceCodeDuration": { + "type": "integer", + "description": "Lifetime in seconds of device flow device codes and user codes. Device codes are intentionally short-lived. Leave empty to use default 600.", + "x-example": 60, + "format": "int32", + "x-nullable": true + }, + "defaultScopes": { + "type": "array", + "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.", "default": [], - "x-example": "{}" + "x-example": null, + "items": { + "type": "string" + } } }, "required": [ - "status" + "enabled", + "authorizationUrl" ] } } } } - }, + } + }, + "\/project\/oauth2\/amazon": { "patch": { - "summary": "Update presence", - "operationId": "presencesUpdate", + "summary": "Update project OAuth2 Amazon", + "operationId": "projectUpdateOAuth2Amazon", "tags": [ - "presences" + "project" ], - "description": "Update a presence log by its unique ID. Using the patch method you can pass only specific fields that will get updated.\n", + "description": "Update the project OAuth2 Amazon configuration.", "responses": { "200": { - "description": "Presence", + "description": "OAuth2Amazon", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/presence" + "$ref": "#\/components\/schemas\/oAuth2Amazon" } } } @@ -56028,52 +57240,21 @@ }, "deprecated": false, "x-appwrite": { - "method": "update", - "group": "presences", + "method": "updateOAuth2Amazon", + "group": "oauth2", "cookies": false, "type": "", - "demo": "presences\/update.md", + "demo": "project\/update-o-auth-2-amazon.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "presences.write", + "scope": "project.oauth2.write", "platforms": [ - "client", - "console" + "console", + "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/presences\/update.md", - "methods": [ - { - "name": "update", - "namespace": "presences", - "desc": "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": [] } @@ -56081,19 +57262,7 @@ "security": [ { "Project": [], - "Session": [] - } - ], - "parameters": [ - { - "name": "presenceId", - "description": "Presence unique ID.", - "required": true, - "schema": { - "type": "string", - "x-example": "<PRESENCE_ID>" - }, - "in": "path" + "Key": [] } ], "requestBody": { @@ -56102,79 +57271,68 @@ "schema": { "type": "object", "properties": { - "userId": { - "type": "string", - "description": "User ID.", - "x-example": "<USER_ID>" - }, - "status": { + "clientId": { "type": "string", - "description": "Presence status.", - "x-example": "<STATUS>" + "description": "'Client ID' of Amazon OAuth2 app. For example: amzn1.application-oa2-client.87400c00000000000000000000063d5b2", + "x-example": "<CLIENT_ID>", + "x-nullable": true }, - "expiresAt": { + "clientSecret": { "type": "string", - "description": "Presence expiry datetime.", - "x-example": "2020-10-15T06:38:00.000+00:00", - "format": "datetime" - }, - "metadata": { - "type": "object", - "description": "Presence metadata object.", - "default": {}, - "x-example": "{}" - }, - "permissions": { - "type": "array", - "description": "An array of permissions strings. By default, only the current user is granted all permissions. [Learn more about permissions](https:\/\/appwrite.io\/docs\/permissions).", - "x-example": "[\"read(\"any\")\"]", - "items": { - "type": "string" - } + "description": "'Client Secret' of Amazon OAuth2 app. For example: 79ffe4000000000000000000000000000000000000000000000000000002de55", + "x-example": "<CLIENT_SECRET>", + "x-nullable": true }, - "purge": { + "enabled": { "type": "boolean", - "description": "When true, purge cached responses used by list presences endpoint.", - "default": false, - "x-example": false + "description": "OAuth2 sign-in method status. Set to true to enable new session creation. Setting to true will trigger end-to-end credentials validation, and will throw if the credentials are invalid.", + "x-example": false, + "x-nullable": true } } } } } } - }, - "delete": { - "summary": "Delete presence", - "operationId": "presencesDelete", + } + }, + "\/project\/oauth2\/apple": { + "patch": { + "summary": "Update project OAuth2 Apple", + "operationId": "projectUpdateOAuth2Apple", "tags": [ - "presences" + "project" ], - "description": "Delete a presence log by its unique ID.\n", + "description": "Update the project OAuth2 Apple configuration.", "responses": { - "204": { - "description": "No content" + "200": { + "description": "OAuth2Apple", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/oAuth2Apple" + } + } + } } }, "deprecated": false, "x-appwrite": { - "method": "delete", - "group": "presences", + "method": "updateOAuth2Apple", + "group": "oauth2", "cookies": false, "type": "", - "demo": "presences\/delete.md", + "demo": "project\/update-o-auth-2-apple.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "presences.write", + "scope": "project.oauth2.write", "platforms": [ "console", - "server", - "client" + "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/presences\/delete.md", "auth": { "Project": [] } @@ -56182,40 +57340,67 @@ "security": [ { "Project": [], - "Key": [], - "Session": [], - "JWT": [] + "Key": [] } ], - "parameters": [ - { - "name": "presenceId", - "description": "Presence unique ID.", - "required": true, - "schema": { - "type": "string", - "x-example": "<PRESENCE_ID>" - }, - "in": "path" + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "serviceId": { + "type": "string", + "description": "'Service ID' of Apple OAuth2 app. For example: ip.appwrite.app.web", + "x-example": "<SERVICE_ID>", + "x-nullable": true + }, + "keyId": { + "type": "string", + "description": "'Key ID' of Apple OAuth2 app. For example: P4000000N8", + "x-example": "<KEY_ID>", + "x-nullable": true + }, + "teamId": { + "type": "string", + "description": "'Team ID' of Apple OAuth2 app. For example: D4000000R6", + "x-example": "<TEAM_ID>", + "x-nullable": true + }, + "p8File": { + "type": "string", + "description": "Contents of the Apple OAuth2 app .p8 private key file. The secret key wrapped by the PEM markers is 200 characters long. For example: -----BEGIN PRIVATE KEY-----MIGTAg...jy2Xbna-----END PRIVATE KEY-----", + "x-example": "<P8_FILE>", + "x-nullable": true + }, + "enabled": { + "type": "boolean", + "description": "OAuth2 sign-in method status. Set to true to enable new session creation. Setting to true will trigger end-to-end credentials validation, and will throw if the credentials are invalid.", + "x-example": false, + "x-nullable": true + } + } + } + } } - ] + } } }, - "\/project": { - "get": { - "summary": "Get project", - "operationId": "projectGet", + "\/project\/oauth2\/appwrite": { + "patch": { + "summary": "Update project OAuth2 Appwrite", + "operationId": "projectUpdateOAuth2Appwrite", "tags": [ "project" ], - "description": "Get a project.", + "description": "Update the project OAuth2 Appwrite configuration.", "responses": { "200": { - "description": "Project", + "description": "OAuth2Appwrite", "content": { - "": { + "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/project" + "$ref": "#\/components\/schemas\/oAuth2Appwrite" } } } @@ -56223,15 +57408,15 @@ }, "deprecated": false, "x-appwrite": { - "method": "get", - "group": null, + "method": "updateOAuth2Appwrite", + "group": "oauth2", "cookies": false, "type": "", - "demo": "project\/get.md", + "demo": "project\/update-o-auth-2-appwrite.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "project.read", + "scope": "project.oauth2.write", "platforms": [ "console", "server" @@ -56247,31 +57432,69 @@ "Project": [], "Key": [] } - ] - }, - "delete": { - "summary": "Delete project", - "operationId": "projectDelete", + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "clientId": { + "type": "string", + "description": "'Client ID' of Appwrite OAuth2 app. For example: 6a42000000000000b5a0", + "x-example": "<CLIENT_ID>", + "x-nullable": true + }, + "clientSecret": { + "type": "string", + "description": "'Client Secret' of Appwrite OAuth2 app. For example: b86afd000000000000000000000000000000000000000000000000000ced5f93", + "x-example": "<CLIENT_SECRET>", + "x-nullable": true + }, + "enabled": { + "type": "boolean", + "description": "OAuth2 sign-in method status. Set to true to enable new session creation. Setting to true will trigger end-to-end credentials validation, and will throw if the credentials are invalid.", + "x-example": false, + "x-nullable": true + } + } + } + } + } + } + } + }, + "\/project\/oauth2\/auth0": { + "patch": { + "summary": "Update project OAuth2 Auth0", + "operationId": "projectUpdateOAuth2Auth0", "tags": [ "project" ], - "description": "Delete a project.", + "description": "Update the project OAuth2 Auth0 configuration.", "responses": { - "204": { - "description": "No content" + "200": { + "description": "OAuth2Auth0", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/oAuth2Auth0" + } + } + } } }, "deprecated": false, "x-appwrite": { - "method": "delete", - "group": null, + "method": "updateOAuth2Auth0", + "group": "oauth2", "cookies": false, "type": "", - "demo": "project\/delete.md", + "demo": "project\/update-o-auth-2-auth-0.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "project.write", + "scope": "project.oauth2.write", "platforms": [ "console", "server" @@ -56287,24 +57510,59 @@ "Project": [], "Key": [] } - ] + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "clientId": { + "type": "string", + "description": "'Client ID' of Auth0 OAuth2 app. For example: OaOkIA000000000000000000005KLSYq", + "x-example": "<CLIENT_ID>", + "x-nullable": true + }, + "clientSecret": { + "type": "string", + "description": "'Client Secret' of Auth0 OAuth2 app. For example: zXz0000-00000000000000000000000000000-00000000000000000000PJafnF", + "x-example": "<CLIENT_SECRET>", + "x-nullable": true + }, + "endpoint": { + "type": "string", + "description": "Domain of Auth0 instance. For example: example.us.auth0.com", + "x-example": "<ENDPOINT>", + "x-nullable": true + }, + "enabled": { + "type": "boolean", + "description": "OAuth2 sign-in method status. Set to true to enable new session creation. Setting to true will trigger end-to-end credentials validation, and will throw if the credentials are invalid.", + "x-example": false, + "x-nullable": true + } + } + } + } + } + } } }, - "\/project\/auth-methods\/{methodId}": { + "\/project\/oauth2\/authentik": { "patch": { - "summary": "Update project auth method status", - "operationId": "projectUpdateAuthMethod", + "summary": "Update project OAuth2 Authentik", + "operationId": "projectUpdateOAuth2Authentik", "tags": [ "project" ], - "description": "Update properties of a specific auth method. Use this endpoint to enable or disable a method in your project. ", + "description": "Update the project OAuth2 Authentik configuration.", "responses": { "200": { - "description": "Project", + "description": "OAuth2Authentik", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/project" + "$ref": "#\/components\/schemas\/oAuth2Authentik" } } } @@ -56312,15 +57570,15 @@ }, "deprecated": false, "x-appwrite": { - "method": "updateAuthMethod", - "group": null, + "method": "updateOAuth2Authentik", + "group": "oauth2", "cookies": false, "type": "", - "demo": "project\/update-auth-method.md", + "demo": "project\/update-o-auth-2-authentik.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "project.write", + "scope": "project.oauth2.write", "platforms": [ "console", "server" @@ -56337,73 +57595,58 @@ "Key": [] } ], - "parameters": [ - { - "name": "methodId", - "description": "Auth Method ID. Possible values: email-password,magic-url,email-otp,anonymous,invites,jwt,phone", - "required": true, - "schema": { - "type": "string", - "x-example": "email-password", - "enum": [ - "email-password", - "magic-url", - "email-otp", - "anonymous", - "invites", - "jwt", - "phone" - ], - "x-enum-name": "ProjectAuthMethodId", - "x-enum-keys": [ - "email-password", - "magic-url", - "email-otp", - "anonymous", - "invites", - "jwt", - "phone" - ] - }, - "in": "path" - } - ], "requestBody": { "content": { "application\/json": { "schema": { "type": "object", "properties": { + "clientId": { + "type": "string", + "description": "'Client ID' of Authentik OAuth2 app. For example: dTKOPa0000000000000000000000000000e7G8hv", + "x-example": "<CLIENT_ID>", + "x-nullable": true + }, + "clientSecret": { + "type": "string", + "description": "'Client Secret' of Authentik OAuth2 app. For example: ntQadq000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000Hp5WK", + "x-example": "<CLIENT_SECRET>", + "x-nullable": true + }, + "endpoint": { + "type": "string", + "description": "Domain of Authentik instance. For example: example.authentik.com", + "x-example": "<ENDPOINT>", + "x-nullable": true + }, "enabled": { "type": "boolean", - "description": "Auth method status.", - "x-example": false + "description": "OAuth2 sign-in method status. Set to true to enable new session creation. Setting to true will trigger end-to-end credentials validation, and will throw if the credentials are invalid.", + "x-example": false, + "x-nullable": true } - }, - "required": [ - "enabled" - ] + } } } } } } }, - "\/project\/keys": { - "get": { - "summary": "List project keys", - "operationId": "projectListKeys", + "\/project\/oauth2\/autodesk": { + "patch": { + "summary": "Update project OAuth2 Autodesk", + "operationId": "projectUpdateOAuth2Autodesk", "tags": [ "project" ], - "description": "Get a list of all API keys from the current project.", + "description": "Update the project OAuth2 Autodesk configuration.", "responses": { "200": { - "description": "API Keys List", + "description": "OAuth2Autodesk", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/keyList" + "$ref": "#\/components\/schemas\/oAuth2Autodesk" } } } @@ -56411,15 +57654,15 @@ }, "deprecated": false, "x-appwrite": { - "method": "listKeys", - "group": "keys", + "method": "updateOAuth2Autodesk", + "group": "oauth2", "cookies": false, "type": "", - "demo": "project\/list-keys.md", + "demo": "project\/update-o-auth-2-autodesk.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "keys.read", + "scope": "project.oauth2.write", "platforms": [ "console", "server" @@ -56436,47 +57679,52 @@ "Key": [] } ], - "parameters": [ - { - "name": "queries", - "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/queries). Maximum of 100 queries are allowed, each 4096 characters long. You may filter on the following attributes: expire, accessedAt, name, scopes", - "required": false, - "schema": { - "type": "array", - "items": { - "type": "string" - }, - "default": [] - }, - "in": "query" - }, - { - "name": "total", - "description": "When set to false, the total count returned will be 0 and will not be calculated.", - "required": false, - "schema": { - "type": "boolean", - "x-example": false, - "default": true - }, - "in": "query" + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "clientId": { + "type": "string", + "description": "'Client ID' of Autodesk OAuth2 app. For example: 5zw90v00000000000000000000kVYXN7", + "x-example": "<CLIENT_ID>", + "x-nullable": true + }, + "clientSecret": { + "type": "string", + "description": "'Client Secret' of Autodesk OAuth2 app. For example: 7I000000000000MW", + "x-example": "<CLIENT_SECRET>", + "x-nullable": true + }, + "enabled": { + "type": "boolean", + "description": "OAuth2 sign-in method status. Set to true to enable new session creation. Setting to true will trigger end-to-end credentials validation, and will throw if the credentials are invalid.", + "x-example": false, + "x-nullable": true + } + } + } + } } - ] - }, - "post": { - "summary": "Create project key", - "operationId": "projectCreateKey", + } + } + }, + "\/project\/oauth2\/bitbucket": { + "patch": { + "summary": "Update project OAuth2 Bitbucket", + "operationId": "projectUpdateOAuth2Bitbucket", "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.", + "description": "Update the project OAuth2 Bitbucket configuration.", "responses": { - "201": { - "description": "Key", + "200": { + "description": "OAuth2Bitbucket", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/key" + "$ref": "#\/components\/schemas\/oAuth2Bitbucket" } } } @@ -56484,15 +57732,15 @@ }, "deprecated": false, "x-appwrite": { - "method": "createKey", - "group": "keys", + "method": "updateOAuth2Bitbucket", + "group": "oauth2", "cookies": false, "type": "", - "demo": "project\/create-key.md", + "demo": "project\/update-o-auth-2-bitbucket.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "keys.write", + "scope": "project.oauth2.write", "platforms": [ "console", "server" @@ -56515,268 +57763,124 @@ "schema": { "type": "object", "properties": { - "keyId": { + "key": { "type": "string", - "description": "Key ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.", - "x-example": "<KEY_ID>", - "x-appwrite": { - "idGenerator": "ID.unique" - } + "description": "'Key' of Bitbucket OAuth2 app. For example: Knt70000000000ByRc", + "x-example": "<KEY>", + "x-nullable": true }, - "name": { + "secret": { "type": "string", - "description": "Key name. Max length: 128 chars.", - "x-example": "<NAME>" + "description": "'Secret' of Bitbucket OAuth2 app. For example: NMfLZJ00000000000000000000TLQdDx", + "x-example": "<SECRET>", + "x-nullable": true }, - "scopes": { - "type": "array", - "description": "Key scopes list. Maximum of 200 scopes are allowed.", - "x-example": null, - "items": { - "type": "string", - "enum": [ - "project.read", - "project.write", - "keys.read", - "keys.write", - "platforms.read", - "platforms.write", - "mocks.read", - "mocks.write", - "policies.read", - "policies.write", - "project.policies.read", - "project.policies.write", - "project.oauth2.read", - "project.oauth2.write", - "templates.read", - "templates.write", - "stages.read", - "stages.write", - "oauth2.read", - "oauth2.write", - "users.read", - "users.write", - "sessions.read", - "sessions.write", - "teams.read", - "teams.write", - "databases.read", - "databases.write", - "tables.read", - "tables.write", - "columns.read", - "columns.write", - "indexes.read", - "indexes.write", - "rows.read", - "rows.write", - "collections.read", - "collections.write", - "attributes.read", - "attributes.write", - "documents.read", - "documents.write", - "buckets.read", - "buckets.write", - "files.read", - "files.write", - "tokens.read", - "tokens.write", - "functions.read", - "functions.write", - "executions.read", - "executions.write", - "execution.read", - "execution.write", - "sites.read", - "sites.write", - "log.read", - "log.write", - "providers.read", - "providers.write", - "topics.read", - "topics.write", - "subscribers.read", - "subscribers.write", - "targets.read", - "targets.write", - "messages.read", - "messages.write", - "rules.read", - "rules.write", - "webhooks.read", - "webhooks.write", - "locale.read", - "avatars.read", - "health.read", - "assistant.read", - "migrations.read", - "migrations.write", - "schedules.read", - "schedules.write", - "vcs.read", - "vcs.write", - "insights.read", - "insights.write", - "reports.read", - "reports.write", - "presences.read", - "presences.write", - "backups.policies.read", - "backups.policies.write", - "archives.read", - "archives.write", - "restorations.read", - "restorations.write", - "dedicatedDatabases.execute", - "domains.read", - "domains.write", - "events.read", - "apps.read", - "apps.write", - "usage.read" - ], - "x-enum-name": "ProjectKeyScopes", - "x-enum-keys": [ - "project.read", - "project.write", - "keys.read", - "keys.write", - "platforms.read", - "platforms.write", - "mocks.read", - "mocks.write", - "policies.read", - "policies.write", - "project.policies.read", - "project.policies.write", - "project.oauth2.read", - "project.oauth2.write", - "templates.read", - "templates.write", - "stages.read", - "stages.write", - "oauth2.read", - "oauth2.write", - "users.read", - "users.write", - "sessions.read", - "sessions.write", - "teams.read", - "teams.write", - "databases.read", - "databases.write", - "tables.read", - "tables.write", - "columns.read", - "columns.write", - "indexes.read", - "indexes.write", - "rows.read", - "rows.write", - "collections.read", - "collections.write", - "attributes.read", - "attributes.write", - "documents.read", - "documents.write", - "buckets.read", - "buckets.write", - "files.read", - "files.write", - "tokens.read", - "tokens.write", - "functions.read", - "functions.write", - "executions.read", - "executions.write", - "execution.read", - "execution.write", - "sites.read", - "sites.write", - "log.read", - "log.write", - "providers.read", - "providers.write", - "topics.read", - "topics.write", - "subscribers.read", - "subscribers.write", - "targets.read", - "targets.write", - "messages.read", - "messages.write", - "rules.read", - "rules.write", - "webhooks.read", - "webhooks.write", - "locale.read", - "avatars.read", - "health.read", - "assistant.read", - "migrations.read", - "migrations.write", - "schedules.read", - "schedules.write", - "vcs.read", - "vcs.write", - "insights.read", - "insights.write", - "reports.read", - "reports.write", - "presences.read", - "presences.write", - "backups.policies.read", - "backups.policies.write", - "archives.read", - "archives.write", - "restorations.read", - "restorations.write", - "dedicatedDatabases.execute", - "domains.read", - "domains.write", - "events.read", - "apps.read", - "apps.write", - "usage.read" - ] - } + "enabled": { + "type": "boolean", + "description": "OAuth2 sign-in method status. Set to true to enable new session creation. Setting to true will trigger end-to-end credentials validation, and will throw if the credentials are invalid.", + "x-example": false, + "x-nullable": true + } + } + } + } + } + } + } + }, + "\/project\/oauth2\/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": { + "method": "updateOAuth2Bitly", + "group": "oauth2", + "cookies": false, + "type": "", + "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": { + "type": "string", + "description": "'Client ID' of Bitly OAuth2 app. For example: d95151000000000000000000000000000067af9b", + "x-example": "<CLIENT_ID>", + "x-nullable": true }, - "expire": { + "clientSecret": { "type": "string", - "description": "Expiration time in [ISO 8601](https:\/\/www.iso.org\/iso-8601-date-and-time-format.html) format. Use null for unlimited expiration.", - "x-example": "2020-10-15T06:38:00.000+00:00", - "format": "datetime", + "description": "'Client Secret' of Bitly OAuth2 app. For example: a13e250000000000000000000000000000d73095", + "x-example": "<CLIENT_SECRET>", + "x-nullable": true + }, + "enabled": { + "type": "boolean", + "description": "OAuth2 sign-in method status. Set to true to enable new session creation. Setting to true will trigger end-to-end credentials validation, and will throw if the credentials are invalid.", + "x-example": false, "x-nullable": true } - }, - "required": [ - "keyId", - "name", - "scopes" - ] + } } } } } } }, - "\/project\/keys\/ephemeral": { - "post": { - "summary": "Create ephemeral project key", - "operationId": "projectCreateEphemeralKey", + "\/project\/oauth2\/box": { + "patch": { + "summary": "Update project OAuth2 Box", + "operationId": "projectUpdateOAuth2Box", "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.", + "description": "Update the project OAuth2 Box configuration.", "responses": { - "201": { - "description": "Ephemeral Key", + "200": { + "description": "OAuth2Box", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/ephemeralKey" + "$ref": "#\/components\/schemas\/oAuth2Box" } } } @@ -56784,15 +57888,15 @@ }, "deprecated": false, "x-appwrite": { - "method": "createEphemeralKey", - "group": "keys", + "method": "updateOAuth2Box", + "group": "oauth2", "cookies": false, "type": "", - "demo": "project\/create-ephemeral-key.md", + "demo": "project\/update-o-auth-2-box.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "keys.write", + "scope": "project.oauth2.write", "platforms": [ "console", "server" @@ -56815,253 +57919,46 @@ "schema": { "type": "object", "properties": { - "scopes": { - "type": "array", - "description": "Key scopes list. Maximum of 200 scopes are allowed.", - "x-example": null, - "items": { - "type": "string", - "enum": [ - "project.read", - "project.write", - "keys.read", - "keys.write", - "platforms.read", - "platforms.write", - "mocks.read", - "mocks.write", - "policies.read", - "policies.write", - "project.policies.read", - "project.policies.write", - "project.oauth2.read", - "project.oauth2.write", - "templates.read", - "templates.write", - "stages.read", - "stages.write", - "oauth2.read", - "oauth2.write", - "users.read", - "users.write", - "sessions.read", - "sessions.write", - "teams.read", - "teams.write", - "databases.read", - "databases.write", - "tables.read", - "tables.write", - "columns.read", - "columns.write", - "indexes.read", - "indexes.write", - "rows.read", - "rows.write", - "collections.read", - "collections.write", - "attributes.read", - "attributes.write", - "documents.read", - "documents.write", - "buckets.read", - "buckets.write", - "files.read", - "files.write", - "tokens.read", - "tokens.write", - "functions.read", - "functions.write", - "executions.read", - "executions.write", - "execution.read", - "execution.write", - "sites.read", - "sites.write", - "log.read", - "log.write", - "providers.read", - "providers.write", - "topics.read", - "topics.write", - "subscribers.read", - "subscribers.write", - "targets.read", - "targets.write", - "messages.read", - "messages.write", - "rules.read", - "rules.write", - "webhooks.read", - "webhooks.write", - "locale.read", - "avatars.read", - "health.read", - "assistant.read", - "migrations.read", - "migrations.write", - "schedules.read", - "schedules.write", - "vcs.read", - "vcs.write", - "insights.read", - "insights.write", - "reports.read", - "reports.write", - "presences.read", - "presences.write", - "backups.policies.read", - "backups.policies.write", - "archives.read", - "archives.write", - "restorations.read", - "restorations.write", - "dedicatedDatabases.execute", - "domains.read", - "domains.write", - "events.read", - "apps.read", - "apps.write", - "usage.read" - ], - "x-enum-name": "ProjectKeyScopes", - "x-enum-keys": [ - "project.read", - "project.write", - "keys.read", - "keys.write", - "platforms.read", - "platforms.write", - "mocks.read", - "mocks.write", - "policies.read", - "policies.write", - "project.policies.read", - "project.policies.write", - "project.oauth2.read", - "project.oauth2.write", - "templates.read", - "templates.write", - "stages.read", - "stages.write", - "oauth2.read", - "oauth2.write", - "users.read", - "users.write", - "sessions.read", - "sessions.write", - "teams.read", - "teams.write", - "databases.read", - "databases.write", - "tables.read", - "tables.write", - "columns.read", - "columns.write", - "indexes.read", - "indexes.write", - "rows.read", - "rows.write", - "collections.read", - "collections.write", - "attributes.read", - "attributes.write", - "documents.read", - "documents.write", - "buckets.read", - "buckets.write", - "files.read", - "files.write", - "tokens.read", - "tokens.write", - "functions.read", - "functions.write", - "executions.read", - "executions.write", - "execution.read", - "execution.write", - "sites.read", - "sites.write", - "log.read", - "log.write", - "providers.read", - "providers.write", - "topics.read", - "topics.write", - "subscribers.read", - "subscribers.write", - "targets.read", - "targets.write", - "messages.read", - "messages.write", - "rules.read", - "rules.write", - "webhooks.read", - "webhooks.write", - "locale.read", - "avatars.read", - "health.read", - "assistant.read", - "migrations.read", - "migrations.write", - "schedules.read", - "schedules.write", - "vcs.read", - "vcs.write", - "insights.read", - "insights.write", - "reports.read", - "reports.write", - "presences.read", - "presences.write", - "backups.policies.read", - "backups.policies.write", - "archives.read", - "archives.write", - "restorations.read", - "restorations.write", - "dedicatedDatabases.execute", - "domains.read", - "domains.write", - "events.read", - "apps.read", - "apps.write", - "usage.read" - ] - } + "clientId": { + "type": "string", + "description": "'Client ID' of Box OAuth2 app. For example: deglcs00000000000000000000x2og6y", + "x-example": "<CLIENT_ID>", + "x-nullable": true }, - "duration": { - "type": "integer", - "description": "Time in seconds before ephemeral key expires. Maximum duration is 3600 seconds.", - "x-example": "600", - "format": "int32" + "clientSecret": { + "type": "string", + "description": "'Client Secret' of Box OAuth2 app. For example: OKM1f100000000000000000000eshEif", + "x-example": "<CLIENT_SECRET>", + "x-nullable": true + }, + "enabled": { + "type": "boolean", + "description": "OAuth2 sign-in method status. Set to true to enable new session creation. Setting to true will trigger end-to-end credentials validation, and will throw if the credentials are invalid.", + "x-example": false, + "x-nullable": true } - }, - "required": [ - "scopes", - "duration" - ] + } } } } } } }, - "\/project\/keys\/{keyId}": { - "get": { - "summary": "Get project key", - "operationId": "projectGetKey", + "\/project\/oauth2\/dailymotion": { + "patch": { + "summary": "Update project OAuth2 Dailymotion", + "operationId": "projectUpdateOAuth2Dailymotion", "tags": [ "project" ], - "description": "Get a key by its unique ID. ", + "description": "Update the project OAuth2 Dailymotion configuration.", "responses": { "200": { - "description": "Key", + "description": "OAuth2Dailymotion", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/key" + "$ref": "#\/components\/schemas\/oAuth2Dailymotion" } } } @@ -57069,15 +57966,15 @@ }, "deprecated": false, "x-appwrite": { - "method": "getKey", - "group": "keys", + "method": "updateOAuth2Dailymotion", + "group": "oauth2", "cookies": false, "type": "", - "demo": "project\/get-key.md", + "demo": "project\/update-o-auth-2-dailymotion.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "keys.read", + "scope": "project.oauth2.write", "platforms": [ "console", "server" @@ -57094,33 +57991,130 @@ "Key": [] } ], - "parameters": [ + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "apiKey": { + "type": "string", + "description": "'API Key' of Dailymotion OAuth2 app. For example: 07a9000000000000067f", + "x-example": "<API_KEY>", + "x-nullable": true + }, + "apiSecret": { + "type": "string", + "description": "'API Secret' of Dailymotion OAuth2 app. For example: a399a90000000000000000000000000000d90639", + "x-example": "<API_SECRET>", + "x-nullable": true + }, + "enabled": { + "type": "boolean", + "description": "OAuth2 sign-in method status. Set to true to enable new session creation. Setting to true will trigger end-to-end credentials validation, and will throw if the credentials are invalid.", + "x-example": false, + "x-nullable": true + } + } + } + } + } + } + } + }, + "\/project\/oauth2\/discord": { + "patch": { + "summary": "Update project OAuth2 Discord", + "operationId": "projectUpdateOAuth2Discord", + "tags": [ + "project" + ], + "description": "Update the project OAuth2 Discord configuration.", + "responses": { + "200": { + "description": "OAuth2Discord", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/oAuth2Discord" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "method": "updateOAuth2Discord", + "group": "oauth2", + "cookies": false, + "type": "", + "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": [ { - "name": "keyId", - "description": "Key ID.", - "required": true, - "schema": { - "type": "string", - "x-example": "<KEY_ID>" - }, - "in": "path" + "Project": [], + "Key": [] } - ] - }, - "put": { - "summary": "Update project key", - "operationId": "projectUpdateKey", + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "clientId": { + "type": "string", + "description": "'Client ID' of Discord OAuth2 app. For example: 950722000000343754", + "x-example": "<CLIENT_ID>", + "x-nullable": true + }, + "clientSecret": { + "type": "string", + "description": "'Client Secret' of Discord OAuth2 app. For example: YmPXnM000000000000000000002zFg5D", + "x-example": "<CLIENT_SECRET>", + "x-nullable": true + }, + "enabled": { + "type": "boolean", + "description": "OAuth2 sign-in method status. Set to true to enable new session creation. Setting to true will trigger end-to-end credentials validation, and will throw if the credentials are invalid.", + "x-example": false, + "x-nullable": true + } + } + } + } + } + } + } + }, + "\/project\/oauth2\/disqus": { + "patch": { + "summary": "Update project OAuth2 Disqus", + "operationId": "projectUpdateOAuth2Disqus", "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.", + "description": "Update the project OAuth2 Disqus configuration.", "responses": { "200": { - "description": "Key", + "description": "OAuth2Disqus", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/key" + "$ref": "#\/components\/schemas\/oAuth2Disqus" } } } @@ -57128,15 +58122,15 @@ }, "deprecated": false, "x-appwrite": { - "method": "updateKey", - "group": "keys", + "method": "updateOAuth2Disqus", + "group": "oauth2", "cookies": false, "type": "", - "demo": "project\/update-key.md", + "demo": "project\/update-o-auth-2-disqus.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "keys.write", + "scope": "project.oauth2.write", "platforms": [ "console", "server" @@ -57153,16 +58147,82 @@ "Key": [] } ], - "parameters": [ + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "publicKey": { + "type": "string", + "description": "'Public Key, also known as API Key' of Disqus OAuth2 app. For example: cgegH70000000000000000000000000000000000000000000000000000Hr1nYX", + "x-example": "<PUBLIC_KEY>", + "x-nullable": true + }, + "secretKey": { + "type": "string", + "description": "'Secret Key, also known as API Secret' of Disqus OAuth2 app. For example: W7Bykj00000000000000000000000000000000000000000000000000003o43w9", + "x-example": "<SECRET_KEY>", + "x-nullable": true + }, + "enabled": { + "type": "boolean", + "description": "OAuth2 sign-in method status. Set to true to enable new session creation. Setting to true will trigger end-to-end credentials validation, and will throw if the credentials are invalid.", + "x-example": false, + "x-nullable": true + } + } + } + } + } + } + } + }, + "\/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": { + "method": "updateOAuth2Dropbox", + "group": "oauth2", + "cookies": false, + "type": "", + "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": [ { - "name": "keyId", - "description": "Key ID.", - "required": true, - "schema": { - "type": "string", - "x-example": "<KEY_ID>" - }, - "in": "path" + "Project": [], + "Key": [] } ], "requestBody": { @@ -57171,266 +58231,62 @@ "schema": { "type": "object", "properties": { - "name": { + "appKey": { "type": "string", - "description": "Key name. Max length: 128 chars.", - "x-example": "<NAME>" + "description": "'App Key' of Dropbox OAuth2 app. For example: jl000000000009t", + "x-example": "<APP_KEY>", + "x-nullable": true }, - "scopes": { - "type": "array", - "description": "Key scopes list. Maximum of 200 scopes are allowed.", - "x-example": null, - "items": { - "type": "string", - "enum": [ - "project.read", - "project.write", - "keys.read", - "keys.write", - "platforms.read", - "platforms.write", - "mocks.read", - "mocks.write", - "policies.read", - "policies.write", - "project.policies.read", - "project.policies.write", - "project.oauth2.read", - "project.oauth2.write", - "templates.read", - "templates.write", - "stages.read", - "stages.write", - "oauth2.read", - "oauth2.write", - "users.read", - "users.write", - "sessions.read", - "sessions.write", - "teams.read", - "teams.write", - "databases.read", - "databases.write", - "tables.read", - "tables.write", - "columns.read", - "columns.write", - "indexes.read", - "indexes.write", - "rows.read", - "rows.write", - "collections.read", - "collections.write", - "attributes.read", - "attributes.write", - "documents.read", - "documents.write", - "buckets.read", - "buckets.write", - "files.read", - "files.write", - "tokens.read", - "tokens.write", - "functions.read", - "functions.write", - "executions.read", - "executions.write", - "execution.read", - "execution.write", - "sites.read", - "sites.write", - "log.read", - "log.write", - "providers.read", - "providers.write", - "topics.read", - "topics.write", - "subscribers.read", - "subscribers.write", - "targets.read", - "targets.write", - "messages.read", - "messages.write", - "rules.read", - "rules.write", - "webhooks.read", - "webhooks.write", - "locale.read", - "avatars.read", - "health.read", - "assistant.read", - "migrations.read", - "migrations.write", - "schedules.read", - "schedules.write", - "vcs.read", - "vcs.write", - "insights.read", - "insights.write", - "reports.read", - "reports.write", - "presences.read", - "presences.write", - "backups.policies.read", - "backups.policies.write", - "archives.read", - "archives.write", - "restorations.read", - "restorations.write", - "dedicatedDatabases.execute", - "domains.read", - "domains.write", - "events.read", - "apps.read", - "apps.write", - "usage.read" - ], - "x-enum-name": "ProjectKeyScopes", - "x-enum-keys": [ - "project.read", - "project.write", - "keys.read", - "keys.write", - "platforms.read", - "platforms.write", - "mocks.read", - "mocks.write", - "policies.read", - "policies.write", - "project.policies.read", - "project.policies.write", - "project.oauth2.read", - "project.oauth2.write", - "templates.read", - "templates.write", - "stages.read", - "stages.write", - "oauth2.read", - "oauth2.write", - "users.read", - "users.write", - "sessions.read", - "sessions.write", - "teams.read", - "teams.write", - "databases.read", - "databases.write", - "tables.read", - "tables.write", - "columns.read", - "columns.write", - "indexes.read", - "indexes.write", - "rows.read", - "rows.write", - "collections.read", - "collections.write", - "attributes.read", - "attributes.write", - "documents.read", - "documents.write", - "buckets.read", - "buckets.write", - "files.read", - "files.write", - "tokens.read", - "tokens.write", - "functions.read", - "functions.write", - "executions.read", - "executions.write", - "execution.read", - "execution.write", - "sites.read", - "sites.write", - "log.read", - "log.write", - "providers.read", - "providers.write", - "topics.read", - "topics.write", - "subscribers.read", - "subscribers.write", - "targets.read", - "targets.write", - "messages.read", - "messages.write", - "rules.read", - "rules.write", - "webhooks.read", - "webhooks.write", - "locale.read", - "avatars.read", - "health.read", - "assistant.read", - "migrations.read", - "migrations.write", - "schedules.read", - "schedules.write", - "vcs.read", - "vcs.write", - "insights.read", - "insights.write", - "reports.read", - "reports.write", - "presences.read", - "presences.write", - "backups.policies.read", - "backups.policies.write", - "archives.read", - "archives.write", - "restorations.read", - "restorations.write", - "dedicatedDatabases.execute", - "domains.read", - "domains.write", - "events.read", - "apps.read", - "apps.write", - "usage.read" - ] - } - }, - "expire": { + "appSecret": { "type": "string", - "description": "Expiration time in [ISO 8601](https:\/\/www.iso.org\/iso-8601-date-and-time-format.html) format. Use null for unlimited expiration.", - "x-example": "2020-10-15T06:38:00.000+00:00", - "format": "datetime", + "description": "'App Secret' of Dropbox OAuth2 app. For example: g200000000000vw", + "x-example": "<APP_SECRET>", + "x-nullable": true + }, + "enabled": { + "type": "boolean", + "description": "OAuth2 sign-in method status. Set to true to enable new session creation. Setting to true will trigger end-to-end credentials validation, and will throw if the credentials are invalid.", + "x-example": false, "x-nullable": true } - }, - "required": [ - "name", - "scopes" - ] + } } } } } - }, - "delete": { - "summary": "Delete project key", - "operationId": "projectDeleteKey", + } + }, + "\/project\/oauth2\/etsy": { + "patch": { + "summary": "Update project OAuth2 Etsy", + "operationId": "projectUpdateOAuth2Etsy", "tags": [ "project" ], - "description": "Delete a key by its unique ID. Once deleted, the key can no longer be used to authenticate API calls.", + "description": "Update the project OAuth2 Etsy configuration.", "responses": { - "204": { - "description": "No content" + "200": { + "description": "OAuth2Etsy", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/oAuth2Etsy" + } + } + } } }, "deprecated": false, "x-appwrite": { - "method": "deleteKey", - "group": "keys", + "method": "updateOAuth2Etsy", + "group": "oauth2", "cookies": false, "type": "", - "demo": "project\/delete-key.md", + "demo": "project\/update-o-auth-2-etsy.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "keys.write", + "scope": "project.oauth2.write", "platforms": [ "console", "server" @@ -57447,35 +58303,52 @@ "Key": [] } ], - "parameters": [ - { - "name": "keyId", - "description": "Key ID.", - "required": true, - "schema": { - "type": "string", - "x-example": "<KEY_ID>" - }, - "in": "path" + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "keyString": { + "type": "string", + "description": "'Keystring' of Etsy OAuth2 app. For example: nsgzxh0000000000008j85a2", + "x-example": "<KEY_STRING>", + "x-nullable": true + }, + "sharedSecret": { + "type": "string", + "description": "'Shared Secret' of Etsy OAuth2 app. For example: tp000000ru", + "x-example": "<SHARED_SECRET>", + "x-nullable": true + }, + "enabled": { + "type": "boolean", + "description": "OAuth2 sign-in method status. Set to true to enable new session creation. Setting to true will trigger end-to-end credentials validation, and will throw if the credentials are invalid.", + "x-example": false, + "x-nullable": true + } + } + } + } } - ] + } } }, - "\/project\/labels": { - "put": { - "summary": "Update project labels", - "operationId": "projectUpdateLabels", + "\/project\/oauth2\/facebook": { + "patch": { + "summary": "Update project OAuth2 Facebook", + "operationId": "projectUpdateOAuth2Facebook", "tags": [ "project" ], - "description": "Update the project labels. Labels can be used to easily filter projects in an organization.", + "description": "Update the project OAuth2 Facebook configuration.", "responses": { "200": { - "description": "Project", + "description": "OAuth2Facebook", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/project" + "$ref": "#\/components\/schemas\/oAuth2Facebook" } } } @@ -57483,15 +58356,15 @@ }, "deprecated": false, "x-appwrite": { - "method": "updateLabels", - "group": null, + "method": "updateOAuth2Facebook", + "group": "oauth2", "cookies": false, "type": "", - "demo": "project\/update-labels.md", + "demo": "project\/update-o-auth-2-facebook.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "project.write", + "scope": "project.oauth2.write", "platforms": [ "console", "server" @@ -57514,39 +58387,46 @@ "schema": { "type": "object", "properties": { - "labels": { - "type": "array", - "description": "Array of project labels. Replaces the previous labels. Maximum of 1000 labels are allowed, each up to 36 alphanumeric characters long.", - "x-example": null, - "items": { - "type": "string" - } + "appId": { + "type": "string", + "description": "'App ID' of Facebook OAuth2 app. For example: 260600000007694", + "x-example": "<APP_ID>", + "x-nullable": true + }, + "appSecret": { + "type": "string", + "description": "'App Secret' of Facebook OAuth2 app. For example: 2d0b2800000000000000000000d38af4", + "x-example": "<APP_SECRET>", + "x-nullable": true + }, + "enabled": { + "type": "boolean", + "description": "OAuth2 sign-in method status. Set to true to enable new session creation. Setting to true will trigger end-to-end credentials validation, and will throw if the credentials are invalid.", + "x-example": false, + "x-nullable": true } - }, - "required": [ - "labels" - ] + } } } } } } }, - "\/project\/mock-phones": { - "get": { - "summary": "List project mock phones", - "operationId": "projectListMockPhones", + "\/project\/oauth2\/figma": { + "patch": { + "summary": "Update project OAuth2 Figma", + "operationId": "projectUpdateOAuth2Figma", "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.", + "description": "Update the project OAuth2 Figma configuration.", "responses": { "200": { - "description": "Mock Numbers List", + "description": "OAuth2Figma", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/mockNumberList" + "$ref": "#\/components\/schemas\/oAuth2Figma" } } } @@ -57554,15 +58434,15 @@ }, "deprecated": false, "x-appwrite": { - "method": "listMockPhones", - "group": "mocks", + "method": "updateOAuth2Figma", + "group": "oauth2", "cookies": false, "type": "", - "demo": "project\/list-mock-phones.md", + "demo": "project\/update-o-auth-2-figma.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "mocks.read", + "scope": "project.oauth2.write", "platforms": [ "console", "server" @@ -57579,47 +58459,52 @@ "Key": [] } ], - "parameters": [ - { - "name": "queries", - "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/queries). Only supported methods are limit and offset", - "required": false, - "schema": { - "type": "array", - "items": { - "type": "string" - }, - "default": [] - }, - "in": "query" - }, - { - "name": "total", - "description": "When set to false, the total count returned will be 0 and will not be calculated.", - "required": false, - "schema": { - "type": "boolean", - "x-example": false, - "default": true - }, - "in": "query" + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "clientId": { + "type": "string", + "description": "'Client ID' of Figma OAuth2 app. For example: byay5H0000000000VtiI40", + "x-example": "<CLIENT_ID>", + "x-nullable": true + }, + "clientSecret": { + "type": "string", + "description": "'Client Secret' of Figma OAuth2 app. For example: yEpOYn0000000000000000004iIsU5", + "x-example": "<CLIENT_SECRET>", + "x-nullable": true + }, + "enabled": { + "type": "boolean", + "description": "OAuth2 sign-in method status. Set to true to enable new session creation. Setting to true will trigger end-to-end credentials validation, and will throw if the credentials are invalid.", + "x-example": false, + "x-nullable": true + } + } + } + } } - ] - }, - "post": { - "summary": "Create project mock phone", - "operationId": "projectCreateMockPhone", + } + } + }, + "\/project\/oauth2\/fusionauth": { + "patch": { + "summary": "Update project OAuth2 FusionAuth", + "operationId": "projectUpdateOAuth2FusionAuth", "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.", + "description": "Update the project OAuth2 FusionAuth configuration.", "responses": { - "201": { - "description": "Mock Number", + "200": { + "description": "OAuth2FusionAuth", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/mockNumber" + "$ref": "#\/components\/schemas\/oAuth2FusionAuth" } } } @@ -57627,15 +58512,15 @@ }, "deprecated": false, "x-appwrite": { - "method": "createMockPhone", - "group": "mocks", + "method": "updateOAuth2FusionAuth", + "group": "oauth2", "cookies": false, "type": "", - "demo": "project\/create-mock-phone.md", + "demo": "project\/update-o-auth-2-fusion-auth.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "mocks.write", + "scope": "project.oauth2.write", "platforms": [ "console", "server" @@ -57658,43 +58543,52 @@ "schema": { "type": "object", "properties": { - "number": { + "clientId": { "type": "string", - "description": "Phone number to associate with the mock phone. Must be a valid E.164 formatted phone number.", - "x-example": "+12065550100", - "format": "phone" + "description": "'Client ID' of FusionAuth OAuth2 app. For example: b2222c00-0000-0000-0000-000000862097", + "x-example": "<CLIENT_ID>", + "x-nullable": true }, - "otp": { + "clientSecret": { "type": "string", - "description": "One-time password (OTP) to associate with the mock phone. Must be a 6-digit numeric code.", - "x-example": "<OTP>" + "description": "'Client Secret' of FusionAuth OAuth2 app. For example: Jx4s0C0000000000000000000000000000000wGqLsc", + "x-example": "<CLIENT_SECRET>", + "x-nullable": true + }, + "endpoint": { + "type": "string", + "description": "Domain of FusionAuth instance. For example: example.fusionauth.io", + "x-example": "<ENDPOINT>", + "x-nullable": true + }, + "enabled": { + "type": "boolean", + "description": "OAuth2 sign-in method status. Set to true to enable new session creation. Setting to true will trigger end-to-end credentials validation, and will throw if the credentials are invalid.", + "x-example": false, + "x-nullable": true } - }, - "required": [ - "number", - "otp" - ] + } } } } } } }, - "\/project\/mock-phones\/{number}": { - "get": { - "summary": "Get project mock phone", - "operationId": "projectGetMockPhone", + "\/project\/oauth2\/github": { + "patch": { + "summary": "Update project OAuth2 GitHub", + "operationId": "projectUpdateOAuth2GitHub", "tags": [ "project" ], - "description": "Get a mock phone by its unique number. This endpoint returns the mock phone's OTP.", + "description": "Update the project OAuth2 GitHub configuration.", "responses": { "200": { - "description": "Mock Number", + "description": "OAuth2GitHub", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/mockNumber" + "$ref": "#\/components\/schemas\/oAuth2Github" } } } @@ -57702,15 +58596,15 @@ }, "deprecated": false, "x-appwrite": { - "method": "getMockPhone", - "group": "mocks", + "method": "updateOAuth2GitHub", + "group": "oauth2", "cookies": false, "type": "", - "demo": "project\/get-mock-phone.md", + "demo": "project\/update-o-auth-2-git-hub.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "mocks.read", + "scope": "project.oauth2.write", "platforms": [ "console", "server" @@ -57727,34 +58621,52 @@ "Key": [] } ], - "parameters": [ - { - "name": "number", - "description": "Phone number associated with the mock phone. Must be a valid E.164 formatted phone number.", - "required": true, - "schema": { - "type": "string", - "format": "phone", - "x-example": "+12065550100" - }, - "in": "path" + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "clientId": { + "type": "string", + "description": "'OAuth2 app Client ID, or App ID' of GitHub OAuth2 app. For example: e4d87900000000540733. Example of wrong value: 370006", + "x-example": "<CLIENT_ID>", + "x-nullable": true + }, + "clientSecret": { + "type": "string", + "description": "'Client Secret' of GitHub OAuth2 app. For example: 5e07c00000000000000000000000000000198bcc", + "x-example": "<CLIENT_SECRET>", + "x-nullable": true + }, + "enabled": { + "type": "boolean", + "description": "OAuth2 sign-in method status. Set to true to enable new session creation. Setting to true will trigger end-to-end credentials validation, and will throw if the credentials are invalid.", + "x-example": false, + "x-nullable": true + } + } + } + } } - ] - }, - "put": { - "summary": "Update project mock phone", - "operationId": "projectUpdateMockPhone", + } + } + }, + "\/project\/oauth2\/gitlab": { + "patch": { + "summary": "Update project OAuth2 Gitlab", + "operationId": "projectUpdateOAuth2Gitlab", "tags": [ "project" ], - "description": "Update a mock phone by its unique number. Use this endpoint to update the mock phone's OTP.", + "description": "Update the project OAuth2 Gitlab configuration.", "responses": { "200": { - "description": "Mock Number", + "description": "OAuth2Gitlab", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/mockNumber" + "$ref": "#\/components\/schemas\/oAuth2Gitlab" } } } @@ -57762,15 +58674,15 @@ }, "deprecated": false, "x-appwrite": { - "method": "updateMockPhone", - "group": "mocks", + "method": "updateOAuth2Gitlab", + "group": "oauth2", "cookies": false, "type": "", - "demo": "project\/update-mock-phone.md", + "demo": "project\/update-o-auth-2-gitlab.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "mocks.write", + "scope": "project.oauth2.write", "platforms": [ "console", "server" @@ -57787,108 +58699,59 @@ "Key": [] } ], - "parameters": [ - { - "name": "number", - "description": "Phone number associated with the mock phone. Must be a valid E.164 formatted phone number.", - "required": true, - "schema": { - "type": "string", - "format": "phone", - "x-example": "+12065550100" - }, - "in": "path" - } - ], "requestBody": { "content": { "application\/json": { "schema": { "type": "object", "properties": { - "otp": { + "applicationId": { "type": "string", - "description": "One-time password (OTP) to associate with the mock phone. Must be a 6-digit numeric code.", - "x-example": "<OTP>" + "description": "'Application ID' of Gitlab OAuth2 app. For example: d41ffe0000000000000000000000000000000000000000000000000000d5e252", + "x-example": "<APPLICATION_ID>", + "x-nullable": true + }, + "secret": { + "type": "string", + "description": "'Secret' of Gitlab OAuth2 app. For example: gloas-838cfa0000000000000000000000000000000000000000000000000000ecbb38", + "x-example": "<SECRET>", + "x-nullable": true + }, + "endpoint": { + "type": "string", + "description": "Endpoint URL of self-hosted GitLab instance. For example: https:\/\/gitlab.com", + "x-example": "https:\/\/example.com", + "format": "url", + "x-nullable": true + }, + "enabled": { + "type": "boolean", + "description": "OAuth2 sign-in method status. Set to true to enable new session creation. Setting to true will trigger end-to-end credentials validation, and will throw if the credentials are invalid.", + "x-example": false, + "x-nullable": true } - }, - "required": [ - "otp" - ] + } } } } } - }, - "delete": { - "summary": "Delete project mock phone", - "operationId": "projectDeleteMockPhone", - "tags": [ - "project" - ], - "description": "Delete a mock phone by its unique number. This endpoint removes the mock phone and its OTP configuration from the project.", - "responses": { - "204": { - "description": "No content" - } - }, - "deprecated": false, - "x-appwrite": { - "method": "deleteMockPhone", - "group": "mocks", - "cookies": false, - "type": "", - "demo": "project\/delete-mock-phone.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "mocks.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "number", - "description": "Phone number associated with the mock phone. Must be a valid E.164 formatted phone number.", - "required": true, - "schema": { - "type": "string", - "format": "phone", - "x-example": "+12065550100" - }, - "in": "path" - } - ] } }, - "\/project\/oauth2": { - "get": { - "summary": "List project OAuth2 providers", - "operationId": "projectListOAuth2Providers", + "\/project\/oauth2\/google": { + "patch": { + "summary": "Update project OAuth2 Google", + "operationId": "projectUpdateOAuth2Google", "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.", + "description": "Update the project OAuth2 Google configuration.", "responses": { "200": { - "description": "OAuth2 Providers List", + "description": "OAuth2Google", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/oAuth2ProviderList" + "$ref": "#\/components\/schemas\/oAuth2Google" } } } @@ -57896,93 +58759,15 @@ }, "deprecated": false, "x-appwrite": { - "method": "listOAuth2Providers", + "method": "updateOAuth2Google", "group": "oauth2", "cookies": false, "type": "", - "demo": "project\/list-o-auth-2-providers.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": [ - "oauth2.read", - "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", - "x-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": { - "method": "updateOAuth2Server", - "group": null, - "cookies": false, - "type": "", - "demo": "project\/update-o-auth-2-server.md", + "demo": "project\/update-o-auth-2-google.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "project.write", + "scope": "project.oauth2.write", "platforms": [ "console", "server" @@ -58005,122 +58790,66 @@ "schema": { "type": "object", "properties": { - "enabled": { - "type": "boolean", - "description": "Enable or disable the OAuth2 server.", - "x-example": false - }, - "authorizationUrl": { + "clientId": { "type": "string", - "description": "URL to your application with consent screen.", - "x-example": "https:\/\/example.com", - "format": "url" + "description": "'Client ID' of Google OAuth2 app. For example: 120000000095-92ifjb00000000000000000000g7ijfb.apps.googleusercontent.com", + "x-example": "<CLIENT_ID>", + "x-nullable": true }, - "scopes": { - "type": "array", - "description": "List of allowed OAuth2 scopes. Maximum of 100 scopes are allowed, each up to 128 characters long.", - "default": [], - "x-example": null, - "items": { - "type": "string" - } + "clientSecret": { + "type": "string", + "description": "'Client Secret' of Google OAuth2 app. For example: GOCSPX-2k8gsR0000000000000000VNahJj", + "x-example": "<CLIENT_SECRET>", + "x-nullable": true }, - "authorizationDetailsTypes": { + "prompt": { "type": "array", - "description": "List of accepted `authorization_details` types. Maximum of 100 types are allowed, each up to 128 characters long.", - "default": [], + "description": "Array of Google OAuth2 prompt values. If \"none\" is included, it must be the only element. \"none\" means: don't display any authentication or consent screens. Must not be specified with other values. \"consent\" means: prompt the user for consent. \"select_account\" means: prompt the user to select an account.", "x-example": null, "items": { - "type": "string" - } - }, - "accessTokenDuration": { - "type": "integer", - "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.", - "x-example": 60, - "format": "int32", - "x-nullable": true - }, - "refreshTokenDuration": { - "type": "integer", - "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.", - "x-example": 60, - "format": "int32", - "x-nullable": true - }, - "publicAccessTokenDuration": { - "type": "integer", - "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.", - "x-example": 60, - "format": "int32", - "x-nullable": true - }, - "publicRefreshTokenDuration": { - "type": "integer", - "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.", - "x-example": 60, - "format": "int32", + "type": "string", + "enum": [ + "none", + "consent", + "select_account" + ], + "x-enum-name": "ProjectOAuth2GooglePrompt", + "x-enum-keys": [ + "none", + "consent", + "select_account" + ] + }, "x-nullable": true }, - "confidentialPkce": { + "enabled": { "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.", + "description": "OAuth2 sign-in method status. Set to true to enable new session creation. Setting to true will trigger end-to-end credentials validation, and will throw if the credentials are invalid.", "x-example": false, "x-nullable": true - }, - "verificationUrl": { - "type": "string", - "description": "URL to your application page where users enter the device flow user code. Required to enable the Device Authorization Grant.", - "default": "", - "x-example": "https:\/\/example.com", - "format": "url" - }, - "userCodeLength": { - "type": "integer", - "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.", - "x-example": 6, - "format": "int32", - "x-nullable": true - }, - "userCodeFormat": { - "type": "string", - "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`.", - "default": "alphanumeric", - "x-example": "numeric" - }, - "deviceCodeDuration": { - "type": "integer", - "description": "Lifetime in seconds of device flow device codes and user codes. Device codes are intentionally short-lived. Leave empty to use default 600.", - "x-example": 60, - "format": "int32", - "x-nullable": true } - }, - "required": [ - "enabled", - "authorizationUrl" - ] + } } } } } } }, - "\/project\/oauth2\/amazon": { + "\/project\/oauth2\/keycloak": { "patch": { - "summary": "Update project OAuth2 Amazon", - "operationId": "projectUpdateOAuth2Amazon", + "summary": "Update project OAuth2 Keycloak", + "operationId": "projectUpdateOAuth2Keycloak", "tags": [ "project" ], - "description": "Update the project OAuth2 Amazon configuration.", + "description": "Update the project OAuth2 Keycloak configuration.", "responses": { "200": { - "description": "OAuth2Amazon", + "description": "OAuth2Keycloak", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/oAuth2Amazon" + "$ref": "#\/components\/schemas\/oAuth2Keycloak" } } } @@ -58128,18 +58857,15 @@ }, "deprecated": false, "x-appwrite": { - "method": "updateOAuth2Amazon", + "method": "updateOAuth2Keycloak", "group": "oauth2", "cookies": false, "type": "", - "demo": "project\/update-o-auth-2-amazon.md", + "demo": "project\/update-o-auth-2-keycloak.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": [ - "oauth2.write", - "project.oauth2.write" - ], + "scope": "project.oauth2.write", "platforms": [ "console", "server" @@ -58164,16 +58890,28 @@ "properties": { "clientId": { "type": "string", - "description": "'Client ID' of Amazon OAuth2 app. For example: amzn1.application-oa2-client.87400c00000000000000000000063d5b2", + "description": "'Client ID' of Keycloak OAuth2 app. For example: appwrite-o0000000st-app", "x-example": "<CLIENT_ID>", "x-nullable": true }, "clientSecret": { "type": "string", - "description": "'Client Secret' of Amazon OAuth2 app. For example: 79ffe4000000000000000000000000000000000000000000000000000002de55", + "description": "'Client Secret' of Keycloak OAuth2 app. For example: jdjrJd00000000000000000000HUsaZO", "x-example": "<CLIENT_SECRET>", "x-nullable": true }, + "endpoint": { + "type": "string", + "description": "Domain of Keycloak instance. For example: keycloak.example.com", + "x-example": "<ENDPOINT>", + "x-nullable": true + }, + "realmName": { + "type": "string", + "description": "Keycloak realm name. For example: appwrite-realm", + "x-example": "<REALM_NAME>", + "x-nullable": true + }, "enabled": { "type": "boolean", "description": "OAuth2 sign-in method status. Set to true to enable new session creation. Setting to true will trigger end-to-end credentials validation, and will throw if the credentials are invalid.", @@ -58187,21 +58925,21 @@ } } }, - "\/project\/oauth2\/apple": { + "\/project\/oauth2\/kick": { "patch": { - "summary": "Update project OAuth2 Apple", - "operationId": "projectUpdateOAuth2Apple", + "summary": "Update project OAuth2 Kick", + "operationId": "projectUpdateOAuth2Kick", "tags": [ "project" ], - "description": "Update the project OAuth2 Apple configuration.", + "description": "Update the project OAuth2 Kick configuration.", "responses": { "200": { - "description": "OAuth2Apple", + "description": "OAuth2Kick", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/oAuth2Apple" + "$ref": "#\/components\/schemas\/oAuth2Kick" } } } @@ -58209,18 +58947,15 @@ }, "deprecated": false, "x-appwrite": { - "method": "updateOAuth2Apple", + "method": "updateOAuth2Kick", "group": "oauth2", "cookies": false, "type": "", - "demo": "project\/update-o-auth-2-apple.md", + "demo": "project\/update-o-auth-2-kick.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": [ - "oauth2.write", - "project.oauth2.write" - ], + "scope": "project.oauth2.write", "platforms": [ "console", "server" @@ -58243,28 +58978,16 @@ "schema": { "type": "object", "properties": { - "serviceId": { - "type": "string", - "description": "'Service ID' of Apple OAuth2 app. For example: ip.appwrite.app.web", - "x-example": "<SERVICE_ID>", - "x-nullable": true - }, - "keyId": { - "type": "string", - "description": "'Key ID' of Apple OAuth2 app. For example: P4000000N8", - "x-example": "<KEY_ID>", - "x-nullable": true - }, - "teamId": { + "clientId": { "type": "string", - "description": "'Team ID' of Apple OAuth2 app. For example: D4000000R6", - "x-example": "<TEAM_ID>", + "description": "'Client ID' of Kick OAuth2 app. For example: 01KQ7C00000000000001MFHS32", + "x-example": "<CLIENT_ID>", "x-nullable": true }, - "p8File": { + "clientSecret": { "type": "string", - "description": "Contents of the Apple OAuth2 app .p8 private key file. The secret key wrapped by the PEM markers is 200 characters long. For example: -----BEGIN PRIVATE KEY-----MIGTAg...jy2Xbna-----END PRIVATE KEY-----", - "x-example": "<P8_FILE>", + "description": "'Client Secret' of Kick OAuth2 app. For example: 34ac5600000000000000000000000000000000000000000000000000e830c8b", + "x-example": "<CLIENT_SECRET>", "x-nullable": true }, "enabled": { @@ -58280,21 +59003,21 @@ } } }, - "\/project\/oauth2\/auth0": { + "\/project\/oauth2\/linkedin": { "patch": { - "summary": "Update project OAuth2 Auth0", - "operationId": "projectUpdateOAuth2Auth0", + "summary": "Update project OAuth2 Linkedin", + "operationId": "projectUpdateOAuth2Linkedin", "tags": [ "project" ], - "description": "Update the project OAuth2 Auth0 configuration.", + "description": "Update the project OAuth2 Linkedin configuration.", "responses": { "200": { - "description": "OAuth2Auth0", + "description": "OAuth2Linkedin", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/oAuth2Auth0" + "$ref": "#\/components\/schemas\/oAuth2Linkedin" } } } @@ -58302,18 +59025,15 @@ }, "deprecated": false, "x-appwrite": { - "method": "updateOAuth2Auth0", + "method": "updateOAuth2Linkedin", "group": "oauth2", "cookies": false, "type": "", - "demo": "project\/update-o-auth-2-auth-0.md", + "demo": "project\/update-o-auth-2-linkedin.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": [ - "oauth2.write", - "project.oauth2.write" - ], + "scope": "project.oauth2.write", "platforms": [ "console", "server" @@ -58338,20 +59058,14 @@ "properties": { "clientId": { "type": "string", - "description": "'Client ID' of Auth0 OAuth2 app. For example: OaOkIA000000000000000000005KLSYq", + "description": "'Client ID' of Linkedin OAuth2 app. For example: 770000000000dv", "x-example": "<CLIENT_ID>", "x-nullable": true }, - "clientSecret": { - "type": "string", - "description": "'Client Secret' of Auth0 OAuth2 app. For example: zXz0000-00000000000000000000000000000-00000000000000000000PJafnF", - "x-example": "<CLIENT_SECRET>", - "x-nullable": true - }, - "endpoint": { + "primaryClientSecret": { "type": "string", - "description": "Domain of Auth0 instance. For example: example.us.auth0.com", - "x-example": "<ENDPOINT>", + "description": "'Primary Client Secret or Secondary Client Secret' of Linkedin OAuth2 app. For example: WPL_AP1.2Bf0000000000000.\/HtlYw==", + "x-example": "<PRIMARY_CLIENT_SECRET>", "x-nullable": true }, "enabled": { @@ -58367,21 +59081,21 @@ } } }, - "\/project\/oauth2\/authentik": { + "\/project\/oauth2\/microsoft": { "patch": { - "summary": "Update project OAuth2 Authentik", - "operationId": "projectUpdateOAuth2Authentik", + "summary": "Update project OAuth2 Microsoft", + "operationId": "projectUpdateOAuth2Microsoft", "tags": [ "project" ], - "description": "Update the project OAuth2 Authentik configuration.", + "description": "Update the project OAuth2 Microsoft configuration.", "responses": { "200": { - "description": "OAuth2Authentik", + "description": "OAuth2Microsoft", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/oAuth2Authentik" + "$ref": "#\/components\/schemas\/oAuth2Microsoft" } } } @@ -58389,18 +59103,15 @@ }, "deprecated": false, "x-appwrite": { - "method": "updateOAuth2Authentik", + "method": "updateOAuth2Microsoft", "group": "oauth2", "cookies": false, "type": "", - "demo": "project\/update-o-auth-2-authentik.md", + "demo": "project\/update-o-auth-2-microsoft.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": [ - "oauth2.write", - "project.oauth2.write" - ], + "scope": "project.oauth2.write", "platforms": [ "console", "server" @@ -58423,22 +59134,22 @@ "schema": { "type": "object", "properties": { - "clientId": { + "applicationId": { "type": "string", - "description": "'Client ID' of Authentik OAuth2 app. For example: dTKOPa0000000000000000000000000000e7G8hv", - "x-example": "<CLIENT_ID>", + "description": "'Entra ID Application ID, also known as Client ID' of Microsoft OAuth2 app. For example: 00001111-aaaa-2222-bbbb-3333cccc4444", + "x-example": "<APPLICATION_ID>", "x-nullable": true }, - "clientSecret": { + "applicationSecret": { "type": "string", - "description": "'Client Secret' of Authentik OAuth2 app. For example: ntQadq000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000Hp5WK", - "x-example": "<CLIENT_SECRET>", + "description": "'Entra ID Application Secret, also known as Client Secret' of Microsoft OAuth2 app. For example: A1bC2dE3fH4iJ5kL6mN7oP8qR9sT0u", + "x-example": "<APPLICATION_SECRET>", "x-nullable": true }, - "endpoint": { + "tenant": { "type": "string", - "description": "Domain of Authentik instance. For example: example.authentik.com", - "x-example": "<ENDPOINT>", + "description": "Microsoft Entra ID tenant identifier. Use 'common', 'organizations', 'consumers' or a specific tenant ID. For example: common", + "x-example": "<TENANT>", "x-nullable": true }, "enabled": { @@ -58454,21 +59165,21 @@ } } }, - "\/project\/oauth2\/autodesk": { + "\/project\/oauth2\/notion": { "patch": { - "summary": "Update project OAuth2 Autodesk", - "operationId": "projectUpdateOAuth2Autodesk", + "summary": "Update project OAuth2 Notion", + "operationId": "projectUpdateOAuth2Notion", "tags": [ "project" ], - "description": "Update the project OAuth2 Autodesk configuration.", + "description": "Update the project OAuth2 Notion configuration.", "responses": { "200": { - "description": "OAuth2Autodesk", + "description": "OAuth2Notion", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/oAuth2Autodesk" + "$ref": "#\/components\/schemas\/oAuth2Notion" } } } @@ -58476,18 +59187,15 @@ }, "deprecated": false, "x-appwrite": { - "method": "updateOAuth2Autodesk", + "method": "updateOAuth2Notion", "group": "oauth2", "cookies": false, "type": "", - "demo": "project\/update-o-auth-2-autodesk.md", + "demo": "project\/update-o-auth-2-notion.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": [ - "oauth2.write", - "project.oauth2.write" - ], + "scope": "project.oauth2.write", "platforms": [ "console", "server" @@ -58510,16 +59218,16 @@ "schema": { "type": "object", "properties": { - "clientId": { + "oauthClientId": { "type": "string", - "description": "'Client ID' of Autodesk OAuth2 app. For example: 5zw90v00000000000000000000kVYXN7", - "x-example": "<CLIENT_ID>", + "description": "'OAuth Client ID' of Notion OAuth2 app. For example: 341d8700-0000-0000-0000-000000446ee3", + "x-example": "<OAUTH_CLIENT_ID>", "x-nullable": true }, - "clientSecret": { + "oauthClientSecret": { "type": "string", - "description": "'Client Secret' of Autodesk OAuth2 app. For example: 7I000000000000MW", - "x-example": "<CLIENT_SECRET>", + "description": "'OAuth Client Secret' of Notion OAuth2 app. For example: secret_dLUr4b000000000000000000000000000000lFHAa9", + "x-example": "<OAUTH_CLIENT_SECRET>", "x-nullable": true }, "enabled": { @@ -58535,21 +59243,21 @@ } } }, - "\/project\/oauth2\/bitbucket": { + "\/project\/oauth2\/oidc": { "patch": { - "summary": "Update project OAuth2 Bitbucket", - "operationId": "projectUpdateOAuth2Bitbucket", + "summary": "Update project OAuth2 Oidc", + "operationId": "projectUpdateOAuth2Oidc", "tags": [ "project" ], - "description": "Update the project OAuth2 Bitbucket configuration.", + "description": "Update the project OAuth2 Oidc configuration.", "responses": { "200": { - "description": "OAuth2Bitbucket", + "description": "OAuth2Oidc", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/oAuth2Bitbucket" + "$ref": "#\/components\/schemas\/oAuth2Oidc" } } } @@ -58557,18 +59265,15 @@ }, "deprecated": false, "x-appwrite": { - "method": "updateOAuth2Bitbucket", + "method": "updateOAuth2Oidc", "group": "oauth2", "cookies": false, "type": "", - "demo": "project\/update-o-auth-2-bitbucket.md", + "demo": "project\/update-o-auth-2-oidc.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": [ - "oauth2.write", - "project.oauth2.write" - ], + "scope": "project.oauth2.write", "platforms": [ "console", "server" @@ -58591,46 +59296,103 @@ "schema": { "type": "object", "properties": { - "key": { + "clientId": { "type": "string", - "description": "'Key' of Bitbucket OAuth2 app. For example: Knt70000000000ByRc", - "x-example": "<KEY>", + "description": "'Client ID' of Oidc OAuth2 app. For example: qibI2x0000000000000000000000000006L2YFoG", + "x-example": "<CLIENT_ID>", "x-nullable": true }, - "secret": { + "clientSecret": { "type": "string", - "description": "'Secret' of Bitbucket OAuth2 app. For example: NMfLZJ00000000000000000000TLQdDx", - "x-example": "<SECRET>", + "description": "'Client Secret' of Oidc OAuth2 app. For example: Ah68ed000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003qpcHV", + "x-example": "<CLIENT_SECRET>", "x-nullable": true }, - "enabled": { - "type": "boolean", - "description": "OAuth2 sign-in method status. Set to true to enable new session creation. Setting to true will trigger end-to-end credentials validation, and will throw if the credentials are invalid.", - "x-example": false, + "wellKnownURL": { + "type": "string", + "description": "OpenID Connect well-known configuration URL. When provided, authorization, token, and user info endpoints can be discovered automatically. For example: https:\/\/myoauth.com\/.well-known\/openid-configuration", + "x-example": "https:\/\/example.com", + "format": "url", "x-nullable": true - } - } + }, + "authorizationURL": { + "type": "string", + "description": "OpenID Connect authorization endpoint URL. Required when wellKnownURL is not provided. For example: https:\/\/myoauth.com\/oauth2\/authorize", + "x-example": "https:\/\/example.com", + "format": "url", + "x-nullable": true + }, + "tokenURL": { + "type": "string", + "description": "OpenID Connect token endpoint URL. Required when wellKnownURL is not provided. For example: https:\/\/myoauth.com\/oauth2\/token", + "x-example": "https:\/\/example.com", + "format": "url", + "x-nullable": true + }, + "userInfoURL": { + "type": "string", + "description": "OpenID Connect user info endpoint URL. Required when wellKnownURL is not provided. For example: https:\/\/myoauth.com\/oauth2\/userinfo", + "x-example": "https:\/\/example.com", + "format": "url", + "x-nullable": true + }, + "prompt": { + "type": "array", + "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.", + "x-example": null, + "items": { + "type": "string", + "enum": [ + "none", + "login", + "consent", + "select_account" + ], + "x-enum-name": "ProjectOAuth2OidcPrompt", + "x-enum-keys": [ + "none", + "login", + "consent", + "select_account" + ] + }, + "x-nullable": true + }, + "maxAge": { + "type": "integer", + "description": "Maximum authentication age in seconds. When set, the user must have authenticated within this many seconds, otherwise they are prompted to re-authenticate.", + "x-example": 0, + "format": "int32", + "x-nullable": true + }, + "enabled": { + "type": "boolean", + "description": "OAuth2 sign-in method status. Set to true to enable new session creation. Setting to true will trigger end-to-end credentials validation, and will throw if the credentials are invalid.", + "x-example": false, + "x-nullable": true + } + } } } } } } }, - "\/project\/oauth2\/bitly": { + "\/project\/oauth2\/okta": { "patch": { - "summary": "Update project OAuth2 Bitly", - "operationId": "projectUpdateOAuth2Bitly", + "summary": "Update project OAuth2 Okta", + "operationId": "projectUpdateOAuth2Okta", "tags": [ "project" ], - "description": "Update the project OAuth2 Bitly configuration.", + "description": "Update the project OAuth2 Okta configuration.", "responses": { "200": { - "description": "OAuth2Bitly", + "description": "OAuth2Okta", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/oAuth2Bitly" + "$ref": "#\/components\/schemas\/oAuth2Okta" } } } @@ -58638,18 +59400,15 @@ }, "deprecated": false, "x-appwrite": { - "method": "updateOAuth2Bitly", + "method": "updateOAuth2Okta", "group": "oauth2", "cookies": false, "type": "", - "demo": "project\/update-o-auth-2-bitly.md", + "demo": "project\/update-o-auth-2-okta.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": [ - "oauth2.write", - "project.oauth2.write" - ], + "scope": "project.oauth2.write", "platforms": [ "console", "server" @@ -58674,16 +59433,28 @@ "properties": { "clientId": { "type": "string", - "description": "'Client ID' of Bitly OAuth2 app. For example: d95151000000000000000000000000000067af9b", + "description": "'Client ID' of Okta OAuth2 app. For example: 0oa00000000000000698", "x-example": "<CLIENT_ID>", "x-nullable": true }, "clientSecret": { "type": "string", - "description": "'Client Secret' of Bitly OAuth2 app. For example: a13e250000000000000000000000000000d73095", + "description": "'Client Secret' of Okta OAuth2 app. For example: Kiq0000000000000000000000000000000000000-00000000000H2L5-3SJ-vRV", "x-example": "<CLIENT_SECRET>", "x-nullable": true }, + "domain": { + "type": "string", + "description": "Okta company domain. Required when enabling the provider. For example: trial-6400025.okta.com. Example of wrong value: trial-6400025-admin.okta.com, or https:\/\/trial-6400025.okta.com\/", + "x-example": null, + "x-nullable": true + }, + "authorizationServerId": { + "type": "string", + "description": "Custom Authorization Servers. Optional, can be left empty or unconfigured. For example: aus000000000000000h7z", + "x-example": "<AUTHORIZATION_SERVER_ID>", + "x-nullable": true + }, "enabled": { "type": "boolean", "description": "OAuth2 sign-in method status. Set to true to enable new session creation. Setting to true will trigger end-to-end credentials validation, and will throw if the credentials are invalid.", @@ -58697,21 +59468,21 @@ } } }, - "\/project\/oauth2\/box": { + "\/project\/oauth2\/paypal": { "patch": { - "summary": "Update project OAuth2 Box", - "operationId": "projectUpdateOAuth2Box", + "summary": "Update project OAuth2 Paypal", + "operationId": "projectUpdateOAuth2Paypal", "tags": [ "project" ], - "description": "Update the project OAuth2 Box configuration.", + "description": "Update the project OAuth2 Paypal configuration.", "responses": { "200": { - "description": "OAuth2Box", + "description": "OAuth2Paypal", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/oAuth2Box" + "$ref": "#\/components\/schemas\/oAuth2Paypal" } } } @@ -58719,18 +59490,15 @@ }, "deprecated": false, "x-appwrite": { - "method": "updateOAuth2Box", + "method": "updateOAuth2Paypal", "group": "oauth2", "cookies": false, "type": "", - "demo": "project\/update-o-auth-2-box.md", + "demo": "project\/update-o-auth-2-paypal.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": [ - "oauth2.write", - "project.oauth2.write" - ], + "scope": "project.oauth2.write", "platforms": [ "console", "server" @@ -58755,14 +59523,14 @@ "properties": { "clientId": { "type": "string", - "description": "'Client ID' of Box OAuth2 app. For example: deglcs00000000000000000000x2og6y", + "description": "'Client ID' of Paypal OAuth2 app. For example: AdhIEG7-000000000000-0000000000000000000000000000000-0000000000000000000000-2pyB", "x-example": "<CLIENT_ID>", "x-nullable": true }, - "clientSecret": { + "secretKey": { "type": "string", - "description": "'Client Secret' of Box OAuth2 app. For example: OKM1f100000000000000000000eshEif", - "x-example": "<CLIENT_SECRET>", + "description": "'Secret Key 1 or Secret Key 2' of Paypal OAuth2 app. For example: EH8KCXtew--000000000000000000000000000000000000000_C-1_5UP_000000000000000CB7KDp", + "x-example": "<SECRET_KEY>", "x-nullable": true }, "enabled": { @@ -58778,21 +59546,21 @@ } } }, - "\/project\/oauth2\/dailymotion": { + "\/project\/oauth2\/paypalSandbox": { "patch": { - "summary": "Update project OAuth2 Dailymotion", - "operationId": "projectUpdateOAuth2Dailymotion", + "summary": "Update project OAuth2 PaypalSandbox", + "operationId": "projectUpdateOAuth2PaypalSandbox", "tags": [ "project" ], - "description": "Update the project OAuth2 Dailymotion configuration.", + "description": "Update the project OAuth2 PaypalSandbox configuration.", "responses": { "200": { - "description": "OAuth2Dailymotion", + "description": "OAuth2Paypal", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/oAuth2Dailymotion" + "$ref": "#\/components\/schemas\/oAuth2Paypal" } } } @@ -58800,18 +59568,15 @@ }, "deprecated": false, "x-appwrite": { - "method": "updateOAuth2Dailymotion", + "method": "updateOAuth2PaypalSandbox", "group": "oauth2", "cookies": false, "type": "", - "demo": "project\/update-o-auth-2-dailymotion.md", + "demo": "project\/update-o-auth-2-paypal-sandbox.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": [ - "oauth2.write", - "project.oauth2.write" - ], + "scope": "project.oauth2.write", "platforms": [ "console", "server" @@ -58834,16 +59599,16 @@ "schema": { "type": "object", "properties": { - "apiKey": { + "clientId": { "type": "string", - "description": "'API Key' of Dailymotion OAuth2 app. For example: 07a9000000000000067f", - "x-example": "<API_KEY>", + "description": "'Client ID' of PaypalSandbox OAuth2 app. For example: AdhIEG7-000000000000-0000000000000000000000000000000-0000000000000000000000-2pyB", + "x-example": "<CLIENT_ID>", "x-nullable": true }, - "apiSecret": { + "secretKey": { "type": "string", - "description": "'API Secret' of Dailymotion OAuth2 app. For example: a399a90000000000000000000000000000d90639", - "x-example": "<API_SECRET>", + "description": "'Secret Key 1 or Secret Key 2' of PaypalSandbox OAuth2 app. For example: EH8KCXtew--000000000000000000000000000000000000000_C-1_5UP_000000000000000CB7KDp", + "x-example": "<SECRET_KEY>", "x-nullable": true }, "enabled": { @@ -58859,21 +59624,21 @@ } } }, - "\/project\/oauth2\/discord": { + "\/project\/oauth2\/podio": { "patch": { - "summary": "Update project OAuth2 Discord", - "operationId": "projectUpdateOAuth2Discord", + "summary": "Update project OAuth2 Podio", + "operationId": "projectUpdateOAuth2Podio", "tags": [ "project" ], - "description": "Update the project OAuth2 Discord configuration.", + "description": "Update the project OAuth2 Podio configuration.", "responses": { "200": { - "description": "OAuth2Discord", + "description": "OAuth2Podio", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/oAuth2Discord" + "$ref": "#\/components\/schemas\/oAuth2Podio" } } } @@ -58881,18 +59646,15 @@ }, "deprecated": false, "x-appwrite": { - "method": "updateOAuth2Discord", + "method": "updateOAuth2Podio", "group": "oauth2", "cookies": false, "type": "", - "demo": "project\/update-o-auth-2-discord.md", + "demo": "project\/update-o-auth-2-podio.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": [ - "oauth2.write", - "project.oauth2.write" - ], + "scope": "project.oauth2.write", "platforms": [ "console", "server" @@ -58917,13 +59679,13 @@ "properties": { "clientId": { "type": "string", - "description": "'Client ID' of Discord OAuth2 app. For example: 950722000000343754", + "description": "'Client ID' of Podio OAuth2 app. For example: appwrite-o0000000st-app", "x-example": "<CLIENT_ID>", "x-nullable": true }, "clientSecret": { "type": "string", - "description": "'Client Secret' of Discord OAuth2 app. For example: YmPXnM000000000000000000002zFg5D", + "description": "'Client Secret' of Podio OAuth2 app. For example: Rn247T0000000000000000000000000000000000000000000000000000W2zWTN", "x-example": "<CLIENT_SECRET>", "x-nullable": true }, @@ -58940,21 +59702,21 @@ } } }, - "\/project\/oauth2\/disqus": { + "\/project\/oauth2\/salesforce": { "patch": { - "summary": "Update project OAuth2 Disqus", - "operationId": "projectUpdateOAuth2Disqus", + "summary": "Update project OAuth2 Salesforce", + "operationId": "projectUpdateOAuth2Salesforce", "tags": [ "project" ], - "description": "Update the project OAuth2 Disqus configuration.", + "description": "Update the project OAuth2 Salesforce configuration.", "responses": { "200": { - "description": "OAuth2Disqus", + "description": "OAuth2Salesforce", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/oAuth2Disqus" + "$ref": "#\/components\/schemas\/oAuth2Salesforce" } } } @@ -58962,18 +59724,15 @@ }, "deprecated": false, "x-appwrite": { - "method": "updateOAuth2Disqus", + "method": "updateOAuth2Salesforce", "group": "oauth2", "cookies": false, "type": "", - "demo": "project\/update-o-auth-2-disqus.md", + "demo": "project\/update-o-auth-2-salesforce.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": [ - "oauth2.write", - "project.oauth2.write" - ], + "scope": "project.oauth2.write", "platforms": [ "console", "server" @@ -58996,16 +59755,16 @@ "schema": { "type": "object", "properties": { - "publicKey": { + "customerKey": { "type": "string", - "description": "'Public Key, also known as API Key' of Disqus OAuth2 app. For example: cgegH70000000000000000000000000000000000000000000000000000Hr1nYX", - "x-example": "<PUBLIC_KEY>", + "description": "'Consumer Key' of Salesforce OAuth2 app. For example: 3MVG9I0000000000000000000000000000000000000000000000000000000000000000000000000C5Aejq", + "x-example": "<CUSTOMER_KEY>", "x-nullable": true }, - "secretKey": { + "customerSecret": { "type": "string", - "description": "'Secret Key, also known as API Secret' of Disqus OAuth2 app. For example: W7Bykj00000000000000000000000000000000000000000000000000003o43w9", - "x-example": "<SECRET_KEY>", + "description": "'Consumer Secret' of Salesforce OAuth2 app. For example: 3w000000000000e2", + "x-example": "<CUSTOMER_SECRET>", "x-nullable": true }, "enabled": { @@ -59021,21 +59780,21 @@ } } }, - "\/project\/oauth2\/dropbox": { + "\/project\/oauth2\/slack": { "patch": { - "summary": "Update project OAuth2 Dropbox", - "operationId": "projectUpdateOAuth2Dropbox", + "summary": "Update project OAuth2 Slack", + "operationId": "projectUpdateOAuth2Slack", "tags": [ "project" ], - "description": "Update the project OAuth2 Dropbox configuration.", + "description": "Update the project OAuth2 Slack configuration.", "responses": { "200": { - "description": "OAuth2Dropbox", + "description": "OAuth2Slack", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/oAuth2Dropbox" + "$ref": "#\/components\/schemas\/oAuth2Slack" } } } @@ -59043,18 +59802,15 @@ }, "deprecated": false, "x-appwrite": { - "method": "updateOAuth2Dropbox", + "method": "updateOAuth2Slack", "group": "oauth2", "cookies": false, "type": "", - "demo": "project\/update-o-auth-2-dropbox.md", + "demo": "project\/update-o-auth-2-slack.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": [ - "oauth2.write", - "project.oauth2.write" - ], + "scope": "project.oauth2.write", "platforms": [ "console", "server" @@ -59077,16 +59833,16 @@ "schema": { "type": "object", "properties": { - "appKey": { + "clientId": { "type": "string", - "description": "'App Key' of Dropbox OAuth2 app. For example: jl000000000009t", - "x-example": "<APP_KEY>", + "description": "'Client ID' of Slack OAuth2 app. For example: 23000000089.15000000000023", + "x-example": "<CLIENT_ID>", "x-nullable": true }, - "appSecret": { + "clientSecret": { "type": "string", - "description": "'App Secret' of Dropbox OAuth2 app. For example: g200000000000vw", - "x-example": "<APP_SECRET>", + "description": "'Client Secret' of Slack OAuth2 app. For example: 81656000000000000000000000f3d2fd", + "x-example": "<CLIENT_SECRET>", "x-nullable": true }, "enabled": { @@ -59102,21 +59858,21 @@ } } }, - "\/project\/oauth2\/etsy": { + "\/project\/oauth2\/spotify": { "patch": { - "summary": "Update project OAuth2 Etsy", - "operationId": "projectUpdateOAuth2Etsy", + "summary": "Update project OAuth2 Spotify", + "operationId": "projectUpdateOAuth2Spotify", "tags": [ "project" ], - "description": "Update the project OAuth2 Etsy configuration.", + "description": "Update the project OAuth2 Spotify configuration.", "responses": { "200": { - "description": "OAuth2Etsy", + "description": "OAuth2Spotify", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/oAuth2Etsy" + "$ref": "#\/components\/schemas\/oAuth2Spotify" } } } @@ -59124,18 +59880,15 @@ }, "deprecated": false, "x-appwrite": { - "method": "updateOAuth2Etsy", + "method": "updateOAuth2Spotify", "group": "oauth2", "cookies": false, "type": "", - "demo": "project\/update-o-auth-2-etsy.md", + "demo": "project\/update-o-auth-2-spotify.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": [ - "oauth2.write", - "project.oauth2.write" - ], + "scope": "project.oauth2.write", "platforms": [ "console", "server" @@ -59158,16 +59911,16 @@ "schema": { "type": "object", "properties": { - "keyString": { + "clientId": { "type": "string", - "description": "'Keystring' of Etsy OAuth2 app. For example: nsgzxh0000000000008j85a2", - "x-example": "<KEY_STRING>", + "description": "'Client ID' of Spotify OAuth2 app. For example: 6ec271000000000000000000009beace", + "x-example": "<CLIENT_ID>", "x-nullable": true }, - "sharedSecret": { + "clientSecret": { "type": "string", - "description": "'Shared Secret' of Etsy OAuth2 app. For example: tp000000ru", - "x-example": "<SHARED_SECRET>", + "description": "'Client Secret' of Spotify OAuth2 app. For example: db068a000000000000000000008b5b9f", + "x-example": "<CLIENT_SECRET>", "x-nullable": true }, "enabled": { @@ -59183,21 +59936,21 @@ } } }, - "\/project\/oauth2\/facebook": { + "\/project\/oauth2\/stripe": { "patch": { - "summary": "Update project OAuth2 Facebook", - "operationId": "projectUpdateOAuth2Facebook", + "summary": "Update project OAuth2 Stripe", + "operationId": "projectUpdateOAuth2Stripe", "tags": [ "project" ], - "description": "Update the project OAuth2 Facebook configuration.", + "description": "Update the project OAuth2 Stripe configuration.", "responses": { "200": { - "description": "OAuth2Facebook", + "description": "OAuth2Stripe", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/oAuth2Facebook" + "$ref": "#\/components\/schemas\/oAuth2Stripe" } } } @@ -59205,18 +59958,15 @@ }, "deprecated": false, "x-appwrite": { - "method": "updateOAuth2Facebook", + "method": "updateOAuth2Stripe", "group": "oauth2", "cookies": false, "type": "", - "demo": "project\/update-o-auth-2-facebook.md", + "demo": "project\/update-o-auth-2-stripe.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": [ - "oauth2.write", - "project.oauth2.write" - ], + "scope": "project.oauth2.write", "platforms": [ "console", "server" @@ -59239,16 +59989,16 @@ "schema": { "type": "object", "properties": { - "appId": { + "clientId": { "type": "string", - "description": "'App ID' of Facebook OAuth2 app. For example: 260600000007694", - "x-example": "<APP_ID>", + "description": "'Client ID' of Stripe OAuth2 app. For example: ca_UKibXX0000000000000000000006byvR", + "x-example": "<CLIENT_ID>", "x-nullable": true }, - "appSecret": { + "apiSecretKey": { "type": "string", - "description": "'App Secret' of Facebook OAuth2 app. For example: 2d0b2800000000000000000000d38af4", - "x-example": "<APP_SECRET>", + "description": "'API Secret Key' of Stripe OAuth2 app. For example: sk_51SfOd000000000000000000000000000000000000000000000000000000000000000000000000000000000000000QGWYfp", + "x-example": "<API_SECRET_KEY>", "x-nullable": true }, "enabled": { @@ -59264,21 +60014,21 @@ } } }, - "\/project\/oauth2\/figma": { + "\/project\/oauth2\/tradeshift": { "patch": { - "summary": "Update project OAuth2 Figma", - "operationId": "projectUpdateOAuth2Figma", + "summary": "Update project OAuth2 Tradeshift", + "operationId": "projectUpdateOAuth2Tradeshift", "tags": [ "project" ], - "description": "Update the project OAuth2 Figma configuration.", + "description": "Update the project OAuth2 Tradeshift configuration.", "responses": { "200": { - "description": "OAuth2Figma", + "description": "OAuth2Tradeshift", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/oAuth2Figma" + "$ref": "#\/components\/schemas\/oAuth2Tradeshift" } } } @@ -59286,18 +60036,15 @@ }, "deprecated": false, "x-appwrite": { - "method": "updateOAuth2Figma", + "method": "updateOAuth2Tradeshift", "group": "oauth2", "cookies": false, "type": "", - "demo": "project\/update-o-auth-2-figma.md", + "demo": "project\/update-o-auth-2-tradeshift.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": [ - "oauth2.write", - "project.oauth2.write" - ], + "scope": "project.oauth2.write", "platforms": [ "console", "server" @@ -59320,16 +60067,16 @@ "schema": { "type": "object", "properties": { - "clientId": { + "oauth2ClientId": { "type": "string", - "description": "'Client ID' of Figma OAuth2 app. For example: byay5H0000000000VtiI40", - "x-example": "<CLIENT_ID>", + "description": "'OAuth2 Client ID' of Tradeshift OAuth2 app. For example: appwrite-tes00000.0000000000est-app", + "x-example": "<OAUTH2_CLIENT_ID>", "x-nullable": true }, - "clientSecret": { + "oauth2ClientSecret": { "type": "string", - "description": "'Client Secret' of Figma OAuth2 app. For example: yEpOYn0000000000000000004iIsU5", - "x-example": "<CLIENT_SECRET>", + "description": "'OAuth2 Client Secret' of Tradeshift OAuth2 app. For example: 7cb52700-0000-0000-0000-000000ca5b83", + "x-example": "<OAUTH2_CLIENT_SECRET>", "x-nullable": true }, "enabled": { @@ -59345,21 +60092,21 @@ } } }, - "\/project\/oauth2\/fusionauth": { + "\/project\/oauth2\/tradeshiftBox": { "patch": { - "summary": "Update project OAuth2 FusionAuth", - "operationId": "projectUpdateOAuth2FusionAuth", + "summary": "Update project OAuth2 Tradeshift Sandbox", + "operationId": "projectUpdateOAuth2TradeshiftSandbox", "tags": [ "project" ], - "description": "Update the project OAuth2 FusionAuth configuration.", + "description": "Update the project OAuth2 Tradeshift Sandbox configuration.", "responses": { "200": { - "description": "OAuth2FusionAuth", + "description": "OAuth2Tradeshift", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/oAuth2FusionAuth" + "$ref": "#\/components\/schemas\/oAuth2Tradeshift" } } } @@ -59367,18 +60114,15 @@ }, "deprecated": false, "x-appwrite": { - "method": "updateOAuth2FusionAuth", + "method": "updateOAuth2TradeshiftSandbox", "group": "oauth2", "cookies": false, "type": "", - "demo": "project\/update-o-auth-2-fusion-auth.md", + "demo": "project\/update-o-auth-2-tradeshift-sandbox.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": [ - "oauth2.write", - "project.oauth2.write" - ], + "scope": "project.oauth2.write", "platforms": [ "console", "server" @@ -59401,22 +60145,16 @@ "schema": { "type": "object", "properties": { - "clientId": { - "type": "string", - "description": "'Client ID' of FusionAuth OAuth2 app. For example: b2222c00-0000-0000-0000-000000862097", - "x-example": "<CLIENT_ID>", - "x-nullable": true - }, - "clientSecret": { + "oauth2ClientId": { "type": "string", - "description": "'Client Secret' of FusionAuth OAuth2 app. For example: Jx4s0C0000000000000000000000000000000wGqLsc", - "x-example": "<CLIENT_SECRET>", + "description": "'OAuth2 Client ID' of Tradeshift Sandbox OAuth2 app. For example: appwrite-tes00000.0000000000est-app", + "x-example": "<OAUTH2_CLIENT_ID>", "x-nullable": true }, - "endpoint": { + "oauth2ClientSecret": { "type": "string", - "description": "Domain of FusionAuth instance. For example: example.fusionauth.io", - "x-example": "<ENDPOINT>", + "description": "'OAuth2 Client Secret' of Tradeshift Sandbox OAuth2 app. For example: 7cb52700-0000-0000-0000-000000ca5b83", + "x-example": "<OAUTH2_CLIENT_SECRET>", "x-nullable": true }, "enabled": { @@ -59432,21 +60170,21 @@ } } }, - "\/project\/oauth2\/github": { + "\/project\/oauth2\/twitch": { "patch": { - "summary": "Update project OAuth2 GitHub", - "operationId": "projectUpdateOAuth2GitHub", + "summary": "Update project OAuth2 Twitch", + "operationId": "projectUpdateOAuth2Twitch", "tags": [ "project" ], - "description": "Update the project OAuth2 GitHub configuration.", + "description": "Update the project OAuth2 Twitch configuration.", "responses": { "200": { - "description": "OAuth2GitHub", + "description": "OAuth2Twitch", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/oAuth2Github" + "$ref": "#\/components\/schemas\/oAuth2Twitch" } } } @@ -59454,18 +60192,15 @@ }, "deprecated": false, "x-appwrite": { - "method": "updateOAuth2GitHub", + "method": "updateOAuth2Twitch", "group": "oauth2", "cookies": false, "type": "", - "demo": "project\/update-o-auth-2-git-hub.md", + "demo": "project\/update-o-auth-2-twitch.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": [ - "oauth2.write", - "project.oauth2.write" - ], + "scope": "project.oauth2.write", "platforms": [ "console", "server" @@ -59490,13 +60225,13 @@ "properties": { "clientId": { "type": "string", - "description": "'OAuth2 app Client ID, or App ID' of GitHub OAuth2 app. For example: e4d87900000000540733. Example of wrong value: 370006", + "description": "'Client ID' of Twitch OAuth2 app. For example: vvi0in000000000000000000ikmt9p", "x-example": "<CLIENT_ID>", "x-nullable": true }, "clientSecret": { "type": "string", - "description": "'Client Secret' of GitHub OAuth2 app. For example: 5e07c00000000000000000000000000000198bcc", + "description": "'Client Secret' of Twitch OAuth2 app. For example: pmapue000000000000000000zylw3v", "x-example": "<CLIENT_SECRET>", "x-nullable": true }, @@ -59513,21 +60248,21 @@ } } }, - "\/project\/oauth2\/gitlab": { + "\/project\/oauth2\/wordpress": { "patch": { - "summary": "Update project OAuth2 Gitlab", - "operationId": "projectUpdateOAuth2Gitlab", + "summary": "Update project OAuth2 WordPress", + "operationId": "projectUpdateOAuth2WordPress", "tags": [ "project" ], - "description": "Update the project OAuth2 Gitlab configuration.", + "description": "Update the project OAuth2 WordPress configuration.", "responses": { "200": { - "description": "OAuth2Gitlab", + "description": "OAuth2WordPress", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/oAuth2Gitlab" + "$ref": "#\/components\/schemas\/oAuth2WordPress" } } } @@ -59535,18 +60270,15 @@ }, "deprecated": false, "x-appwrite": { - "method": "updateOAuth2Gitlab", + "method": "updateOAuth2WordPress", "group": "oauth2", "cookies": false, "type": "", - "demo": "project\/update-o-auth-2-gitlab.md", + "demo": "project\/update-o-auth-2-word-press.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": [ - "oauth2.write", - "project.oauth2.write" - ], + "scope": "project.oauth2.write", "platforms": [ "console", "server" @@ -59569,23 +60301,16 @@ "schema": { "type": "object", "properties": { - "applicationId": { - "type": "string", - "description": "'Application ID' of Gitlab OAuth2 app. For example: d41ffe0000000000000000000000000000000000000000000000000000d5e252", - "x-example": "<APPLICATION_ID>", - "x-nullable": true - }, - "secret": { + "clientId": { "type": "string", - "description": "'Secret' of Gitlab OAuth2 app. For example: gloas-838cfa0000000000000000000000000000000000000000000000000000ecbb38", - "x-example": "<SECRET>", + "description": "'Client ID' of WordPress OAuth2 app. For example: 130005", + "x-example": "<CLIENT_ID>", "x-nullable": true }, - "endpoint": { + "clientSecret": { "type": "string", - "description": "Endpoint URL of self-hosted GitLab instance. For example: https:\/\/gitlab.com", - "x-example": "https:\/\/example.com", - "format": "url", + "description": "'Client Secret' of WordPress OAuth2 app. For example: PlBfJS0000000000000000000000000000000000000000000000000000EdUZJk", + "x-example": "<CLIENT_SECRET>", "x-nullable": true }, "enabled": { @@ -59601,21 +60326,21 @@ } } }, - "\/project\/oauth2\/google": { + "\/project\/oauth2\/x": { "patch": { - "summary": "Update project OAuth2 Google", - "operationId": "projectUpdateOAuth2Google", + "summary": "Update project OAuth2 X", + "operationId": "projectUpdateOAuth2X", "tags": [ "project" ], - "description": "Update the project OAuth2 Google configuration.", + "description": "Update the project OAuth2 X configuration.", "responses": { "200": { - "description": "OAuth2Google", + "description": "OAuth2X", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/oAuth2Google" + "$ref": "#\/components\/schemas\/oAuth2X" } } } @@ -59623,18 +60348,15 @@ }, "deprecated": false, "x-appwrite": { - "method": "updateOAuth2Google", + "method": "updateOAuth2X", "group": "oauth2", "cookies": false, "type": "", - "demo": "project\/update-o-auth-2-google.md", + "demo": "project\/update-o-auth-2x.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": [ - "oauth2.write", - "project.oauth2.write" - ], + "scope": "project.oauth2.write", "platforms": [ "console", "server" @@ -59657,36 +60379,16 @@ "schema": { "type": "object", "properties": { - "clientId": { + "customerKey": { "type": "string", - "description": "'Client ID' of Google OAuth2 app. For example: 120000000095-92ifjb00000000000000000000g7ijfb.apps.googleusercontent.com", - "x-example": "<CLIENT_ID>", + "description": "'Customer Key' of X OAuth2 app. For example: slzZV0000000000000NFLaWT", + "x-example": "<CUSTOMER_KEY>", "x-nullable": true }, - "clientSecret": { + "secretKey": { "type": "string", - "description": "'Client Secret' of Google OAuth2 app. For example: GOCSPX-2k8gsR0000000000000000VNahJj", - "x-example": "<CLIENT_SECRET>", - "x-nullable": true - }, - "prompt": { - "type": "array", - "description": "Array of Google OAuth2 prompt values. If \"none\" is included, it must be the only element. \"none\" means: don't display any authentication or consent screens. Must not be specified with other values. \"consent\" means: prompt the user for consent. \"select_account\" means: prompt the user to select an account.", - "x-example": null, - "items": { - "type": "string", - "enum": [ - "none", - "consent", - "select_account" - ], - "x-enum-name": "ProjectOAuth2GooglePrompt", - "x-enum-keys": [ - "none", - "consent", - "select_account" - ] - }, + "description": "'Secret Key' of X OAuth2 app. For example: tkEPkp00000000000000000000000000000000000000FTxbI9", + "x-example": "<SECRET_KEY>", "x-nullable": true }, "enabled": { @@ -59702,21 +60404,21 @@ } } }, - "\/project\/oauth2\/keycloak": { + "\/project\/oauth2\/yahoo": { "patch": { - "summary": "Update project OAuth2 Keycloak", - "operationId": "projectUpdateOAuth2Keycloak", + "summary": "Update project OAuth2 Yahoo", + "operationId": "projectUpdateOAuth2Yahoo", "tags": [ "project" ], - "description": "Update the project OAuth2 Keycloak configuration.", + "description": "Update the project OAuth2 Yahoo configuration.", "responses": { "200": { - "description": "OAuth2Keycloak", + "description": "OAuth2Yahoo", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/oAuth2Keycloak" + "$ref": "#\/components\/schemas\/oAuth2Yahoo" } } } @@ -59724,18 +60426,15 @@ }, "deprecated": false, "x-appwrite": { - "method": "updateOAuth2Keycloak", + "method": "updateOAuth2Yahoo", "group": "oauth2", "cookies": false, "type": "", - "demo": "project\/update-o-auth-2-keycloak.md", + "demo": "project\/update-o-auth-2-yahoo.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": [ - "oauth2.write", - "project.oauth2.write" - ], + "scope": "project.oauth2.write", "platforms": [ "console", "server" @@ -59760,28 +60459,16 @@ "properties": { "clientId": { "type": "string", - "description": "'Client ID' of Keycloak OAuth2 app. For example: appwrite-o0000000st-app", + "description": "'Client ID, also known as Customer Key' of Yahoo OAuth2 app. For example: dj0yJm000000000000000000000000000000000000000000000000000000000000000000000000000000000000Z4PWRm", "x-example": "<CLIENT_ID>", "x-nullable": true }, "clientSecret": { "type": "string", - "description": "'Client Secret' of Keycloak OAuth2 app. For example: jdjrJd00000000000000000000HUsaZO", + "description": "'Client Secret, also known as Customer Secret' of Yahoo OAuth2 app. For example: cf978f0000000000000000000000000000c5e2e9", "x-example": "<CLIENT_SECRET>", "x-nullable": true }, - "endpoint": { - "type": "string", - "description": "Domain of Keycloak instance. For example: keycloak.example.com", - "x-example": "<ENDPOINT>", - "x-nullable": true - }, - "realmName": { - "type": "string", - "description": "Keycloak realm name. For example: appwrite-realm", - "x-example": "<REALM_NAME>", - "x-nullable": true - }, "enabled": { "type": "boolean", "description": "OAuth2 sign-in method status. Set to true to enable new session creation. Setting to true will trigger end-to-end credentials validation, and will throw if the credentials are invalid.", @@ -59795,21 +60482,21 @@ } } }, - "\/project\/oauth2\/kick": { + "\/project\/oauth2\/yandex": { "patch": { - "summary": "Update project OAuth2 Kick", - "operationId": "projectUpdateOAuth2Kick", + "summary": "Update project OAuth2 Yandex", + "operationId": "projectUpdateOAuth2Yandex", "tags": [ "project" ], - "description": "Update the project OAuth2 Kick configuration.", + "description": "Update the project OAuth2 Yandex configuration.", "responses": { "200": { - "description": "OAuth2Kick", + "description": "OAuth2Yandex", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/oAuth2Kick" + "$ref": "#\/components\/schemas\/oAuth2Yandex" } } } @@ -59817,18 +60504,15 @@ }, "deprecated": false, "x-appwrite": { - "method": "updateOAuth2Kick", + "method": "updateOAuth2Yandex", "group": "oauth2", "cookies": false, "type": "", - "demo": "project\/update-o-auth-2-kick.md", + "demo": "project\/update-o-auth-2-yandex.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": [ - "oauth2.write", - "project.oauth2.write" - ], + "scope": "project.oauth2.write", "platforms": [ "console", "server" @@ -59853,13 +60537,13 @@ "properties": { "clientId": { "type": "string", - "description": "'Client ID' of Kick OAuth2 app. For example: 01KQ7C00000000000001MFHS32", + "description": "'Client ID' of Yandex OAuth2 app. For example: 6a8a6a0000000000000000000091483c", "x-example": "<CLIENT_ID>", "x-nullable": true }, "clientSecret": { "type": "string", - "description": "'Client Secret' of Kick OAuth2 app. For example: 34ac5600000000000000000000000000000000000000000000000000e830c8b", + "description": "'Client Secret' of Yandex OAuth2 app. For example: bbf98500000000000000000000c75a63", "x-example": "<CLIENT_SECRET>", "x-nullable": true }, @@ -59876,21 +60560,21 @@ } } }, - "\/project\/oauth2\/linkedin": { + "\/project\/oauth2\/zoho": { "patch": { - "summary": "Update project OAuth2 Linkedin", - "operationId": "projectUpdateOAuth2Linkedin", + "summary": "Update project OAuth2 Zoho", + "operationId": "projectUpdateOAuth2Zoho", "tags": [ "project" ], - "description": "Update the project OAuth2 Linkedin configuration.", + "description": "Update the project OAuth2 Zoho configuration.", "responses": { "200": { - "description": "OAuth2Linkedin", + "description": "OAuth2Zoho", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/oAuth2Linkedin" + "$ref": "#\/components\/schemas\/oAuth2Zoho" } } } @@ -59898,18 +60582,15 @@ }, "deprecated": false, "x-appwrite": { - "method": "updateOAuth2Linkedin", + "method": "updateOAuth2Zoho", "group": "oauth2", "cookies": false, "type": "", - "demo": "project\/update-o-auth-2-linkedin.md", + "demo": "project\/update-o-auth-2-zoho.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": [ - "oauth2.write", - "project.oauth2.write" - ], + "scope": "project.oauth2.write", "platforms": [ "console", "server" @@ -59934,14 +60615,14 @@ "properties": { "clientId": { "type": "string", - "description": "'Client ID' of Linkedin OAuth2 app. For example: 770000000000dv", + "description": "'Client ID' of Zoho OAuth2 app. For example: 1000.83C178000000000000000000RPNX0B", "x-example": "<CLIENT_ID>", "x-nullable": true }, - "primaryClientSecret": { + "clientSecret": { "type": "string", - "description": "'Primary Client Secret or Secondary Client Secret' of Linkedin OAuth2 app. For example: WPL_AP1.2Bf0000000000000.\/HtlYw==", - "x-example": "<PRIMARY_CLIENT_SECRET>", + "description": "'Client Secret' of Zoho OAuth2 app. For example: fb5cac000000000000000000000000000000a68f6e", + "x-example": "<CLIENT_SECRET>", "x-nullable": true }, "enabled": { @@ -59957,21 +60638,21 @@ } } }, - "\/project\/oauth2\/microsoft": { + "\/project\/oauth2\/zoom": { "patch": { - "summary": "Update project OAuth2 Microsoft", - "operationId": "projectUpdateOAuth2Microsoft", + "summary": "Update project OAuth2 Zoom", + "operationId": "projectUpdateOAuth2Zoom", "tags": [ "project" ], - "description": "Update the project OAuth2 Microsoft configuration.", + "description": "Update the project OAuth2 Zoom configuration.", "responses": { "200": { - "description": "OAuth2Microsoft", + "description": "OAuth2Zoom", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/oAuth2Microsoft" + "$ref": "#\/components\/schemas\/oAuth2Zoom" } } } @@ -59979,18 +60660,15 @@ }, "deprecated": false, "x-appwrite": { - "method": "updateOAuth2Microsoft", + "method": "updateOAuth2Zoom", "group": "oauth2", "cookies": false, "type": "", - "demo": "project\/update-o-auth-2-microsoft.md", + "demo": "project\/update-o-auth-2-zoom.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": [ - "oauth2.write", - "project.oauth2.write" - ], + "scope": "project.oauth2.write", "platforms": [ "console", "server" @@ -60013,22 +60691,16 @@ "schema": { "type": "object", "properties": { - "applicationId": { - "type": "string", - "description": "'Entra ID Application ID, also known as Client ID' of Microsoft OAuth2 app. For example: 00001111-aaaa-2222-bbbb-3333cccc4444", - "x-example": "<APPLICATION_ID>", - "x-nullable": true - }, - "applicationSecret": { + "clientId": { "type": "string", - "description": "'Entra ID Application Secret, also known as Client Secret' of Microsoft OAuth2 app. For example: A1bC2dE3fH4iJ5kL6mN7oP8qR9sT0u", - "x-example": "<APPLICATION_SECRET>", + "description": "'Client ID' of Zoom OAuth2 app. For example: QMAC00000000000000w0AQ", + "x-example": "<CLIENT_ID>", "x-nullable": true }, - "tenant": { + "clientSecret": { "type": "string", - "description": "Microsoft Entra ID tenant identifier. Use 'common', 'organizations', 'consumers' or a specific tenant ID. For example: common", - "x-example": "<TENANT>", + "description": "'Client Secret' of Zoom OAuth2 app. For example: GAWsG4000000000000000000007U01ON", + "x-example": "<CLIENT_SECRET>", "x-nullable": true }, "enabled": { @@ -60044,21 +60716,189 @@ } } }, - "\/project\/oauth2\/notion": { - "patch": { - "summary": "Update project OAuth2 Notion", - "operationId": "projectUpdateOAuth2Notion", + "\/project\/oauth2\/{providerId}": { + "get": { + "summary": "Get project OAuth2 provider", + "operationId": "projectGetOAuth2Provider", "tags": [ "project" ], - "description": "Update the project OAuth2 Notion configuration.", + "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": "OAuth2Notion", + "description": "OAuth2GitHub, or OAuth2Discord, or OAuth2Figma, or OAuth2Dropbox, or OAuth2Dailymotion, or OAuth2Bitbucket, or OAuth2Bitly, or OAuth2Box, or OAuth2Autodesk, or OAuth2Google, or OAuth2Zoom, or OAuth2Zoho, or OAuth2Yandex, or OAuth2X, or OAuth2WordPress, or OAuth2Twitch, or OAuth2Stripe, or OAuth2Spotify, or OAuth2Slack, or OAuth2Podio, or OAuth2Notion, or OAuth2Salesforce, or OAuth2Yahoo, or OAuth2Linkedin, or OAuth2Disqus, or OAuth2Amazon, or OAuth2Etsy, or OAuth2Facebook, or OAuth2Tradeshift, or OAuth2Paypal, or OAuth2Gitlab, or OAuth2Authentik, or OAuth2Auth0, or OAuth2FusionAuth, or OAuth2Keycloak, or OAuth2Oidc, or OAuth2Apple, or OAuth2Okta, or OAuth2Kick, or OAuth2Microsoft", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/oAuth2Notion" + "oneOf": [ + { + "$ref": "#\/components\/schemas\/oAuth2Github" + }, + { + "$ref": "#\/components\/schemas\/oAuth2Discord" + }, + { + "$ref": "#\/components\/schemas\/oAuth2Figma" + }, + { + "$ref": "#\/components\/schemas\/oAuth2Dropbox" + }, + { + "$ref": "#\/components\/schemas\/oAuth2Dailymotion" + }, + { + "$ref": "#\/components\/schemas\/oAuth2Bitbucket" + }, + { + "$ref": "#\/components\/schemas\/oAuth2Bitly" + }, + { + "$ref": "#\/components\/schemas\/oAuth2Box" + }, + { + "$ref": "#\/components\/schemas\/oAuth2Autodesk" + }, + { + "$ref": "#\/components\/schemas\/oAuth2Google" + }, + { + "$ref": "#\/components\/schemas\/oAuth2Zoom" + }, + { + "$ref": "#\/components\/schemas\/oAuth2Zoho" + }, + { + "$ref": "#\/components\/schemas\/oAuth2Yandex" + }, + { + "$ref": "#\/components\/schemas\/oAuth2X" + }, + { + "$ref": "#\/components\/schemas\/oAuth2WordPress" + }, + { + "$ref": "#\/components\/schemas\/oAuth2Twitch" + }, + { + "$ref": "#\/components\/schemas\/oAuth2Stripe" + }, + { + "$ref": "#\/components\/schemas\/oAuth2Spotify" + }, + { + "$ref": "#\/components\/schemas\/oAuth2Slack" + }, + { + "$ref": "#\/components\/schemas\/oAuth2Podio" + }, + { + "$ref": "#\/components\/schemas\/oAuth2Notion" + }, + { + "$ref": "#\/components\/schemas\/oAuth2Salesforce" + }, + { + "$ref": "#\/components\/schemas\/oAuth2Yahoo" + }, + { + "$ref": "#\/components\/schemas\/oAuth2Linkedin" + }, + { + "$ref": "#\/components\/schemas\/oAuth2Disqus" + }, + { + "$ref": "#\/components\/schemas\/oAuth2Amazon" + }, + { + "$ref": "#\/components\/schemas\/oAuth2Etsy" + }, + { + "$ref": "#\/components\/schemas\/oAuth2Facebook" + }, + { + "$ref": "#\/components\/schemas\/oAuth2Tradeshift" + }, + { + "$ref": "#\/components\/schemas\/oAuth2Paypal" + }, + { + "$ref": "#\/components\/schemas\/oAuth2Gitlab" + }, + { + "$ref": "#\/components\/schemas\/oAuth2Authentik" + }, + { + "$ref": "#\/components\/schemas\/oAuth2Auth0" + }, + { + "$ref": "#\/components\/schemas\/oAuth2FusionAuth" + }, + { + "$ref": "#\/components\/schemas\/oAuth2Keycloak" + }, + { + "$ref": "#\/components\/schemas\/oAuth2Oidc" + }, + { + "$ref": "#\/components\/schemas\/oAuth2Apple" + }, + { + "$ref": "#\/components\/schemas\/oAuth2Okta" + }, + { + "$ref": "#\/components\/schemas\/oAuth2Kick" + }, + { + "$ref": "#\/components\/schemas\/oAuth2Microsoft" + } + ], + "discriminator": { + "propertyName": "$id", + "mapping": { + "github": "#\/components\/schemas\/oAuth2Github", + "discord": "#\/components\/schemas\/oAuth2Discord", + "figma": "#\/components\/schemas\/oAuth2Figma", + "dropbox": "#\/components\/schemas\/oAuth2Dropbox", + "dailymotion": "#\/components\/schemas\/oAuth2Dailymotion", + "bitbucket": "#\/components\/schemas\/oAuth2Bitbucket", + "bitly": "#\/components\/schemas\/oAuth2Bitly", + "box": "#\/components\/schemas\/oAuth2Box", + "autodesk": "#\/components\/schemas\/oAuth2Autodesk", + "google": "#\/components\/schemas\/oAuth2Google", + "zoom": "#\/components\/schemas\/oAuth2Zoom", + "zoho": "#\/components\/schemas\/oAuth2Zoho", + "yandex": "#\/components\/schemas\/oAuth2Yandex", + "x": "#\/components\/schemas\/oAuth2X", + "wordpress": "#\/components\/schemas\/oAuth2WordPress", + "twitch": "#\/components\/schemas\/oAuth2Twitch", + "stripe": "#\/components\/schemas\/oAuth2Stripe", + "spotify": "#\/components\/schemas\/oAuth2Spotify", + "slack": "#\/components\/schemas\/oAuth2Slack", + "podio": "#\/components\/schemas\/oAuth2Podio", + "notion": "#\/components\/schemas\/oAuth2Notion", + "salesforce": "#\/components\/schemas\/oAuth2Salesforce", + "yahoo": "#\/components\/schemas\/oAuth2Yahoo", + "linkedin": "#\/components\/schemas\/oAuth2Linkedin", + "disqus": "#\/components\/schemas\/oAuth2Disqus", + "amazon": "#\/components\/schemas\/oAuth2Amazon", + "etsy": "#\/components\/schemas\/oAuth2Etsy", + "facebook": "#\/components\/schemas\/oAuth2Facebook", + "tradeshift": "#\/components\/schemas\/oAuth2Tradeshift", + "tradeshiftBox": "#\/components\/schemas\/oAuth2Tradeshift", + "paypal": "#\/components\/schemas\/oAuth2Paypal", + "paypalSandbox": "#\/components\/schemas\/oAuth2Paypal", + "gitlab": "#\/components\/schemas\/oAuth2Gitlab", + "authentik": "#\/components\/schemas\/oAuth2Authentik", + "auth0": "#\/components\/schemas\/oAuth2Auth0", + "fusionauth": "#\/components\/schemas\/oAuth2FusionAuth", + "keycloak": "#\/components\/schemas\/oAuth2Keycloak", + "oidc": "#\/components\/schemas\/oAuth2Oidc", + "apple": "#\/components\/schemas\/oAuth2Apple", + "okta": "#\/components\/schemas\/oAuth2Okta", + "kick": "#\/components\/schemas\/oAuth2Kick", + "microsoft": "#\/components\/schemas\/oAuth2Microsoft" + } + } } } } @@ -60066,18 +60906,15 @@ }, "deprecated": false, "x-appwrite": { - "method": "updateOAuth2Notion", + "method": "getOAuth2Provider", "group": "oauth2", "cookies": false, "type": "", - "demo": "project\/update-o-auth-2-notion.md", + "demo": "project\/get-o-auth-2-provider.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": [ - "oauth2.write", - "project.oauth2.write" - ], + "scope": "project.oauth2.read", "platforms": [ "console", "server" @@ -60094,52 +60931,203 @@ "Key": [] } ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "oauthClientId": { - "type": "string", - "description": "'OAuth Client ID' of Notion OAuth2 app. For example: 341d8700-0000-0000-0000-000000446ee3", - "x-example": "<OAUTH_CLIENT_ID>", - "x-nullable": true - }, - "oauthClientSecret": { - "type": "string", - "description": "'OAuth Client Secret' of Notion OAuth2 app. For example: secret_dLUr4b000000000000000000000000000000lFHAa9", - "x-example": "<OAUTH_CLIENT_SECRET>", - "x-nullable": true - }, - "enabled": { - "type": "boolean", - "description": "OAuth2 sign-in method status. Set to true to enable new session creation. Setting to true will trigger end-to-end credentials validation, and will throw if the credentials are invalid.", - "x-example": false, - "x-nullable": true - } + "parameters": [ + { + "name": "providerId", + "description": "OAuth2 provider key. For example: github, google, apple.", + "required": true, + "schema": { + "type": "string", + "x-example": "amazon", + "enum": [ + "amazon", + "apple", + "appwrite", + "auth0", + "authentik", + "autodesk", + "bitbucket", + "bitly", + "box", + "dailymotion", + "discord", + "disqus", + "dropbox", + "etsy", + "facebook", + "figma", + "fusionauth", + "github", + "gitlab", + "google", + "keycloak", + "kick", + "linkedin", + "microsoft", + "notion", + "oidc", + "okta", + "paypal", + "paypalSandbox", + "podio", + "salesforce", + "slack", + "spotify", + "stripe", + "tradeshift", + "tradeshiftBox", + "twitch", + "wordpress", + "x", + "yahoo", + "yammer", + "yandex", + "zoho", + "zoom" + ], + "x-enum-name": "ProjectOAuthProviderId", + "x-enum-keys": [ + "amazon", + "apple", + "appwrite", + "auth0", + "authentik", + "autodesk", + "bitbucket", + "bitly", + "box", + "dailymotion", + "discord", + "disqus", + "dropbox", + "etsy", + "facebook", + "figma", + "fusionauth", + "github", + "gitlab", + "google", + "keycloak", + "kick", + "linkedin", + "microsoft", + "notion", + "oidc", + "okta", + "paypal", + "paypalSandbox", + "podio", + "salesforce", + "slack", + "spotify", + "stripe", + "tradeshift", + "tradeshiftBox", + "twitch", + "wordpress", + "x", + "yahoo", + "yammer", + "yandex", + "zoho", + "zoom" + ] + }, + "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": { + "method": "listPlatforms", + "group": "platforms", + "cookies": false, + "type": "", + "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", + "x-example": false, + "default": true + }, + "in": "query" + } + ] } }, - "\/project\/oauth2\/oidc": { - "patch": { - "summary": "Update project OAuth2 Oidc", - "operationId": "projectUpdateOAuth2Oidc", + "\/project\/platforms\/android": { + "post": { + "summary": "Create project Android platform", + "operationId": "projectCreateAndroidPlatform", "tags": [ "project" ], - "description": "Update the project OAuth2 Oidc configuration.", + "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": { - "200": { - "description": "OAuth2Oidc", + "201": { + "description": "Platform Android", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/oAuth2Oidc" + "$ref": "#\/components\/schemas\/platformAndroid" } } } @@ -60147,18 +61135,15 @@ }, "deprecated": false, "x-appwrite": { - "method": "updateOAuth2Oidc", - "group": "oauth2", + "method": "createAndroidPlatform", + "group": "platforms", "cookies": false, "type": "", - "demo": "project\/update-o-auth-2-oidc.md", + "demo": "project\/create-android-platform.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": [ - "oauth2.write", - "project.oauth2.write" - ], + "scope": "platforms.write", "platforms": [ "console", "server" @@ -60181,103 +61166,51 @@ "schema": { "type": "object", "properties": { - "clientId": { - "type": "string", - "description": "'Client ID' of Oidc OAuth2 app. For example: qibI2x0000000000000000000000000006L2YFoG", - "x-example": "<CLIENT_ID>", - "x-nullable": true - }, - "clientSecret": { - "type": "string", - "description": "'Client Secret' of Oidc OAuth2 app. For example: Ah68ed000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003qpcHV", - "x-example": "<CLIENT_SECRET>", - "x-nullable": true - }, - "wellKnownURL": { - "type": "string", - "description": "OpenID Connect well-known configuration URL. When provided, authorization, token, and user info endpoints can be discovered automatically. For example: https:\/\/myoauth.com\/.well-known\/openid-configuration", - "x-example": "https:\/\/example.com", - "format": "url", - "x-nullable": true - }, - "authorizationURL": { + "platformId": { "type": "string", - "description": "OpenID Connect authorization endpoint URL. Required when wellKnownURL is not provided. For example: https:\/\/myoauth.com\/oauth2\/authorize", - "x-example": "https:\/\/example.com", - "format": "url", - "x-nullable": true + "description": "Platform ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.", + "x-example": "<PLATFORM_ID>", + "x-appwrite": { + "idGenerator": "ID.unique" + } }, - "tokenURL": { + "name": { "type": "string", - "description": "OpenID Connect token endpoint URL. Required when wellKnownURL is not provided. For example: https:\/\/myoauth.com\/oauth2\/token", - "x-example": "https:\/\/example.com", - "format": "url", - "x-nullable": true + "description": "Platform name. Max length: 128 chars.", + "x-example": "<NAME>" }, - "userInfoURL": { + "applicationId": { "type": "string", - "description": "OpenID Connect user info endpoint URL. Required when wellKnownURL is not provided. For example: https:\/\/myoauth.com\/oauth2\/userinfo", - "x-example": "https:\/\/example.com", - "format": "url", - "x-nullable": true - }, - "prompt": { - "type": "array", - "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.", - "x-example": null, - "items": { - "type": "string", - "enum": [ - "none", - "login", - "consent", - "select_account" - ], - "x-enum-name": "ProjectOAuth2OidcPrompt", - "x-enum-keys": [ - "none", - "login", - "consent", - "select_account" - ] - }, - "x-nullable": true - }, - "maxAge": { - "type": "integer", - "description": "Maximum authentication age in seconds. When set, the user must have authenticated within this many seconds, otherwise they are prompted to re-authenticate.", - "x-example": 0, - "format": "int32", - "x-nullable": true - }, - "enabled": { - "type": "boolean", - "description": "OAuth2 sign-in method status. Set to true to enable new session creation. Setting to true will trigger end-to-end credentials validation, and will throw if the credentials are invalid.", - "x-example": false, - "x-nullable": true + "description": "Android application ID. Max length: 256 chars.", + "x-example": "<APPLICATION_ID>" } - } + }, + "required": [ + "platformId", + "name", + "applicationId" + ] } } } } } }, - "\/project\/oauth2\/okta": { - "patch": { - "summary": "Update project OAuth2 Okta", - "operationId": "projectUpdateOAuth2Okta", + "\/project\/platforms\/android\/{platformId}": { + "put": { + "summary": "Update project Android platform", + "operationId": "projectUpdateAndroidPlatform", "tags": [ "project" ], - "description": "Update the project OAuth2 Okta configuration.", + "description": "Update an Android platform by its unique ID. Use this endpoint to update the platform's name or application ID.", "responses": { "200": { - "description": "OAuth2Okta", + "description": "Platform Android", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/oAuth2Okta" + "$ref": "#\/components\/schemas\/platformAndroid" } } } @@ -60285,18 +61218,15 @@ }, "deprecated": false, "x-appwrite": { - "method": "updateOAuth2Okta", - "group": "oauth2", + "method": "updateAndroidPlatform", + "group": "platforms", "cookies": false, "type": "", - "demo": "project\/update-o-auth-2-okta.md", + "demo": "project\/update-android-platform.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": [ - "oauth2.write", - "project.oauth2.write" - ], + "scope": "platforms.write", "platforms": [ "console", "server" @@ -60313,64 +61243,60 @@ "Key": [] } ], + "parameters": [ + { + "name": "platformId", + "description": "Platform ID.", + "required": true, + "schema": { + "type": "string", + "x-example": "<PLATFORM_ID>" + }, + "in": "path" + } + ], "requestBody": { "content": { "application\/json": { "schema": { "type": "object", "properties": { - "clientId": { - "type": "string", - "description": "'Client ID' of Okta OAuth2 app. For example: 0oa00000000000000698", - "x-example": "<CLIENT_ID>", - "x-nullable": true - }, - "clientSecret": { - "type": "string", - "description": "'Client Secret' of Okta OAuth2 app. For example: Kiq0000000000000000000000000000000000000-00000000000H2L5-3SJ-vRV", - "x-example": "<CLIENT_SECRET>", - "x-nullable": true - }, - "domain": { + "name": { "type": "string", - "description": "Okta company domain. Required when enabling the provider. For example: trial-6400025.okta.com. Example of wrong value: trial-6400025-admin.okta.com, or https:\/\/trial-6400025.okta.com\/", - "x-example": null, - "x-nullable": true + "description": "Platform name. Max length: 128 chars.", + "x-example": "<NAME>" }, - "authorizationServerId": { + "applicationId": { "type": "string", - "description": "Custom Authorization Servers. Optional, can be left empty or unconfigured. For example: aus000000000000000h7z", - "x-example": "<AUTHORIZATION_SERVER_ID>", - "x-nullable": true - }, - "enabled": { - "type": "boolean", - "description": "OAuth2 sign-in method status. Set to true to enable new session creation. Setting to true will trigger end-to-end credentials validation, and will throw if the credentials are invalid.", - "x-example": false, - "x-nullable": true + "description": "Android application ID. Max length: 256 chars.", + "x-example": "<APPLICATION_ID>" } - } + }, + "required": [ + "name", + "applicationId" + ] } } } } } }, - "\/project\/oauth2\/paypal": { - "patch": { - "summary": "Update project OAuth2 Paypal", - "operationId": "projectUpdateOAuth2Paypal", + "\/project\/platforms\/apple": { + "post": { + "summary": "Create project Apple platform", + "operationId": "projectCreateApplePlatform", "tags": [ "project" ], - "description": "Update the project OAuth2 Paypal configuration.", + "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": { - "200": { - "description": "OAuth2Paypal", + "201": { + "description": "Platform Apple", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/oAuth2Paypal" + "$ref": "#\/components\/schemas\/platformApple" } } } @@ -60378,18 +61304,15 @@ }, "deprecated": false, "x-appwrite": { - "method": "updateOAuth2Paypal", - "group": "oauth2", + "method": "createApplePlatform", + "group": "platforms", "cookies": false, "type": "", - "demo": "project\/update-o-auth-2-paypal.md", + "demo": "project\/create-apple-platform.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": [ - "oauth2.write", - "project.oauth2.write" - ], + "scope": "platforms.write", "platforms": [ "console", "server" @@ -60412,46 +61335,51 @@ "schema": { "type": "object", "properties": { - "clientId": { + "platformId": { "type": "string", - "description": "'Client ID' of Paypal OAuth2 app. For example: AdhIEG7-000000000000-0000000000000000000000000000000-0000000000000000000000-2pyB", - "x-example": "<CLIENT_ID>", - "x-nullable": true + "description": "Platform ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.", + "x-example": "<PLATFORM_ID>", + "x-appwrite": { + "idGenerator": "ID.unique" + } }, - "secretKey": { + "name": { "type": "string", - "description": "'Secret Key 1 or Secret Key 2' of Paypal OAuth2 app. For example: EH8KCXtew--000000000000000000000000000000000000000_C-1_5UP_000000000000000CB7KDp", - "x-example": "<SECRET_KEY>", - "x-nullable": true + "description": "Platform name. Max length: 128 chars.", + "x-example": "<NAME>" }, - "enabled": { - "type": "boolean", - "description": "OAuth2 sign-in method status. Set to true to enable new session creation. Setting to true will trigger end-to-end credentials validation, and will throw if the credentials are invalid.", - "x-example": false, - "x-nullable": true + "bundleIdentifier": { + "type": "string", + "description": "Apple bundle identifier. Max length: 256 chars.", + "x-example": "<BUNDLE_IDENTIFIER>" } - } + }, + "required": [ + "platformId", + "name", + "bundleIdentifier" + ] } } } } } }, - "\/project\/oauth2\/paypalSandbox": { - "patch": { - "summary": "Update project OAuth2 PaypalSandbox", - "operationId": "projectUpdateOAuth2PaypalSandbox", + "\/project\/platforms\/apple\/{platformId}": { + "put": { + "summary": "Update project Apple platform", + "operationId": "projectUpdateApplePlatform", "tags": [ "project" ], - "description": "Update the project OAuth2 PaypalSandbox configuration.", + "description": "Update an Apple platform by its unique ID. Use this endpoint to update the platform's name or bundle identifier.", "responses": { "200": { - "description": "OAuth2Paypal", + "description": "Platform Apple", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/oAuth2Paypal" + "$ref": "#\/components\/schemas\/platformApple" } } } @@ -60459,18 +61387,15 @@ }, "deprecated": false, "x-appwrite": { - "method": "updateOAuth2PaypalSandbox", - "group": "oauth2", + "method": "updateApplePlatform", + "group": "platforms", "cookies": false, "type": "", - "demo": "project\/update-o-auth-2-paypal-sandbox.md", + "demo": "project\/update-apple-platform.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": [ - "oauth2.write", - "project.oauth2.write" - ], + "scope": "platforms.write", "platforms": [ "console", "server" @@ -60487,52 +61412,60 @@ "Key": [] } ], + "parameters": [ + { + "name": "platformId", + "description": "Platform ID.", + "required": true, + "schema": { + "type": "string", + "x-example": "<PLATFORM_ID>" + }, + "in": "path" + } + ], "requestBody": { "content": { "application\/json": { "schema": { "type": "object", "properties": { - "clientId": { + "name": { "type": "string", - "description": "'Client ID' of PaypalSandbox OAuth2 app. For example: AdhIEG7-000000000000-0000000000000000000000000000000-0000000000000000000000-2pyB", - "x-example": "<CLIENT_ID>", - "x-nullable": true + "description": "Platform name. Max length: 128 chars.", + "x-example": "<NAME>" }, - "secretKey": { + "bundleIdentifier": { "type": "string", - "description": "'Secret Key 1 or Secret Key 2' of PaypalSandbox OAuth2 app. For example: EH8KCXtew--000000000000000000000000000000000000000_C-1_5UP_000000000000000CB7KDp", - "x-example": "<SECRET_KEY>", - "x-nullable": true - }, - "enabled": { - "type": "boolean", - "description": "OAuth2 sign-in method status. Set to true to enable new session creation. Setting to true will trigger end-to-end credentials validation, and will throw if the credentials are invalid.", - "x-example": false, - "x-nullable": true + "description": "Apple bundle identifier. Max length: 256 chars.", + "x-example": "<BUNDLE_IDENTIFIER>" } - } + }, + "required": [ + "name", + "bundleIdentifier" + ] } } } } } }, - "\/project\/oauth2\/podio": { - "patch": { - "summary": "Update project OAuth2 Podio", - "operationId": "projectUpdateOAuth2Podio", + "\/project\/platforms\/linux": { + "post": { + "summary": "Create project Linux platform", + "operationId": "projectCreateLinuxPlatform", "tags": [ "project" ], - "description": "Update the project OAuth2 Podio configuration.", + "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": { - "200": { - "description": "OAuth2Podio", + "201": { + "description": "Platform Linux", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/oAuth2Podio" + "$ref": "#\/components\/schemas\/platformLinux" } } } @@ -60540,18 +61473,15 @@ }, "deprecated": false, "x-appwrite": { - "method": "updateOAuth2Podio", - "group": "oauth2", + "method": "createLinuxPlatform", + "group": "platforms", "cookies": false, "type": "", - "demo": "project\/update-o-auth-2-podio.md", + "demo": "project\/create-linux-platform.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": [ - "oauth2.write", - "project.oauth2.write" - ], + "scope": "platforms.write", "platforms": [ "console", "server" @@ -60574,46 +61504,51 @@ "schema": { "type": "object", "properties": { - "clientId": { + "platformId": { "type": "string", - "description": "'Client ID' of Podio OAuth2 app. For example: appwrite-o0000000st-app", - "x-example": "<CLIENT_ID>", - "x-nullable": true + "description": "Platform ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.", + "x-example": "<PLATFORM_ID>", + "x-appwrite": { + "idGenerator": "ID.unique" + } }, - "clientSecret": { + "name": { "type": "string", - "description": "'Client Secret' of Podio OAuth2 app. For example: Rn247T0000000000000000000000000000000000000000000000000000W2zWTN", - "x-example": "<CLIENT_SECRET>", - "x-nullable": true + "description": "Platform name. Max length: 128 chars.", + "x-example": "<NAME>" }, - "enabled": { - "type": "boolean", - "description": "OAuth2 sign-in method status. Set to true to enable new session creation. Setting to true will trigger end-to-end credentials validation, and will throw if the credentials are invalid.", - "x-example": false, - "x-nullable": true + "packageName": { + "type": "string", + "description": "Linux package name. Max length: 256 chars.", + "x-example": "<PACKAGE_NAME>" } - } + }, + "required": [ + "platformId", + "name", + "packageName" + ] } } } } } }, - "\/project\/oauth2\/salesforce": { - "patch": { - "summary": "Update project OAuth2 Salesforce", - "operationId": "projectUpdateOAuth2Salesforce", + "\/project\/platforms\/linux\/{platformId}": { + "put": { + "summary": "Update project Linux platform", + "operationId": "projectUpdateLinuxPlatform", "tags": [ "project" ], - "description": "Update the project OAuth2 Salesforce configuration.", + "description": "Update a Linux platform by its unique ID. Use this endpoint to update the platform's name or package name.", "responses": { "200": { - "description": "OAuth2Salesforce", + "description": "Platform Linux", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/oAuth2Salesforce" + "$ref": "#\/components\/schemas\/platformLinux" } } } @@ -60621,18 +61556,15 @@ }, "deprecated": false, "x-appwrite": { - "method": "updateOAuth2Salesforce", - "group": "oauth2", + "method": "updateLinuxPlatform", + "group": "platforms", "cookies": false, "type": "", - "demo": "project\/update-o-auth-2-salesforce.md", + "demo": "project\/update-linux-platform.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": [ - "oauth2.write", - "project.oauth2.write" - ], + "scope": "platforms.write", "platforms": [ "console", "server" @@ -60649,52 +61581,60 @@ "Key": [] } ], + "parameters": [ + { + "name": "platformId", + "description": "Platform ID.", + "required": true, + "schema": { + "type": "string", + "x-example": "<PLATFORM_ID>" + }, + "in": "path" + } + ], "requestBody": { "content": { "application\/json": { "schema": { "type": "object", "properties": { - "customerKey": { + "name": { "type": "string", - "description": "'Consumer Key' of Salesforce OAuth2 app. For example: 3MVG9I0000000000000000000000000000000000000000000000000000000000000000000000000C5Aejq", - "x-example": "<CUSTOMER_KEY>", - "x-nullable": true + "description": "Platform name. Max length: 128 chars.", + "x-example": "<NAME>" }, - "customerSecret": { + "packageName": { "type": "string", - "description": "'Consumer Secret' of Salesforce OAuth2 app. For example: 3w000000000000e2", - "x-example": "<CUSTOMER_SECRET>", - "x-nullable": true - }, - "enabled": { - "type": "boolean", - "description": "OAuth2 sign-in method status. Set to true to enable new session creation. Setting to true will trigger end-to-end credentials validation, and will throw if the credentials are invalid.", - "x-example": false, - "x-nullable": true + "description": "Linux package name. Max length: 256 chars.", + "x-example": "<PACKAGE_NAME>" } - } + }, + "required": [ + "name", + "packageName" + ] } } } } } }, - "\/project\/oauth2\/slack": { - "patch": { - "summary": "Update project OAuth2 Slack", - "operationId": "projectUpdateOAuth2Slack", + "\/project\/platforms\/web": { + "post": { + "summary": "Create project web platform", + "operationId": "projectCreateWebPlatform", "tags": [ "project" ], - "description": "Update the project OAuth2 Slack configuration.", + "description": "Create a new web platform for your project. Use this endpoint to register a new platform where your users will run your application which will interact with the Appwrite API.", "responses": { - "200": { - "description": "OAuth2Slack", + "201": { + "description": "Platform Web", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/oAuth2Slack" + "$ref": "#\/components\/schemas\/platformWeb" } } } @@ -60702,18 +61642,15 @@ }, "deprecated": false, "x-appwrite": { - "method": "updateOAuth2Slack", - "group": "oauth2", + "method": "createWebPlatform", + "group": "platforms", "cookies": false, "type": "", - "demo": "project\/update-o-auth-2-slack.md", + "demo": "project\/create-web-platform.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": [ - "oauth2.write", - "project.oauth2.write" - ], + "scope": "platforms.write", "platforms": [ "console", "server" @@ -60736,46 +61673,51 @@ "schema": { "type": "object", "properties": { - "clientId": { + "platformId": { "type": "string", - "description": "'Client ID' of Slack OAuth2 app. For example: 23000000089.15000000000023", - "x-example": "<CLIENT_ID>", - "x-nullable": true + "description": "Platform ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.", + "x-example": "<PLATFORM_ID>", + "x-appwrite": { + "idGenerator": "ID.unique" + } }, - "clientSecret": { + "name": { "type": "string", - "description": "'Client Secret' of Slack OAuth2 app. For example: 81656000000000000000000000f3d2fd", - "x-example": "<CLIENT_SECRET>", - "x-nullable": true + "description": "Platform name. Max length: 128 chars.", + "x-example": "<NAME>" }, - "enabled": { - "type": "boolean", - "description": "OAuth2 sign-in method status. Set to true to enable new session creation. Setting to true will trigger end-to-end credentials validation, and will throw if the credentials are invalid.", - "x-example": false, - "x-nullable": true + "hostname": { + "type": "string", + "description": "Platform web hostname. Max length: 256 chars.", + "x-example": "app.example.com" } - } + }, + "required": [ + "platformId", + "name", + "hostname" + ] } } } } } }, - "\/project\/oauth2\/spotify": { - "patch": { - "summary": "Update project OAuth2 Spotify", - "operationId": "projectUpdateOAuth2Spotify", + "\/project\/platforms\/web\/{platformId}": { + "put": { + "summary": "Update project web platform", + "operationId": "projectUpdateWebPlatform", "tags": [ "project" ], - "description": "Update the project OAuth2 Spotify configuration.", + "description": "Update a web platform by its unique ID. Use this endpoint to update the platform's name or hostname.", "responses": { "200": { - "description": "OAuth2Spotify", + "description": "Platform Web", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/oAuth2Spotify" + "$ref": "#\/components\/schemas\/platformWeb" } } } @@ -60783,18 +61725,15 @@ }, "deprecated": false, "x-appwrite": { - "method": "updateOAuth2Spotify", - "group": "oauth2", + "method": "updateWebPlatform", + "group": "platforms", "cookies": false, "type": "", - "demo": "project\/update-o-auth-2-spotify.md", + "demo": "project\/update-web-platform.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": [ - "oauth2.write", - "project.oauth2.write" - ], + "scope": "platforms.write", "platforms": [ "console", "server" @@ -60811,52 +61750,60 @@ "Key": [] } ], + "parameters": [ + { + "name": "platformId", + "description": "Platform ID.", + "required": true, + "schema": { + "type": "string", + "x-example": "<PLATFORM_ID>" + }, + "in": "path" + } + ], "requestBody": { "content": { "application\/json": { "schema": { "type": "object", "properties": { - "clientId": { + "name": { "type": "string", - "description": "'Client ID' of Spotify OAuth2 app. For example: 6ec271000000000000000000009beace", - "x-example": "<CLIENT_ID>", - "x-nullable": true + "description": "Platform name. Max length: 128 chars.", + "x-example": "<NAME>" }, - "clientSecret": { + "hostname": { "type": "string", - "description": "'Client Secret' of Spotify OAuth2 app. For example: db068a000000000000000000008b5b9f", - "x-example": "<CLIENT_SECRET>", - "x-nullable": true - }, - "enabled": { - "type": "boolean", - "description": "OAuth2 sign-in method status. Set to true to enable new session creation. Setting to true will trigger end-to-end credentials validation, and will throw if the credentials are invalid.", - "x-example": false, - "x-nullable": true + "description": "Platform web hostname. Max length: 256 chars.", + "x-example": "app.example.com" } - } + }, + "required": [ + "name", + "hostname" + ] } } } } } }, - "\/project\/oauth2\/stripe": { - "patch": { - "summary": "Update project OAuth2 Stripe", - "operationId": "projectUpdateOAuth2Stripe", + "\/project\/platforms\/windows": { + "post": { + "summary": "Create project Windows platform", + "operationId": "projectCreateWindowsPlatform", "tags": [ "project" ], - "description": "Update the project OAuth2 Stripe configuration.", + "description": "Create a new Windows platform for your project. Use this endpoint to register a new Windows platform where your users will run your application which will interact with the Appwrite API.", "responses": { - "200": { - "description": "OAuth2Stripe", + "201": { + "description": "Platform Windows", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/oAuth2Stripe" + "$ref": "#\/components\/schemas\/platformWindows" } } } @@ -60864,18 +61811,15 @@ }, "deprecated": false, "x-appwrite": { - "method": "updateOAuth2Stripe", - "group": "oauth2", + "method": "createWindowsPlatform", + "group": "platforms", "cookies": false, "type": "", - "demo": "project\/update-o-auth-2-stripe.md", + "demo": "project\/create-windows-platform.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": [ - "oauth2.write", - "project.oauth2.write" - ], + "scope": "platforms.write", "platforms": [ "console", "server" @@ -60898,46 +61842,51 @@ "schema": { "type": "object", "properties": { - "clientId": { + "platformId": { "type": "string", - "description": "'Client ID' of Stripe OAuth2 app. For example: ca_UKibXX0000000000000000000006byvR", - "x-example": "<CLIENT_ID>", - "x-nullable": true + "description": "Platform ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.", + "x-example": "<PLATFORM_ID>", + "x-appwrite": { + "idGenerator": "ID.unique" + } }, - "apiSecretKey": { + "name": { "type": "string", - "description": "'API Secret Key' of Stripe OAuth2 app. For example: sk_51SfOd000000000000000000000000000000000000000000000000000000000000000000000000000000000000000QGWYfp", - "x-example": "<API_SECRET_KEY>", - "x-nullable": true + "description": "Platform name. Max length: 128 chars.", + "x-example": "<NAME>" }, - "enabled": { - "type": "boolean", - "description": "OAuth2 sign-in method status. Set to true to enable new session creation. Setting to true will trigger end-to-end credentials validation, and will throw if the credentials are invalid.", - "x-example": false, - "x-nullable": true - } - } + "packageIdentifierName": { + "type": "string", + "description": "Windows package identifier name. Max length: 256 chars.", + "x-example": "<PACKAGE_IDENTIFIER_NAME>" + } + }, + "required": [ + "platformId", + "name", + "packageIdentifierName" + ] } } } } } }, - "\/project\/oauth2\/tradeshift": { - "patch": { - "summary": "Update project OAuth2 Tradeshift", - "operationId": "projectUpdateOAuth2Tradeshift", + "\/project\/platforms\/windows\/{platformId}": { + "put": { + "summary": "Update project Windows platform", + "operationId": "projectUpdateWindowsPlatform", "tags": [ "project" ], - "description": "Update the project OAuth2 Tradeshift configuration.", + "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": "OAuth2Tradeshift", + "description": "Platform Windows", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/oAuth2Tradeshift" + "$ref": "#\/components\/schemas\/platformWindows" } } } @@ -60945,18 +61894,15 @@ }, "deprecated": false, "x-appwrite": { - "method": "updateOAuth2Tradeshift", - "group": "oauth2", + "method": "updateWindowsPlatform", + "group": "platforms", "cookies": false, "type": "", - "demo": "project\/update-o-auth-2-tradeshift.md", + "demo": "project\/update-windows-platform.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": [ - "oauth2.write", - "project.oauth2.write" - ], + "scope": "platforms.write", "platforms": [ "console", "server" @@ -60973,52 +61919,86 @@ "Key": [] } ], + "parameters": [ + { + "name": "platformId", + "description": "Platform ID.", + "required": true, + "schema": { + "type": "string", + "x-example": "<PLATFORM_ID>" + }, + "in": "path" + } + ], "requestBody": { "content": { "application\/json": { "schema": { "type": "object", "properties": { - "oauth2ClientId": { + "name": { "type": "string", - "description": "'OAuth2 Client ID' of Tradeshift OAuth2 app. For example: appwrite-tes00000.0000000000est-app", - "x-example": "<OAUTH2_CLIENT_ID>", - "x-nullable": true + "description": "Platform name. Max length: 128 chars.", + "x-example": "<NAME>" }, - "oauth2ClientSecret": { + "packageIdentifierName": { "type": "string", - "description": "'OAuth2 Client Secret' of Tradeshift OAuth2 app. For example: 7cb52700-0000-0000-0000-000000ca5b83", - "x-example": "<OAUTH2_CLIENT_SECRET>", - "x-nullable": true - }, - "enabled": { - "type": "boolean", - "description": "OAuth2 sign-in method status. Set to true to enable new session creation. Setting to true will trigger end-to-end credentials validation, and will throw if the credentials are invalid.", - "x-example": false, - "x-nullable": true + "description": "Windows package identifier name. Max length: 256 chars.", + "x-example": "<PACKAGE_IDENTIFIER_NAME>" } - } + }, + "required": [ + "name", + "packageIdentifierName" + ] } } } } } }, - "\/project\/oauth2\/tradeshiftBox": { - "patch": { - "summary": "Update project OAuth2 Tradeshift Sandbox", - "operationId": "projectUpdateOAuth2TradeshiftSandbox", + "\/project\/platforms\/{platformId}": { + "get": { + "summary": "Get project platform", + "operationId": "projectGetPlatform", "tags": [ "project" ], - "description": "Update the project OAuth2 Tradeshift Sandbox configuration.", + "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": "OAuth2Tradeshift", + "description": "Platform Web, or Platform Apple, or Platform Android, or Platform Windows, or Platform Linux", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/oAuth2Tradeshift" + "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" + } + } } } } @@ -61026,18 +62006,15 @@ }, "deprecated": false, "x-appwrite": { - "method": "updateOAuth2TradeshiftSandbox", - "group": "oauth2", + "method": "getPlatform", + "group": "platforms", "cookies": false, "type": "", - "demo": "project\/update-o-auth-2-tradeshift-sandbox.md", + "demo": "project\/get-platform.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": [ - "oauth2.write", - "project.oauth2.write" - ], + "scope": "platforms.read", "platforms": [ "console", "server" @@ -61054,71 +62031,42 @@ "Key": [] } ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "oauth2ClientId": { - "type": "string", - "description": "'OAuth2 Client ID' of Tradeshift Sandbox OAuth2 app. For example: appwrite-tes00000.0000000000est-app", - "x-example": "<OAUTH2_CLIENT_ID>", - "x-nullable": true - }, - "oauth2ClientSecret": { - "type": "string", - "description": "'OAuth2 Client Secret' of Tradeshift Sandbox OAuth2 app. For example: 7cb52700-0000-0000-0000-000000ca5b83", - "x-example": "<OAUTH2_CLIENT_SECRET>", - "x-nullable": true - }, - "enabled": { - "type": "boolean", - "description": "OAuth2 sign-in method status. Set to true to enable new session creation. Setting to true will trigger end-to-end credentials validation, and will throw if the credentials are invalid.", - "x-example": false, - "x-nullable": true - } - } - } - } + "parameters": [ + { + "name": "platformId", + "description": "Platform ID.", + "required": true, + "schema": { + "type": "string", + "x-example": "<PLATFORM_ID>" + }, + "in": "path" } - } - } - }, - "\/project\/oauth2\/twitch": { - "patch": { - "summary": "Update project OAuth2 Twitch", - "operationId": "projectUpdateOAuth2Twitch", + ] + }, + "delete": { + "summary": "Delete project platform", + "operationId": "projectDeletePlatform", "tags": [ "project" ], - "description": "Update the project OAuth2 Twitch configuration.", + "description": "Delete a platform by its unique ID. This endpoint removes the platform and all its configurations from the project.", "responses": { - "200": { - "description": "OAuth2Twitch", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/oAuth2Twitch" - } - } - } + "204": { + "description": "No content" } }, "deprecated": false, "x-appwrite": { - "method": "updateOAuth2Twitch", - "group": "oauth2", + "method": "deletePlatform", + "group": "platforms", "cookies": false, "type": "", - "demo": "project\/update-o-auth-2-twitch.md", + "demo": "project\/delete-platform.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": [ - "oauth2.write", - "project.oauth2.write" - ], + "scope": "platforms.write", "platforms": [ "console", "server" @@ -61135,52 +62083,35 @@ "Key": [] } ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "clientId": { - "type": "string", - "description": "'Client ID' of Twitch OAuth2 app. For example: vvi0in000000000000000000ikmt9p", - "x-example": "<CLIENT_ID>", - "x-nullable": true - }, - "clientSecret": { - "type": "string", - "description": "'Client Secret' of Twitch OAuth2 app. For example: pmapue000000000000000000zylw3v", - "x-example": "<CLIENT_SECRET>", - "x-nullable": true - }, - "enabled": { - "type": "boolean", - "description": "OAuth2 sign-in method status. Set to true to enable new session creation. Setting to true will trigger end-to-end credentials validation, and will throw if the credentials are invalid.", - "x-example": false, - "x-nullable": true - } - } - } - } + "parameters": [ + { + "name": "platformId", + "description": "Platform ID.", + "required": true, + "schema": { + "type": "string", + "x-example": "<PLATFORM_ID>" + }, + "in": "path" } - } + ] } }, - "\/project\/oauth2\/wordpress": { - "patch": { - "summary": "Update project OAuth2 WordPress", - "operationId": "projectUpdateOAuth2WordPress", + "\/project\/policies": { + "get": { + "summary": "List project policies", + "operationId": "projectListPolicies", "tags": [ "project" ], - "description": "Update the project OAuth2 WordPress configuration.", + "description": "Get a list of all project policies and their current configuration.", "responses": { "200": { - "description": "OAuth2WordPress", + "description": "Policies List", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/oAuth2WordPress" + "$ref": "#\/components\/schemas\/policyList" } } } @@ -61188,17 +62119,17 @@ }, "deprecated": false, "x-appwrite": { - "method": "updateOAuth2WordPress", - "group": "oauth2", + "method": "listPolicies", + "group": "policies", "cookies": false, "type": "", - "demo": "project\/update-o-auth-2-word-press.md", + "demo": "project\/list-policies.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", "scope": [ - "oauth2.write", - "project.oauth2.write" + "policies.read", + "project.policies.read" ], "platforms": [ "console", @@ -61216,52 +62147,49 @@ "Key": [] } ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "clientId": { - "type": "string", - "description": "'Client ID' of WordPress OAuth2 app. For example: 130005", - "x-example": "<CLIENT_ID>", - "x-nullable": true - }, - "clientSecret": { - "type": "string", - "description": "'Client Secret' of WordPress OAuth2 app. For example: PlBfJS0000000000000000000000000000000000000000000000000000EdUZJk", - "x-example": "<CLIENT_SECRET>", - "x-nullable": true - }, - "enabled": { - "type": "boolean", - "description": "OAuth2 sign-in method status. Set to true to enable new session creation. Setting to true will trigger end-to-end credentials validation, and will throw if the credentials are invalid.", - "x-example": false, - "x-nullable": true - } - } - } - } + "parameters": [ + { + "name": "queries", + "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/queries). Only supported methods are limit and offset", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string" + }, + "default": [] + }, + "in": "query" + }, + { + "name": "total", + "description": "When set to false, the total count returned will be 0 and will not be calculated.", + "required": false, + "schema": { + "type": "boolean", + "x-example": false, + "default": true + }, + "in": "query" } - } + ] } }, - "\/project\/oauth2\/x": { + "\/project\/policies\/deny-aliased-email": { "patch": { - "summary": "Update project OAuth2 X", - "operationId": "projectUpdateOAuth2X", + "summary": "Update deny aliased email policy", + "operationId": "projectUpdateDenyAliasedEmailPolicy", "tags": [ "project" ], - "description": "Update the project OAuth2 X configuration.", + "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": "OAuth2X", + "description": "Project", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/oAuth2X" + "$ref": "#\/components\/schemas\/project" } } } @@ -61269,17 +62197,17 @@ }, "deprecated": false, "x-appwrite": { - "method": "updateOAuth2X", - "group": "oauth2", + "method": "updateDenyAliasedEmailPolicy", + "group": "policies", "cookies": false, "type": "", - "demo": "project\/update-o-auth-2x.md", + "demo": "project\/update-deny-aliased-email-policy.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", "scope": [ - "oauth2.write", - "project.oauth2.write" + "policies.write", + "project.policies.write" ], "platforms": [ "console", @@ -61303,46 +62231,36 @@ "schema": { "type": "object", "properties": { - "customerKey": { - "type": "string", - "description": "'Customer Key' of X OAuth2 app. For example: slzZV0000000000000NFLaWT", - "x-example": "<CUSTOMER_KEY>", - "x-nullable": true - }, - "secretKey": { - "type": "string", - "description": "'Secret Key' of X OAuth2 app. For example: tkEPkp00000000000000000000000000000000000000FTxbI9", - "x-example": "<SECRET_KEY>", - "x-nullable": true - }, "enabled": { "type": "boolean", - "description": "OAuth2 sign-in method status. Set to true to enable new session creation. Setting to true will trigger end-to-end credentials validation, and will throw if the credentials are invalid.", - "x-example": false, - "x-nullable": true + "description": "Set whether or not to block aliased emails during signup and email updates.", + "x-example": false } - } + }, + "required": [ + "enabled" + ] } } } } } }, - "\/project\/oauth2\/yahoo": { + "\/project\/policies\/deny-corporate-email": { "patch": { - "summary": "Update project OAuth2 Yahoo", - "operationId": "projectUpdateOAuth2Yahoo", + "summary": "Update deny non-corporate email policy", + "operationId": "projectUpdateDenyCorporateEmailPolicy", "tags": [ "project" ], - "description": "Update the project OAuth2 Yahoo configuration.", + "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": "OAuth2Yahoo", + "description": "Project", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/oAuth2Yahoo" + "$ref": "#\/components\/schemas\/project" } } } @@ -61350,17 +62268,17 @@ }, "deprecated": false, "x-appwrite": { - "method": "updateOAuth2Yahoo", - "group": "oauth2", + "method": "updateDenyCorporateEmailPolicy", + "group": "policies", "cookies": false, "type": "", - "demo": "project\/update-o-auth-2-yahoo.md", + "demo": "project\/update-deny-corporate-email-policy.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", "scope": [ - "oauth2.write", - "project.oauth2.write" + "policies.write", + "project.policies.write" ], "platforms": [ "console", @@ -61384,46 +62302,36 @@ "schema": { "type": "object", "properties": { - "clientId": { - "type": "string", - "description": "'Client ID, also known as Customer Key' of Yahoo OAuth2 app. For example: dj0yJm000000000000000000000000000000000000000000000000000000000000000000000000000000000000Z4PWRm", - "x-example": "<CLIENT_ID>", - "x-nullable": true - }, - "clientSecret": { - "type": "string", - "description": "'Client Secret, also known as Customer Secret' of Yahoo OAuth2 app. For example: cf978f0000000000000000000000000000c5e2e9", - "x-example": "<CLIENT_SECRET>", - "x-nullable": true - }, "enabled": { "type": "boolean", - "description": "OAuth2 sign-in method status. Set to true to enable new session creation. Setting to true will trigger end-to-end credentials validation, and will throw if the credentials are invalid.", - "x-example": false, - "x-nullable": true + "description": "Set whether or not to restrict sign-ups and email updates to corporate email addresses only.", + "x-example": false } - } + }, + "required": [ + "enabled" + ] } } } } } }, - "\/project\/oauth2\/yandex": { + "\/project\/policies\/deny-disposable-email": { "patch": { - "summary": "Update project OAuth2 Yandex", - "operationId": "projectUpdateOAuth2Yandex", + "summary": "Update deny disposable email policy", + "operationId": "projectUpdateDenyDisposableEmailPolicy", "tags": [ "project" ], - "description": "Update the project OAuth2 Yandex configuration.", + "description": "Configures if disposable emails from known temporary domains are denied during new users sign-ups and email updates.", "responses": { "200": { - "description": "OAuth2Yandex", + "description": "Project", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/oAuth2Yandex" + "$ref": "#\/components\/schemas\/project" } } } @@ -61431,17 +62339,17 @@ }, "deprecated": false, "x-appwrite": { - "method": "updateOAuth2Yandex", - "group": "oauth2", + "method": "updateDenyDisposableEmailPolicy", + "group": "policies", "cookies": false, "type": "", - "demo": "project\/update-o-auth-2-yandex.md", + "demo": "project\/update-deny-disposable-email-policy.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", "scope": [ - "oauth2.write", - "project.oauth2.write" + "policies.write", + "project.policies.write" ], "platforms": [ "console", @@ -61465,46 +62373,36 @@ "schema": { "type": "object", "properties": { - "clientId": { - "type": "string", - "description": "'Client ID' of Yandex OAuth2 app. For example: 6a8a6a0000000000000000000091483c", - "x-example": "<CLIENT_ID>", - "x-nullable": true - }, - "clientSecret": { - "type": "string", - "description": "'Client Secret' of Yandex OAuth2 app. For example: bbf98500000000000000000000c75a63", - "x-example": "<CLIENT_SECRET>", - "x-nullable": true - }, "enabled": { "type": "boolean", - "description": "OAuth2 sign-in method status. Set to true to enable new session creation. Setting to true will trigger end-to-end credentials validation, and will throw if the credentials are invalid.", - "x-example": false, - "x-nullable": true + "description": "Set whether or not to block disposable email addresses during signup and email updates.", + "x-example": false } - } + }, + "required": [ + "enabled" + ] } } } } } }, - "\/project\/oauth2\/zoho": { + "\/project\/policies\/deny-free-email": { "patch": { - "summary": "Update project OAuth2 Zoho", - "operationId": "projectUpdateOAuth2Zoho", + "summary": "Update deny free email policy", + "operationId": "projectUpdateDenyFreeEmailPolicy", "tags": [ "project" ], - "description": "Update the project OAuth2 Zoho configuration.", + "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": "OAuth2Zoho", + "description": "Project", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/oAuth2Zoho" + "$ref": "#\/components\/schemas\/project" } } } @@ -61512,17 +62410,17 @@ }, "deprecated": false, "x-appwrite": { - "method": "updateOAuth2Zoho", - "group": "oauth2", + "method": "updateDenyFreeEmailPolicy", + "group": "policies", "cookies": false, "type": "", - "demo": "project\/update-o-auth-2-zoho.md", + "demo": "project\/update-deny-free-email-policy.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", "scope": [ - "oauth2.write", - "project.oauth2.write" + "policies.write", + "project.policies.write" ], "platforms": [ "console", @@ -61546,46 +62444,36 @@ "schema": { "type": "object", "properties": { - "clientId": { - "type": "string", - "description": "'Client ID' of Zoho OAuth2 app. For example: 1000.83C178000000000000000000RPNX0B", - "x-example": "<CLIENT_ID>", - "x-nullable": true - }, - "clientSecret": { - "type": "string", - "description": "'Client Secret' of Zoho OAuth2 app. For example: fb5cac000000000000000000000000000000a68f6e", - "x-example": "<CLIENT_SECRET>", - "x-nullable": true - }, "enabled": { "type": "boolean", - "description": "OAuth2 sign-in method status. Set to true to enable new session creation. Setting to true will trigger end-to-end credentials validation, and will throw if the credentials are invalid.", - "x-example": false, - "x-nullable": true + "description": "Set whether or not to block free email addresses during signup and email updates.", + "x-example": false } - } + }, + "required": [ + "enabled" + ] } } } } } }, - "\/project\/oauth2\/zoom": { + "\/project\/policies\/membership-privacy": { "patch": { - "summary": "Update project OAuth2 Zoom", - "operationId": "projectUpdateOAuth2Zoom", + "summary": "Update membership privacy policy", + "operationId": "projectUpdateMembershipPrivacyPolicy", "tags": [ "project" ], - "description": "Update the project OAuth2 Zoom configuration.", + "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": "OAuth2Zoom", + "description": "Project", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/oAuth2Zoom" + "$ref": "#\/components\/schemas\/project" } } } @@ -61593,17 +62481,17 @@ }, "deprecated": false, "x-appwrite": { - "method": "updateOAuth2Zoom", - "group": "oauth2", + "method": "updateMembershipPrivacyPolicy", + "group": "policies", "cookies": false, "type": "", - "demo": "project\/update-o-auth-2-zoom.md", + "demo": "project\/update-membership-privacy-policy.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", "scope": [ - "oauth2.write", - "project.oauth2.write" + "policies.write", + "project.policies.write" ], "platforms": [ "console", @@ -61627,23 +62515,35 @@ "schema": { "type": "object", "properties": { - "clientId": { - "type": "string", - "description": "'Client ID' of Zoom OAuth2 app. For example: QMAC00000000000000w0AQ", - "x-example": "<CLIENT_ID>", - "x-nullable": true - }, - "clientSecret": { - "type": "string", - "description": "'Client Secret' of Zoom OAuth2 app. For example: GAWsG4000000000000000000007U01ON", - "x-example": "<CLIENT_SECRET>", - "x-nullable": true + "userId": { + "type": "boolean", + "description": "Set to true if you want make user ID visible to all team members, or false to hide it.", + "x-example": false }, - "enabled": { + "userEmail": { "type": "boolean", - "description": "OAuth2 sign-in method status. Set to true to enable new session creation. Setting to true will trigger end-to-end credentials validation, and will throw if the credentials are invalid.", - "x-example": false, - "x-nullable": true + "description": "Set to true if you want make user email visible to all team members, or false to hide it.", + "x-example": false + }, + "userPhone": { + "type": "boolean", + "description": "Set to true if you want make user phone number visible to all team members, or false to hide it.", + "x-example": false + }, + "userName": { + "type": "boolean", + "description": "Set to true if you want make user name visible to all team members, or false to hide it.", + "x-example": false + }, + "userMFA": { + "type": "boolean", + "description": "Set to true if you want make user MFA status visible to all team members, or false to hide it.", + "x-example": false + }, + "userAccessedAt": { + "type": "boolean", + "description": "Set to true if you want make user last access time visible to all team members, or false to hide it.", + "x-example": false } } } @@ -61652,189 +62552,21 @@ } } }, - "\/project\/oauth2\/{providerId}": { - "get": { - "summary": "Get project OAuth2 provider", - "operationId": "projectGetOAuth2Provider", + "\/project\/policies\/password-dictionary": { + "patch": { + "summary": "Update password dictionary policy", + "operationId": "projectUpdatePasswordDictionaryPolicy", "tags": [ "project" ], - "description": "Get a single OAuth2 provider configuration. Credential fields (client secret, p8 file, key\/team IDs) are write-only and always returned empty.", + "description": "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": "OAuth2GitHub, or OAuth2Discord, or OAuth2Figma, or OAuth2Dropbox, or OAuth2Dailymotion, or OAuth2Bitbucket, or OAuth2Bitly, or OAuth2Box, or OAuth2Autodesk, or OAuth2Google, or OAuth2Zoom, or OAuth2Zoho, or OAuth2Yandex, or OAuth2X, or OAuth2WordPress, or OAuth2Twitch, or OAuth2Stripe, or OAuth2Spotify, or OAuth2Slack, or OAuth2Podio, or OAuth2Notion, or OAuth2Salesforce, or OAuth2Yahoo, or OAuth2Linkedin, or OAuth2Disqus, or OAuth2Amazon, or OAuth2Etsy, or OAuth2Facebook, or OAuth2Tradeshift, or OAuth2Paypal, or OAuth2Gitlab, or OAuth2Authentik, or OAuth2Auth0, or OAuth2FusionAuth, or OAuth2Keycloak, or OAuth2Oidc, or OAuth2Apple, or OAuth2Okta, or OAuth2Kick, or OAuth2Microsoft", + "description": "Project", "content": { "application\/json": { "schema": { - "oneOf": [ - { - "$ref": "#\/components\/schemas\/oAuth2Github" - }, - { - "$ref": "#\/components\/schemas\/oAuth2Discord" - }, - { - "$ref": "#\/components\/schemas\/oAuth2Figma" - }, - { - "$ref": "#\/components\/schemas\/oAuth2Dropbox" - }, - { - "$ref": "#\/components\/schemas\/oAuth2Dailymotion" - }, - { - "$ref": "#\/components\/schemas\/oAuth2Bitbucket" - }, - { - "$ref": "#\/components\/schemas\/oAuth2Bitly" - }, - { - "$ref": "#\/components\/schemas\/oAuth2Box" - }, - { - "$ref": "#\/components\/schemas\/oAuth2Autodesk" - }, - { - "$ref": "#\/components\/schemas\/oAuth2Google" - }, - { - "$ref": "#\/components\/schemas\/oAuth2Zoom" - }, - { - "$ref": "#\/components\/schemas\/oAuth2Zoho" - }, - { - "$ref": "#\/components\/schemas\/oAuth2Yandex" - }, - { - "$ref": "#\/components\/schemas\/oAuth2X" - }, - { - "$ref": "#\/components\/schemas\/oAuth2WordPress" - }, - { - "$ref": "#\/components\/schemas\/oAuth2Twitch" - }, - { - "$ref": "#\/components\/schemas\/oAuth2Stripe" - }, - { - "$ref": "#\/components\/schemas\/oAuth2Spotify" - }, - { - "$ref": "#\/components\/schemas\/oAuth2Slack" - }, - { - "$ref": "#\/components\/schemas\/oAuth2Podio" - }, - { - "$ref": "#\/components\/schemas\/oAuth2Notion" - }, - { - "$ref": "#\/components\/schemas\/oAuth2Salesforce" - }, - { - "$ref": "#\/components\/schemas\/oAuth2Yahoo" - }, - { - "$ref": "#\/components\/schemas\/oAuth2Linkedin" - }, - { - "$ref": "#\/components\/schemas\/oAuth2Disqus" - }, - { - "$ref": "#\/components\/schemas\/oAuth2Amazon" - }, - { - "$ref": "#\/components\/schemas\/oAuth2Etsy" - }, - { - "$ref": "#\/components\/schemas\/oAuth2Facebook" - }, - { - "$ref": "#\/components\/schemas\/oAuth2Tradeshift" - }, - { - "$ref": "#\/components\/schemas\/oAuth2Paypal" - }, - { - "$ref": "#\/components\/schemas\/oAuth2Gitlab" - }, - { - "$ref": "#\/components\/schemas\/oAuth2Authentik" - }, - { - "$ref": "#\/components\/schemas\/oAuth2Auth0" - }, - { - "$ref": "#\/components\/schemas\/oAuth2FusionAuth" - }, - { - "$ref": "#\/components\/schemas\/oAuth2Keycloak" - }, - { - "$ref": "#\/components\/schemas\/oAuth2Oidc" - }, - { - "$ref": "#\/components\/schemas\/oAuth2Apple" - }, - { - "$ref": "#\/components\/schemas\/oAuth2Okta" - }, - { - "$ref": "#\/components\/schemas\/oAuth2Kick" - }, - { - "$ref": "#\/components\/schemas\/oAuth2Microsoft" - } - ], - "discriminator": { - "propertyName": "$id", - "mapping": { - "github": "#\/components\/schemas\/oAuth2Github", - "discord": "#\/components\/schemas\/oAuth2Discord", - "figma": "#\/components\/schemas\/oAuth2Figma", - "dropbox": "#\/components\/schemas\/oAuth2Dropbox", - "dailymotion": "#\/components\/schemas\/oAuth2Dailymotion", - "bitbucket": "#\/components\/schemas\/oAuth2Bitbucket", - "bitly": "#\/components\/schemas\/oAuth2Bitly", - "box": "#\/components\/schemas\/oAuth2Box", - "autodesk": "#\/components\/schemas\/oAuth2Autodesk", - "google": "#\/components\/schemas\/oAuth2Google", - "zoom": "#\/components\/schemas\/oAuth2Zoom", - "zoho": "#\/components\/schemas\/oAuth2Zoho", - "yandex": "#\/components\/schemas\/oAuth2Yandex", - "x": "#\/components\/schemas\/oAuth2X", - "wordpress": "#\/components\/schemas\/oAuth2WordPress", - "twitch": "#\/components\/schemas\/oAuth2Twitch", - "stripe": "#\/components\/schemas\/oAuth2Stripe", - "spotify": "#\/components\/schemas\/oAuth2Spotify", - "slack": "#\/components\/schemas\/oAuth2Slack", - "podio": "#\/components\/schemas\/oAuth2Podio", - "notion": "#\/components\/schemas\/oAuth2Notion", - "salesforce": "#\/components\/schemas\/oAuth2Salesforce", - "yahoo": "#\/components\/schemas\/oAuth2Yahoo", - "linkedin": "#\/components\/schemas\/oAuth2Linkedin", - "disqus": "#\/components\/schemas\/oAuth2Disqus", - "amazon": "#\/components\/schemas\/oAuth2Amazon", - "etsy": "#\/components\/schemas\/oAuth2Etsy", - "facebook": "#\/components\/schemas\/oAuth2Facebook", - "tradeshift": "#\/components\/schemas\/oAuth2Tradeshift", - "tradeshiftBox": "#\/components\/schemas\/oAuth2Tradeshift", - "paypal": "#\/components\/schemas\/oAuth2Paypal", - "paypalSandbox": "#\/components\/schemas\/oAuth2Paypal", - "gitlab": "#\/components\/schemas\/oAuth2Gitlab", - "authentik": "#\/components\/schemas\/oAuth2Authentik", - "auth0": "#\/components\/schemas\/oAuth2Auth0", - "fusionauth": "#\/components\/schemas\/oAuth2FusionAuth", - "keycloak": "#\/components\/schemas\/oAuth2Keycloak", - "oidc": "#\/components\/schemas\/oAuth2Oidc", - "apple": "#\/components\/schemas\/oAuth2Apple", - "okta": "#\/components\/schemas\/oAuth2Okta", - "kick": "#\/components\/schemas\/oAuth2Kick", - "microsoft": "#\/components\/schemas\/oAuth2Microsoft" - } - } + "$ref": "#\/components\/schemas\/project" } } } @@ -61842,17 +62574,17 @@ }, "deprecated": false, "x-appwrite": { - "method": "getOAuth2Provider", - "group": "oauth2", + "method": "updatePasswordDictionaryPolicy", + "group": "policies", "cookies": false, "type": "", - "demo": "project\/get-o-auth-2-provider.md", + "demo": "project\/update-password-dictionary-policy.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", "scope": [ - "oauth2.read", - "project.oauth2.read" + "policies.write", + "project.policies.write" ], "platforms": [ "console", @@ -61870,126 +62602,42 @@ "Key": [] } ], - "parameters": [ - { - "name": "providerId", - "description": "OAuth2 provider key. For example: github, google, apple.", - "required": true, - "schema": { - "type": "string", - "x-example": "amazon", - "enum": [ - "amazon", - "apple", - "auth0", - "authentik", - "autodesk", - "bitbucket", - "bitly", - "box", - "dailymotion", - "discord", - "disqus", - "dropbox", - "etsy", - "facebook", - "figma", - "fusionauth", - "github", - "gitlab", - "google", - "keycloak", - "kick", - "linkedin", - "microsoft", - "notion", - "oidc", - "okta", - "paypal", - "paypalSandbox", - "podio", - "salesforce", - "slack", - "spotify", - "stripe", - "tradeshift", - "tradeshiftBox", - "twitch", - "wordpress", - "x", - "yahoo", - "yammer", - "yandex", - "zoho", - "zoom" - ], - "x-enum-name": "ProjectOAuthProviderId", - "x-enum-keys": [ - "amazon", - "apple", - "auth0", - "authentik", - "autodesk", - "bitbucket", - "bitly", - "box", - "dailymotion", - "discord", - "disqus", - "dropbox", - "etsy", - "facebook", - "figma", - "fusionauth", - "github", - "gitlab", - "google", - "keycloak", - "kick", - "linkedin", - "microsoft", - "notion", - "oidc", - "okta", - "paypal", - "paypalSandbox", - "podio", - "salesforce", - "slack", - "spotify", - "stripe", - "tradeshift", - "tradeshiftBox", - "twitch", - "wordpress", - "x", - "yahoo", - "yammer", - "yandex", - "zoho", - "zoom" - ] - }, - "in": "path" + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "enabled": { + "type": "boolean", + "description": "Toggle password dictionary policy. Set to true if you want password change to block passwords in the dictionary, or false to allow them. When changing this policy, existing passwords remain valid.", + "x-example": false + } + }, + "required": [ + "enabled" + ] + } + } } - ] + } } }, - "\/project\/platforms": { - "get": { - "summary": "List project platforms", - "operationId": "projectListPlatforms", + "\/project\/policies\/password-history": { + "patch": { + "summary": "Update password history policy", + "operationId": "projectUpdatePasswordHistoryPolicy", "tags": [ "project" ], - "description": "Get a list of all platforms in the project. This endpoint returns an array of all platforms and their configurations.", + "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": "Platforms List", + "description": "Project", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/platformList" + "$ref": "#\/components\/schemas\/project" } } } @@ -61997,15 +62645,18 @@ }, "deprecated": false, "x-appwrite": { - "method": "listPlatforms", - "group": "platforms", + "method": "updatePasswordHistoryPolicy", + "group": "policies", "cookies": false, "type": "", - "demo": "project\/list-platforms.md", + "demo": "project\/update-password-history-policy.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "platforms.read", + "scope": [ + "policies.write", + "project.policies.write" + ], "platforms": [ "console", "server" @@ -62022,49 +62673,44 @@ "Key": [] } ], - "parameters": [ - { - "name": "queries", - "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/queries). Maximum of 100 queries are allowed, each 4096 characters long. You may filter on the following attributes: type, name, hostname, bundleIdentifier, applicationId, packageIdentifierName, packageName", - "required": false, - "schema": { - "type": "array", - "items": { - "type": "string" - }, - "default": [] - }, - "in": "query" - }, - { - "name": "total", - "description": "When set to false, the total count returned will be 0 and will not be calculated.", - "required": false, - "schema": { - "type": "boolean", - "x-example": false, - "default": true - }, - "in": "query" + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "total": { + "type": "integer", + "description": "Set the password history length per user. Value can be between 1 and 5000, or null to disable the limit.", + "x-example": 1, + "format": "int32", + "x-nullable": true + } + }, + "required": [ + "total" + ] + } + } } - ] + } } }, - "\/project\/platforms\/android": { - "post": { - "summary": "Create project Android platform", - "operationId": "projectCreateAndroidPlatform", + "\/project\/policies\/password-personal-data": { + "patch": { + "summary": "Update password personal data policy", + "operationId": "projectUpdatePasswordPersonalDataPolicy", "tags": [ "project" ], - "description": "Create a new Android platform for your project. Use this endpoint to register a new Android platform where your users will run your application which will interact with the Appwrite API.", + "description": "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": { - "201": { - "description": "Platform Android", + "200": { + "description": "Project", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/platformAndroid" + "$ref": "#\/components\/schemas\/project" } } } @@ -62072,15 +62718,18 @@ }, "deprecated": false, "x-appwrite": { - "method": "createAndroidPlatform", - "group": "platforms", + "method": "updatePasswordPersonalDataPolicy", + "group": "policies", "cookies": false, "type": "", - "demo": "project\/create-android-platform.md", + "demo": "project\/update-password-personal-data-policy.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "platforms.write", + "scope": [ + "policies.write", + "project.policies.write" + ], "platforms": [ "console", "server" @@ -62103,29 +62752,14 @@ "schema": { "type": "object", "properties": { - "platformId": { - "type": "string", - "description": "Platform ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.", - "x-example": "<PLATFORM_ID>", - "x-appwrite": { - "idGenerator": "ID.unique" - } - }, - "name": { - "type": "string", - "description": "Platform name. Max length: 128 chars.", - "x-example": "<NAME>" - }, - "applicationId": { - "type": "string", - "description": "Android application ID. Max length: 256 chars.", - "x-example": "<APPLICATION_ID>" + "enabled": { + "type": "boolean", + "description": "Toggle password personal data policy. Set to true if you want to block passwords including user's personal data, or false to allow it. When changing this policy, existing passwords remain valid.", + "x-example": false } }, "required": [ - "platformId", - "name", - "applicationId" + "enabled" ] } } @@ -62133,21 +62767,21 @@ } } }, - "\/project\/platforms\/android\/{platformId}": { - "put": { - "summary": "Update project Android platform", - "operationId": "projectUpdateAndroidPlatform", + "\/project\/policies\/password-strength": { + "patch": { + "summary": "Update password strength policy", + "operationId": "projectUpdatePasswordStrengthPolicy", "tags": [ "project" ], - "description": "Update an Android platform by its unique ID. Use this endpoint to update the platform's name or application ID.", + "description": "Update the password strength requirements for users in the project.", "responses": { "200": { - "description": "Platform Android", + "description": "Policy Password Strength", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/platformAndroid" + "$ref": "#\/components\/schemas\/policyPasswordStrength" } } } @@ -62155,15 +62789,18 @@ }, "deprecated": false, "x-appwrite": { - "method": "updateAndroidPlatform", - "group": "platforms", + "method": "updatePasswordStrengthPolicy", + "group": "policies", "cookies": false, "type": "", - "demo": "project\/update-android-platform.md", + "demo": "project\/update-password-strength-policy.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "platforms.write", + "scope": [ + "policies.write", + "project.policies.write" + ], "platforms": [ "console", "server" @@ -62180,60 +62817,60 @@ "Key": [] } ], - "parameters": [ - { - "name": "platformId", - "description": "Platform ID.", - "required": true, - "schema": { - "type": "string", - "x-example": "<PLATFORM_ID>" - }, - "in": "path" - } - ], "requestBody": { "content": { "application\/json": { "schema": { "type": "object", "properties": { - "name": { - "type": "string", - "description": "Platform name. Max length: 128 chars.", - "x-example": "<NAME>" + "min": { + "type": "integer", + "description": "Minimum password length. Value must be between 8 and 256. Default is 8.", + "x-example": 8, + "format": "int32" }, - "applicationId": { - "type": "string", - "description": "Android application ID. Max length: 256 chars.", - "x-example": "<APPLICATION_ID>" - } - }, - "required": [ - "name", - "applicationId" - ] + "uppercase": { + "type": "boolean", + "description": "Whether passwords must include at least one uppercase letter.", + "x-example": false + }, + "lowercase": { + "type": "boolean", + "description": "Whether passwords must include at least one lowercase letter.", + "x-example": false + }, + "number": { + "type": "boolean", + "description": "Whether passwords must include at least one number.", + "x-example": false + }, + "symbols": { + "type": "boolean", + "description": "Whether passwords must include at least one symbol.", + "x-example": false + } + } } } } } } }, - "\/project\/platforms\/apple": { - "post": { - "summary": "Create project Apple platform", - "operationId": "projectCreateApplePlatform", + "\/project\/policies\/session-alert": { + "patch": { + "summary": "Update session alert policy", + "operationId": "projectUpdateSessionAlertPolicy", "tags": [ "project" ], - "description": "Create a new Apple platform for your project. Use this endpoint to register a new Apple platform where your users will run your application which will interact with the Appwrite API.", + "description": "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": { - "201": { - "description": "Platform Apple", + "200": { + "description": "Project", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/platformApple" + "$ref": "#\/components\/schemas\/project" } } } @@ -62241,15 +62878,18 @@ }, "deprecated": false, "x-appwrite": { - "method": "createApplePlatform", - "group": "platforms", + "method": "updateSessionAlertPolicy", + "group": "policies", "cookies": false, "type": "", - "demo": "project\/create-apple-platform.md", + "demo": "project\/update-session-alert-policy.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "platforms.write", + "scope": [ + "policies.write", + "project.policies.write" + ], "platforms": [ "console", "server" @@ -62272,29 +62912,14 @@ "schema": { "type": "object", "properties": { - "platformId": { - "type": "string", - "description": "Platform ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.", - "x-example": "<PLATFORM_ID>", - "x-appwrite": { - "idGenerator": "ID.unique" - } - }, - "name": { - "type": "string", - "description": "Platform name. Max length: 128 chars.", - "x-example": "<NAME>" - }, - "bundleIdentifier": { - "type": "string", - "description": "Apple bundle identifier. Max length: 256 chars.", - "x-example": "<BUNDLE_IDENTIFIER>" + "enabled": { + "type": "boolean", + "description": "Toggle session alert policy. Set to true if you want users to receive email notifications when a sessions are created for their users, or false to not send email alerts.", + "x-example": false } }, "required": [ - "platformId", - "name", - "bundleIdentifier" + "enabled" ] } } @@ -62302,21 +62927,21 @@ } } }, - "\/project\/platforms\/apple\/{platformId}": { - "put": { - "summary": "Update project Apple platform", - "operationId": "projectUpdateApplePlatform", + "\/project\/policies\/session-duration": { + "patch": { + "summary": "Update session duration policy", + "operationId": "projectUpdateSessionDurationPolicy", "tags": [ "project" ], - "description": "Update an Apple platform by its unique ID. Use this endpoint to update the platform's name or bundle identifier.", + "description": "Update maximum duration how long sessions created within a project should stay active for.", "responses": { "200": { - "description": "Platform Apple", + "description": "Project", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/platformApple" + "$ref": "#\/components\/schemas\/project" } } } @@ -62324,15 +62949,18 @@ }, "deprecated": false, "x-appwrite": { - "method": "updateApplePlatform", - "group": "platforms", + "method": "updateSessionDurationPolicy", + "group": "policies", "cookies": false, "type": "", - "demo": "project\/update-apple-platform.md", + "demo": "project\/update-session-duration-policy.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "platforms.write", + "scope": [ + "policies.write", + "project.policies.write" + ], "platforms": [ "console", "server" @@ -62349,38 +62977,21 @@ "Key": [] } ], - "parameters": [ - { - "name": "platformId", - "description": "Platform ID.", - "required": true, - "schema": { - "type": "string", - "x-example": "<PLATFORM_ID>" - }, - "in": "path" - } - ], "requestBody": { "content": { "application\/json": { "schema": { "type": "object", "properties": { - "name": { - "type": "string", - "description": "Platform name. Max length: 128 chars.", - "x-example": "<NAME>" - }, - "bundleIdentifier": { - "type": "string", - "description": "Apple bundle identifier. Max length: 256 chars.", - "x-example": "<BUNDLE_IDENTIFIER>" + "duration": { + "type": "integer", + "description": "Maximum session length in seconds. Minium allowed value is 5 second, and maximum is 1 year, which is 31536000 seconds.", + "x-example": 5, + "format": "int32" } }, "required": [ - "name", - "bundleIdentifier" + "duration" ] } } @@ -62388,21 +62999,21 @@ } } }, - "\/project\/platforms\/linux": { - "post": { - "summary": "Create project Linux platform", - "operationId": "projectCreateLinuxPlatform", + "\/project\/policies\/session-invalidation": { + "patch": { + "summary": "Update session invalidation policy", + "operationId": "projectUpdateSessionInvalidationPolicy", "tags": [ "project" ], - "description": "Create a new Linux platform for your project. Use this endpoint to register a new Linux platform where your users will run your application which will interact with the Appwrite API.", + "description": "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": { - "201": { - "description": "Platform Linux", + "200": { + "description": "Project", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/platformLinux" + "$ref": "#\/components\/schemas\/project" } } } @@ -62410,15 +63021,18 @@ }, "deprecated": false, "x-appwrite": { - "method": "createLinuxPlatform", - "group": "platforms", + "method": "updateSessionInvalidationPolicy", + "group": "policies", "cookies": false, "type": "", - "demo": "project\/create-linux-platform.md", + "demo": "project\/update-session-invalidation-policy.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "platforms.write", + "scope": [ + "policies.write", + "project.policies.write" + ], "platforms": [ "console", "server" @@ -62441,29 +63055,14 @@ "schema": { "type": "object", "properties": { - "platformId": { - "type": "string", - "description": "Platform ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.", - "x-example": "<PLATFORM_ID>", - "x-appwrite": { - "idGenerator": "ID.unique" - } - }, - "name": { - "type": "string", - "description": "Platform name. Max length: 128 chars.", - "x-example": "<NAME>" - }, - "packageName": { - "type": "string", - "description": "Linux package name. Max length: 256 chars.", - "x-example": "<PACKAGE_NAME>" + "enabled": { + "type": "boolean", + "description": "Toggle session invalidation policy. Set to true if you want password change to invalidate all sessions of an user, or false to keep sessions active.", + "x-example": false } }, "required": [ - "platformId", - "name", - "packageName" + "enabled" ] } } @@ -62471,21 +63070,21 @@ } } }, - "\/project\/platforms\/linux\/{platformId}": { - "put": { - "summary": "Update project Linux platform", - "operationId": "projectUpdateLinuxPlatform", + "\/project\/policies\/session-limit": { + "patch": { + "summary": "Update session limit policy", + "operationId": "projectUpdateSessionLimitPolicy", "tags": [ "project" ], - "description": "Update a Linux platform by its unique ID. Use this endpoint to update the platform's name or package name.", + "description": "Update the 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": "Platform Linux", + "description": "Project", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/platformLinux" + "$ref": "#\/components\/schemas\/project" } } } @@ -62493,15 +63092,18 @@ }, "deprecated": false, "x-appwrite": { - "method": "updateLinuxPlatform", - "group": "platforms", + "method": "updateSessionLimitPolicy", + "group": "policies", "cookies": false, "type": "", - "demo": "project\/update-linux-platform.md", + "demo": "project\/update-session-limit-policy.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "platforms.write", + "scope": [ + "policies.write", + "project.policies.write" + ], "platforms": [ "console", "server" @@ -62518,38 +63120,22 @@ "Key": [] } ], - "parameters": [ - { - "name": "platformId", - "description": "Platform ID.", - "required": true, - "schema": { - "type": "string", - "x-example": "<PLATFORM_ID>" - }, - "in": "path" - } - ], "requestBody": { "content": { "application\/json": { "schema": { "type": "object", "properties": { - "name": { - "type": "string", - "description": "Platform name. Max length: 128 chars.", - "x-example": "<NAME>" - }, - "packageName": { - "type": "string", - "description": "Linux package name. Max length: 256 chars.", - "x-example": "<PACKAGE_NAME>" + "total": { + "type": "integer", + "description": "Set the maximum number of sessions allowed per user. Value can be between 1 and 5000, or null to disable the limit.", + "x-example": 1, + "format": "int32", + "x-nullable": true } }, "required": [ - "name", - "packageName" + "total" ] } } @@ -62557,21 +63143,21 @@ } } }, - "\/project\/platforms\/web": { - "post": { - "summary": "Create project web platform", - "operationId": "projectCreateWebPlatform", + "\/project\/policies\/user-limit": { + "patch": { + "summary": "Update user limit policy", + "operationId": "projectUpdateUserLimitPolicy", "tags": [ "project" ], - "description": "Create a new web platform for your project. Use this endpoint to register a new platform where your users will run your application which will interact with the Appwrite API.", + "description": "Update the 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": { - "201": { - "description": "Platform Web", + "200": { + "description": "Project", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/platformWeb" + "$ref": "#\/components\/schemas\/project" } } } @@ -62579,15 +63165,18 @@ }, "deprecated": false, "x-appwrite": { - "method": "createWebPlatform", - "group": "platforms", + "method": "updateUserLimitPolicy", + "group": "policies", "cookies": false, "type": "", - "demo": "project\/create-web-platform.md", + "demo": "project\/update-user-limit-policy.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "platforms.write", + "scope": [ + "policies.write", + "project.policies.write" + ], "platforms": [ "console", "server" @@ -62610,29 +63199,16 @@ "schema": { "type": "object", "properties": { - "platformId": { - "type": "string", - "description": "Platform ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.", - "x-example": "<PLATFORM_ID>", - "x-appwrite": { - "idGenerator": "ID.unique" - } - }, - "name": { - "type": "string", - "description": "Platform name. Max length: 128 chars.", - "x-example": "<NAME>" - }, - "hostname": { - "type": "string", - "description": "Platform web hostname. Max length: 256 chars.", - "x-example": "app.example.com" + "total": { + "type": "integer", + "description": "Set the maximum number of users allowed in the project. Value can be between 1 and 5000, or null to disable the limit.", + "x-example": 1, + "format": "int32", + "x-nullable": true } }, "required": [ - "platformId", - "name", - "hostname" + "total" ] } } @@ -62640,21 +63216,83 @@ } } }, - "\/project\/platforms\/web\/{platformId}": { - "put": { - "summary": "Update project web platform", - "operationId": "projectUpdateWebPlatform", + "\/project\/policies\/{policyId}": { + "get": { + "summary": "Get project policy", + "operationId": "projectGetPolicy", "tags": [ "project" ], - "description": "Update a web platform by its unique ID. Use this endpoint to update the platform's name or hostname.", + "description": "Get a policy by its unique ID. This endpoint returns the current configuration for the requested project policy.", "responses": { "200": { - "description": "Platform Web", + "description": "Policy Password Dictionary, or Policy Password History, or Policy Password Strength, or Policy Password Personal Data, or Policy Session Alert, or Policy Session Duration, or Policy Session Invalidation, or Policy Session Limit, or Policy User Limit, or Policy Membership Privacy, or Policy Deny Aliased Email, or Policy Deny Disposable Email, or Policy Deny Free Email, or Policy Deny Corporate Email", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/platformWeb" + "oneOf": [ + { + "$ref": "#\/components\/schemas\/policyPasswordDictionary" + }, + { + "$ref": "#\/components\/schemas\/policyPasswordHistory" + }, + { + "$ref": "#\/components\/schemas\/policyPasswordStrength" + }, + { + "$ref": "#\/components\/schemas\/policyPasswordPersonalData" + }, + { + "$ref": "#\/components\/schemas\/policySessionAlert" + }, + { + "$ref": "#\/components\/schemas\/policySessionDuration" + }, + { + "$ref": "#\/components\/schemas\/policySessionInvalidation" + }, + { + "$ref": "#\/components\/schemas\/policySessionLimit" + }, + { + "$ref": "#\/components\/schemas\/policyUserLimit" + }, + { + "$ref": "#\/components\/schemas\/policyMembershipPrivacy" + }, + { + "$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", + "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", + "deny-aliased-email": "#\/components\/schemas\/policyDenyAliasedEmail", + "deny-disposable-email": "#\/components\/schemas\/policyDenyDisposableEmail", + "deny-free-email": "#\/components\/schemas\/policyDenyFreeEmail", + "deny-corporate-email": "#\/components\/schemas\/policyDenyCorporateEmail" + } + } } } } @@ -62662,15 +63300,18 @@ }, "deprecated": false, "x-appwrite": { - "method": "updateWebPlatform", - "group": "platforms", + "method": "getPolicy", + "group": "policies", "cookies": false, "type": "", - "demo": "project\/update-web-platform.md", + "demo": "project\/get-policy.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "platforms.write", + "scope": [ + "policies.read", + "project.policies.read" + ], "platforms": [ "console", "server" @@ -62689,58 +63330,66 @@ ], "parameters": [ { - "name": "platformId", - "description": "Platform ID.", + "name": "policyId", + "description": "Policy ID. Can be one of: password-dictionary, password-history, password-strength, password-personal-data, session-alert, session-duration, session-invalidation, session-limit, user-limit, membership-privacy, deny-aliased-email, deny-disposable-email, deny-free-email, deny-corporate-email.", "required": true, "schema": { "type": "string", - "x-example": "<PLATFORM_ID>" + "x-example": "password-dictionary", + "enum": [ + "password-dictionary", + "password-history", + "password-strength", + "password-personal-data", + "session-alert", + "session-duration", + "session-invalidation", + "session-limit", + "user-limit", + "membership-privacy", + "deny-aliased-email", + "deny-disposable-email", + "deny-free-email", + "deny-corporate-email" + ], + "x-enum-name": "ProjectPolicyId", + "x-enum-keys": [ + "password-dictionary", + "password-history", + "password-strength", + "password-personal-data", + "session-alert", + "session-duration", + "session-invalidation", + "session-limit", + "user-limit", + "membership-privacy", + "deny-aliased-email", + "deny-disposable-email", + "deny-free-email", + "deny-corporate-email" + ] }, "in": "path" } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "name": { - "type": "string", - "description": "Platform name. Max length: 128 chars.", - "x-example": "<NAME>" - }, - "hostname": { - "type": "string", - "description": "Platform web hostname. Max length: 256 chars.", - "x-example": "app.example.com" - } - }, - "required": [ - "name", - "hostname" - ] - } - } - } - } + ] } }, - "\/project\/platforms\/windows": { - "post": { - "summary": "Create project Windows platform", - "operationId": "projectCreateWindowsPlatform", + "\/project\/protocols\/{protocolId}": { + "patch": { + "summary": "Update project protocol", + "operationId": "projectUpdateProtocol", "tags": [ "project" ], - "description": "Create a new Windows platform for your project. Use this endpoint to register a new Windows platform where your users will run your application which will interact with the Appwrite API.", + "description": "Update properties of a specific protocol. Use this endpoint to enable or disable a protocol in your project. ", "responses": { - "201": { - "description": "Platform Windows", + "200": { + "description": "Project", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/platformWindows" + "$ref": "#\/components\/schemas\/project" } } } @@ -62748,15 +63397,15 @@ }, "deprecated": false, "x-appwrite": { - "method": "createWindowsPlatform", - "group": "platforms", + "method": "updateProtocol", + "group": null, "cookies": false, "type": "", - "demo": "project\/create-windows-platform.md", + "demo": "project\/update-protocol.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "platforms.write", + "scope": "project.write", "platforms": [ "console", "server" @@ -62773,35 +63422,43 @@ "Key": [] } ], + "parameters": [ + { + "name": "protocolId", + "description": "Protocol name. Can be one of: rest, graphql, websocket", + "required": true, + "schema": { + "type": "string", + "x-example": "rest", + "enum": [ + "rest", + "graphql", + "websocket" + ], + "x-enum-name": "ProjectProtocolId", + "x-enum-keys": [ + "rest", + "graphql", + "websocket" + ] + }, + "in": "path" + } + ], "requestBody": { "content": { "application\/json": { "schema": { "type": "object", "properties": { - "platformId": { - "type": "string", - "description": "Platform ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.", - "x-example": "<PLATFORM_ID>", - "x-appwrite": { - "idGenerator": "ID.unique" - } - }, - "name": { - "type": "string", - "description": "Platform name. Max length: 128 chars.", - "x-example": "<NAME>" - }, - "packageIdentifierName": { - "type": "string", - "description": "Windows package identifier name. Max length: 256 chars.", - "x-example": "<PACKAGE_IDENTIFIER_NAME>" + "enabled": { + "type": "boolean", + "description": "Protocol status.", + "x-example": false } }, "required": [ - "platformId", - "name", - "packageIdentifierName" + "enabled" ] } } @@ -62809,21 +63466,21 @@ } } }, - "\/project\/platforms\/windows\/{platformId}": { - "put": { - "summary": "Update project Windows platform", - "operationId": "projectUpdateWindowsPlatform", + "\/project\/services\/{serviceId}": { + "patch": { + "summary": "Update project service", + "operationId": "projectUpdateService", "tags": [ "project" ], - "description": "Update a Windows platform by its unique ID. Use this endpoint to update the platform's name or package identifier name.", + "description": "Update properties of a specific service. Use this endpoint to enable or disable a service in your project. ", "responses": { "200": { - "description": "Platform Windows", + "description": "Project", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/platformWindows" + "$ref": "#\/components\/schemas\/project" } } } @@ -62831,15 +63488,15 @@ }, "deprecated": false, "x-appwrite": { - "method": "updateWindowsPlatform", - "group": "platforms", + "method": "updateService", + "group": null, "cookies": false, "type": "", - "demo": "project\/update-windows-platform.md", + "demo": "project\/update-service.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "platforms.write", + "scope": "project.write", "platforms": [ "console", "server" @@ -62858,12 +63515,55 @@ ], "parameters": [ { - "name": "platformId", - "description": "Platform ID.", + "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", - "x-example": "<PLATFORM_ID>" + "x-example": "account", + "enum": [ + "account", + "avatars", + "databases", + "tablesdb", + "locale", + "health", + "project", + "storage", + "teams", + "users", + "vcs", + "sites", + "functions", + "proxy", + "graphql", + "migrations", + "messaging", + "advisor", + "oauth2" + ], + "x-enum-name": "ProjectServiceId", + "x-enum-keys": [ + "account", + "avatars", + "databases", + "tablesdb", + "locale", + "health", + "project", + "storage", + "teams", + "users", + "vcs", + "sites", + "functions", + "proxy", + "graphql", + "migrations", + "messaging", + "advisor", + "oauth2" + ] }, "in": "path" } @@ -62874,20 +63574,14 @@ "schema": { "type": "object", "properties": { - "name": { - "type": "string", - "description": "Platform name. Max length: 128 chars.", - "x-example": "<NAME>" - }, - "packageIdentifierName": { - "type": "string", - "description": "Windows package identifier name. Max length: 256 chars.", - "x-example": "<PACKAGE_IDENTIFIER_NAME>" + "enabled": { + "type": "boolean", + "description": "Service status.", + "x-example": false } }, "required": [ - "name", - "packageIdentifierName" + "enabled" ] } } @@ -62895,47 +63589,21 @@ } } }, - "\/project\/platforms\/{platformId}": { - "get": { - "summary": "Get project platform", - "operationId": "projectGetPlatform", + "\/project\/smtp": { + "patch": { + "summary": "Update project SMTP configuration", + "operationId": "projectUpdateSMTP", "tags": [ "project" ], - "description": "Get a platform by its unique ID. This endpoint returns the platform's details, including its name, type, and key configurations.", + "description": "Update the 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": "Platform Web, or Platform Apple, or Platform Android, or Platform Windows, or Platform Linux", + "description": "Project", "content": { "application\/json": { "schema": { - "oneOf": [ - { - "$ref": "#\/components\/schemas\/platformWeb" - }, - { - "$ref": "#\/components\/schemas\/platformApple" - }, - { - "$ref": "#\/components\/schemas\/platformAndroid" - }, - { - "$ref": "#\/components\/schemas\/platformWindows" - }, - { - "$ref": "#\/components\/schemas\/platformLinux" - } - ], - "discriminator": { - "propertyName": "type", - "mapping": { - "web": "#\/components\/schemas\/platformWeb", - "apple": "#\/components\/schemas\/platformApple", - "android": "#\/components\/schemas\/platformAndroid", - "windows": "#\/components\/schemas\/platformWindows", - "linux": "#\/components\/schemas\/platformLinux" - } - } + "$ref": "#\/components\/schemas\/project" } } } @@ -62943,15 +63611,15 @@ }, "deprecated": false, "x-appwrite": { - "method": "getPlatform", - "group": "platforms", + "method": "updateSMTP", + "group": "smtp", "cookies": false, "type": "", - "demo": "project\/get-platform.md", + "demo": "project\/update-smtp.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "platforms.read", + "scope": "project.write", "platforms": [ "console", "server" @@ -62968,26 +63636,100 @@ "Key": [] } ], - "parameters": [ - { - "name": "platformId", - "description": "Platform ID.", - "required": true, - "schema": { - "type": "string", - "x-example": "<PLATFORM_ID>" - }, - "in": "path" + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "host": { + "type": "string", + "description": "SMTP server hostname (domain)", + "x-example": null, + "x-nullable": true + }, + "port": { + "type": "integer", + "description": "SMTP server port", + "x-example": null, + "format": "int32", + "x-nullable": true + }, + "username": { + "type": "string", + "description": "SMTP server username. Pass an empty string to clear a previously set value.", + "x-example": "<USERNAME>", + "x-nullable": true + }, + "password": { + "type": "string", + "description": "SMTP server password. Pass an empty string to clear a previously set value. This property is stored securely and cannot be read in future (write-only).", + "x-example": "password", + "format": "password", + "x-nullable": true + }, + "senderEmail": { + "type": "string", + "description": "Email address shown in inbox as the sender of the email. Pass an empty string to clear a previously set value.", + "x-example": "email@example.com", + "format": "email", + "x-nullable": true + }, + "senderName": { + "type": "string", + "description": "Name shown in inbox as the sender of the email. Pass an empty string to clear a previously set value.", + "x-example": "<SENDER_NAME>", + "x-nullable": true + }, + "replyToEmail": { + "type": "string", + "description": "Email used when user replies to the email. Pass an empty string to clear a previously set value.", + "x-example": "email@example.com", + "format": "email", + "x-nullable": true + }, + "replyToName": { + "type": "string", + "description": "Name used when user replies to the email. Pass an empty string to clear a previously set value.", + "x-example": "<REPLY_TO_NAME>", + "x-nullable": true + }, + "secure": { + "type": "string", + "description": "Configures if communication with SMTP server is encrypted. Allowed values are: tls, ssl. Leave empty for no encryption.", + "x-example": "tls", + "enum": [ + "tls", + "ssl" + ], + "x-enum-name": "ProjectSMTPSecure", + "x-enum-keys": [ + "tls", + "ssl" + ], + "x-nullable": true + }, + "enabled": { + "type": "boolean", + "description": "Enable or disable custom SMTP. Custom SMTP is useful for branding purposes, but also allows use of custom email templates.", + "x-example": false, + "x-nullable": true + } + } + } + } } - ] - }, - "delete": { - "summary": "Delete project platform", - "operationId": "projectDeletePlatform", + } + } + }, + "\/project\/smtp\/tests": { + "post": { + "summary": "Create project SMTP test", + "operationId": "projectCreateSMTPTest", "tags": [ "project" ], - "description": "Delete a platform by its unique ID. This endpoint removes the platform and all its configurations from the project.", + "description": "Send a test email to verify SMTP configuration. ", "responses": { "204": { "description": "No content" @@ -62995,15 +63737,15 @@ }, "deprecated": false, "x-appwrite": { - "method": "deletePlatform", - "group": "platforms", + "method": "createSMTPTest", + "group": "smtp", "cookies": false, "type": "", - "demo": "project\/delete-platform.md", + "demo": "project\/create-smtp-test.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "platforms.write", + "scope": "project.write", "platforms": [ "console", "server" @@ -63020,35 +63762,45 @@ "Key": [] } ], - "parameters": [ - { - "name": "platformId", - "description": "Platform ID.", - "required": true, - "schema": { - "type": "string", - "x-example": "<PLATFORM_ID>" - }, - "in": "path" + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "emails": { + "type": "array", + "description": "Array of emails to send test email to. Maximum of 10 emails are allowed.", + "x-example": null, + "items": { + "type": "string" + } + } + }, + "required": [ + "emails" + ] + } + } } - ] + } } }, - "\/project\/policies": { + "\/project\/templates\/email": { "get": { - "summary": "List project policies", - "operationId": "projectListPolicies", + "summary": "List project email templates", + "operationId": "projectListEmailTemplates", "tags": [ "project" ], - "description": "Get a list of all project policies and their current configuration.", + "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": "Policies List", + "description": "Email Templates List", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/policyList" + "$ref": "#\/components\/schemas\/emailTemplateList" } } } @@ -63056,18 +63808,15 @@ }, "deprecated": false, "x-appwrite": { - "method": "listPolicies", - "group": "policies", + "method": "listEmailTemplates", + "group": "templates", "cookies": false, "type": "", - "demo": "project\/list-policies.md", + "demo": "project\/list-email-templates.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": [ - "policies.read", - "project.policies.read" - ], + "scope": "templates.read", "platforms": [ "console", "server" @@ -63110,165 +63859,21 @@ "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": { - "method": "updateDenyAliasedEmailPolicy", - "group": "policies", - "cookies": false, - "type": "", - "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": { - "type": "boolean", - "description": "Set whether or not to block aliased emails during signup and email updates.", - "x-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": { - "method": "updateDenyCorporateEmailPolicy", - "group": "policies", - "cookies": false, - "type": "", - "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": { - "type": "boolean", - "description": "Set whether or not to restrict sign-ups and email updates to corporate email addresses only.", - "x-example": false - } - }, - "required": [ - "enabled" - ] - } - } - } - } - } - }, - "\/project\/policies\/deny-disposable-email": { + }, "patch": { - "summary": "Update deny disposable email policy", - "operationId": "projectUpdateDenyDisposableEmailPolicy", + "summary": "Update project email template", + "operationId": "projectUpdateEmailTemplate", "tags": [ "project" ], - "description": "Configures if disposable emails from known temporary domains are denied during new users sign-ups and email updates.", + "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": "Project", + "description": "EmailTemplate", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/project" + "$ref": "#\/components\/schemas\/emailTemplate" } } } @@ -63276,18 +63881,15 @@ }, "deprecated": false, "x-appwrite": { - "method": "updateDenyDisposableEmailPolicy", - "group": "policies", + "method": "updateEmailTemplate", + "group": "templates", "cookies": false, "type": "", - "demo": "project\/update-deny-disposable-email-policy.md", + "demo": "project\/update-email-template.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": [ - "policies.write", - "project.policies.write" - ], + "scope": "templates.write", "platforms": [ "console", "server" @@ -63310,200 +63912,365 @@ "schema": { "type": "object", "properties": { - "enabled": { - "type": "boolean", - "description": "Set whether or not to block disposable email addresses during signup and email updates.", - "x-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": { - "method": "updateDenyFreeEmailPolicy", - "group": "policies", - "cookies": false, - "type": "", - "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": { - "type": "boolean", - "description": "Set whether or not to block free email addresses during signup and email updates.", - "x-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": { - "method": "updateMembershipPrivacyPolicy", - "group": "policies", - "cookies": false, - "type": "", - "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": { - "type": "boolean", - "description": "Set to true if you want make user ID visible to all team members, or false to hide it.", - "x-example": false + "templateId": { + "type": "string", + "description": "Custom email template type. Can be one of: verification, magicSession, recovery, invitation, mfaChallenge, sessionAlert, otpSession", + "x-example": "verification", + "enum": [ + "verification", + "magicSession", + "recovery", + "invitation", + "mfaChallenge", + "sessionAlert", + "otpSession" + ], + "x-enum-name": "ProjectEmailTemplateId", + "x-enum-keys": [ + "verification", + "magicSession", + "recovery", + "invitation", + "mfaChallenge", + "sessionAlert", + "otpSession" + ] }, - "userEmail": { - "type": "boolean", - "description": "Set to true if you want make user email visible to all team members, or false to hide it.", - "x-example": false + "locale": { + "type": "string", + "description": "Custom email template locale. If left empty, the fallback locale (en) will be used.", + "x-example": "af", + "enum": [ + "af", + "ar-ae", + "ar-bh", + "ar-dz", + "ar-eg", + "ar-iq", + "ar-jo", + "ar-kw", + "ar-lb", + "ar-ly", + "ar-ma", + "ar-om", + "ar-qa", + "ar-sa", + "ar-sy", + "ar-tn", + "ar-ye", + "as", + "az", + "be", + "bg", + "bh", + "bn", + "bs", + "ca", + "cs", + "cy", + "da", + "de", + "de-at", + "de-ch", + "de-li", + "de-lu", + "el", + "en", + "en-au", + "en-bz", + "en-ca", + "en-gb", + "en-ie", + "en-jm", + "en-nz", + "en-tt", + "en-us", + "en-za", + "eo", + "es", + "es-ar", + "es-bo", + "es-cl", + "es-co", + "es-cr", + "es-do", + "es-ec", + "es-gt", + "es-hn", + "es-mx", + "es-ni", + "es-pa", + "es-pe", + "es-pr", + "es-py", + "es-sv", + "es-uy", + "es-ve", + "et", + "eu", + "fa", + "fi", + "fo", + "fr", + "fr-be", + "fr-ca", + "fr-ch", + "fr-lu", + "ga", + "gd", + "he", + "hi", + "hr", + "hu", + "id", + "is", + "it", + "it-ch", + "ja", + "ji", + "ko", + "ku", + "lt", + "lv", + "mk", + "ml", + "ms", + "mt", + "nb", + "ne", + "nl", + "nl-be", + "nn", + "no", + "pa", + "pl", + "pt", + "pt-br", + "rm", + "ro", + "ro-md", + "ru", + "ru-md", + "sb", + "sk", + "sl", + "sq", + "sr", + "sv", + "sv-fi", + "th", + "tn", + "tr", + "ts", + "ua", + "ur", + "ve", + "vi", + "xh", + "zh-cn", + "zh-hk", + "zh-sg", + "zh-tw", + "zu" + ], + "x-enum-name": "ProjectEmailTemplateLocale", + "x-enum-keys": [ + "af", + "ar-ae", + "ar-bh", + "ar-dz", + "ar-eg", + "ar-iq", + "ar-jo", + "ar-kw", + "ar-lb", + "ar-ly", + "ar-ma", + "ar-om", + "ar-qa", + "ar-sa", + "ar-sy", + "ar-tn", + "ar-ye", + "as", + "az", + "be", + "bg", + "bh", + "bn", + "bs", + "ca", + "cs", + "cy", + "da", + "de", + "de-at", + "de-ch", + "de-li", + "de-lu", + "el", + "en", + "en-au", + "en-bz", + "en-ca", + "en-gb", + "en-ie", + "en-jm", + "en-nz", + "en-tt", + "en-us", + "en-za", + "eo", + "es", + "es-ar", + "es-bo", + "es-cl", + "es-co", + "es-cr", + "es-do", + "es-ec", + "es-gt", + "es-hn", + "es-mx", + "es-ni", + "es-pa", + "es-pe", + "es-pr", + "es-py", + "es-sv", + "es-uy", + "es-ve", + "et", + "eu", + "fa", + "fi", + "fo", + "fr", + "fr-be", + "fr-ca", + "fr-ch", + "fr-lu", + "ga", + "gd", + "he", + "hi", + "hr", + "hu", + "id", + "is", + "it", + "it-ch", + "ja", + "ji", + "ko", + "ku", + "lt", + "lv", + "mk", + "ml", + "ms", + "mt", + "nb", + "ne", + "nl", + "nl-be", + "nn", + "no", + "pa", + "pl", + "pt", + "pt-br", + "rm", + "ro", + "ro-md", + "ru", + "ru-md", + "sb", + "sk", + "sl", + "sq", + "sr", + "sv", + "sv-fi", + "th", + "tn", + "tr", + "ts", + "ua", + "ur", + "ve", + "vi", + "xh", + "zh-cn", + "zh-hk", + "zh-sg", + "zh-tw", + "zu" + ] }, - "userPhone": { - "type": "boolean", - "description": "Set to true if you want make user phone number visible to all team members, or false to hide it.", - "x-example": false + "subject": { + "type": "string", + "description": "Subject of the email template. Can be up to 255 characters.", + "x-example": "<SUBJECT>", + "x-nullable": true }, - "userName": { - "type": "boolean", - "description": "Set to true if you want make user name visible to all team members, or false to hide it.", - "x-example": false + "message": { + "type": "string", + "description": "Plain or HTML body of the email template message. Can be up to 10MB of content.", + "x-example": "<MESSAGE>", + "x-nullable": true }, - "userMFA": { - "type": "boolean", - "description": "Set to true if you want make user MFA status visible to all team members, or false to hide it.", - "x-example": false + "senderName": { + "type": "string", + "description": "Name of the email sender.", + "x-example": "<SENDER_NAME>", + "x-nullable": true }, - "userAccessedAt": { - "type": "boolean", - "description": "Set to true if you want make user last access time visible to all team members, or false to hide it.", - "x-example": false + "senderEmail": { + "type": "string", + "description": "Email of the sender. Pass an empty string to clear a previously set value.", + "x-example": "email@example.com", + "format": "email", + "x-nullable": true + }, + "replyToEmail": { + "type": "string", + "description": "Reply to email. Pass an empty string to clear a previously set value.", + "x-example": "email@example.com", + "format": "email", + "x-nullable": true + }, + "replyToName": { + "type": "string", + "description": "Reply to name.", + "x-example": "<REPLY_TO_NAME>", + "x-nullable": true } - } + }, + "required": [ + "templateId" + ] } } } } } }, - "\/project\/policies\/password-dictionary": { - "patch": { - "summary": "Update password dictionary policy", - "operationId": "projectUpdatePasswordDictionaryPolicy", + "\/project\/templates\/email\/{templateId}": { + "get": { + "summary": "Get project email template", + "operationId": "projectGetEmailTemplate", "tags": [ "project" ], - "description": "Updating this policy allows you to control if new passwords are checked against most common passwords dictionary. When enabled, and user changes their password, password must not be contained in the dictionary.", + "description": "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": "Project", + "description": "EmailTemplate", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/project" + "$ref": "#\/components\/schemas\/emailTemplate" } } } @@ -63511,18 +64278,15 @@ }, "deprecated": false, "x-appwrite": { - "method": "updatePasswordDictionaryPolicy", - "group": "policies", + "method": "getEmailTemplate", + "group": "templates", "cookies": false, "type": "", - "demo": "project\/update-password-dictionary-policy.md", + "demo": "project\/get-email-template.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": [ - "policies.write", - "project.policies.write" - ], + "scope": "templates.read", "platforms": [ "console", "server" @@ -63539,42 +64303,331 @@ "Key": [] } ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "enabled": { - "type": "boolean", - "description": "Toggle password dictionary policy. Set to true if you want password change to block passwords in the dictionary, or false to allow them. When changing this policy, existing passwords remain valid.", - "x-example": false - } - }, - "required": [ - "enabled" - ] - } - } - } - } - } - }, - "\/project\/policies\/password-history": { - "patch": { - "summary": "Update password history policy", - "operationId": "projectUpdatePasswordHistoryPolicy", - "tags": [ - "project" + "parameters": [ + { + "name": "templateId", + "description": "Custom email template type. Can be one of: verification, magicSession, recovery, invitation, mfaChallenge, sessionAlert, otpSession", + "required": true, + "schema": { + "type": "string", + "x-example": "verification", + "enum": [ + "verification", + "magicSession", + "recovery", + "invitation", + "mfaChallenge", + "sessionAlert", + "otpSession" + ], + "x-enum-name": "ProjectEmailTemplateId", + "x-enum-keys": [ + "verification", + "magicSession", + "recovery", + "invitation", + "mfaChallenge", + "sessionAlert", + "otpSession" + ] + }, + "in": "path" + }, + { + "name": "locale", + "description": "Custom email template locale. If left empty, the fallback locale (en) will be used.", + "required": false, + "schema": { + "type": "string", + "x-example": "af", + "enum": [ + "af", + "ar-ae", + "ar-bh", + "ar-dz", + "ar-eg", + "ar-iq", + "ar-jo", + "ar-kw", + "ar-lb", + "ar-ly", + "ar-ma", + "ar-om", + "ar-qa", + "ar-sa", + "ar-sy", + "ar-tn", + "ar-ye", + "as", + "az", + "be", + "bg", + "bh", + "bn", + "bs", + "ca", + "cs", + "cy", + "da", + "de", + "de-at", + "de-ch", + "de-li", + "de-lu", + "el", + "en", + "en-au", + "en-bz", + "en-ca", + "en-gb", + "en-ie", + "en-jm", + "en-nz", + "en-tt", + "en-us", + "en-za", + "eo", + "es", + "es-ar", + "es-bo", + "es-cl", + "es-co", + "es-cr", + "es-do", + "es-ec", + "es-gt", + "es-hn", + "es-mx", + "es-ni", + "es-pa", + "es-pe", + "es-pr", + "es-py", + "es-sv", + "es-uy", + "es-ve", + "et", + "eu", + "fa", + "fi", + "fo", + "fr", + "fr-be", + "fr-ca", + "fr-ch", + "fr-lu", + "ga", + "gd", + "he", + "hi", + "hr", + "hu", + "id", + "is", + "it", + "it-ch", + "ja", + "ji", + "ko", + "ku", + "lt", + "lv", + "mk", + "ml", + "ms", + "mt", + "nb", + "ne", + "nl", + "nl-be", + "nn", + "no", + "pa", + "pl", + "pt", + "pt-br", + "rm", + "ro", + "ro-md", + "ru", + "ru-md", + "sb", + "sk", + "sl", + "sq", + "sr", + "sv", + "sv-fi", + "th", + "tn", + "tr", + "ts", + "ua", + "ur", + "ve", + "vi", + "xh", + "zh-cn", + "zh-hk", + "zh-sg", + "zh-tw", + "zu" + ], + "x-enum-name": "ProjectEmailTemplateLocale", + "x-enum-keys": [ + "af", + "ar-ae", + "ar-bh", + "ar-dz", + "ar-eg", + "ar-iq", + "ar-jo", + "ar-kw", + "ar-lb", + "ar-ly", + "ar-ma", + "ar-om", + "ar-qa", + "ar-sa", + "ar-sy", + "ar-tn", + "ar-ye", + "as", + "az", + "be", + "bg", + "bh", + "bn", + "bs", + "ca", + "cs", + "cy", + "da", + "de", + "de-at", + "de-ch", + "de-li", + "de-lu", + "el", + "en", + "en-au", + "en-bz", + "en-ca", + "en-gb", + "en-ie", + "en-jm", + "en-nz", + "en-tt", + "en-us", + "en-za", + "eo", + "es", + "es-ar", + "es-bo", + "es-cl", + "es-co", + "es-cr", + "es-do", + "es-ec", + "es-gt", + "es-hn", + "es-mx", + "es-ni", + "es-pa", + "es-pe", + "es-pr", + "es-py", + "es-sv", + "es-uy", + "es-ve", + "et", + "eu", + "fa", + "fi", + "fo", + "fr", + "fr-be", + "fr-ca", + "fr-ch", + "fr-lu", + "ga", + "gd", + "he", + "hi", + "hr", + "hu", + "id", + "is", + "it", + "it-ch", + "ja", + "ji", + "ko", + "ku", + "lt", + "lv", + "mk", + "ml", + "ms", + "mt", + "nb", + "ne", + "nl", + "nl-be", + "nn", + "no", + "pa", + "pl", + "pt", + "pt-br", + "rm", + "ro", + "ro-md", + "ru", + "ru-md", + "sb", + "sk", + "sl", + "sq", + "sr", + "sv", + "sv-fi", + "th", + "tn", + "tr", + "ts", + "ua", + "ur", + "ve", + "vi", + "xh", + "zh-cn", + "zh-hk", + "zh-sg", + "zh-tw", + "zu" + ] + }, + "in": "query" + } + ] + } + }, + "\/project\/usage": { + "get": { + "summary": "Get project usage stats", + "operationId": "projectGetUsage", + "tags": [ + "project" ], - "description": "Updates one of password strength policies. Based on total length configured, previous password hashes are stored, and users cannot choose a new password that is already stored in the passwird history list, when updating an user password, or setting new one through password recovery.\n\nKeep in mind, while password history policy is disabled, the history is not being stored. Enabling the policy will not have any history on existing users, and it will only start to collect and enforce the policy on password changes since the policy is enabled.", + "description": "Get comprehensive usage statistics for your project. View metrics including network requests, bandwidth, storage, function executions, database usage, and user activity. Specify a time range with startDate and endDate, and optionally set the data granularity with period (1h or 1d). The response includes both total counts and detailed breakdowns by resource, along with historical data over the specified period.", "responses": { "200": { "description": "Project", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/project" + "$ref": "#\/components\/schemas\/usageProject" } } } @@ -63582,72 +64635,91 @@ }, "deprecated": false, "x-appwrite": { - "method": "updatePasswordHistoryPolicy", - "group": "policies", + "method": "getUsage", + "group": null, "cookies": false, "type": "", - "demo": "project\/update-password-history-policy.md", + "demo": "project\/get-usage.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": [ - "policies.write", - "project.policies.write" - ], + "scope": "projects.read", "platforms": [ - "console", - "server" + "console" ], "packaging": false, "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/project\/get-usage.md", "auth": { "Project": [] } }, "security": [ { - "Project": [], - "Key": [] + "Project": [] } ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "total": { - "type": "integer", - "description": "Set the password history length per user. Value can be between 1 and 5000, or null to disable the limit.", - "x-example": 1, - "format": "int32", - "x-nullable": true - } - }, - "required": [ - "total" - ] - } - } + "parameters": [ + { + "name": "startDate", + "description": "Starting date for the usage", + "required": true, + "schema": { + "type": "string", + "format": "datetime", + "x-example": "2020-10-15T06:38:00.000+00:00" + }, + "in": "query" + }, + { + "name": "endDate", + "description": "End date for the usage", + "required": true, + "schema": { + "type": "string", + "format": "datetime", + "x-example": "2020-10-15T06:38:00.000+00:00" + }, + "in": "query" + }, + { + "name": "period", + "description": "Period used", + "required": false, + "schema": { + "type": "string", + "x-example": "1h", + "enum": [ + "1h", + "1d" + ], + "x-enum-name": "ProjectUsageRange", + "x-enum-keys": [ + "OneHour", + "OneDay" + ], + "default": "1d" + }, + "in": "query" } - } + ] } }, - "\/project\/policies\/password-personal-data": { - "patch": { - "summary": "Update password personal data policy", - "operationId": "projectUpdatePasswordPersonalDataPolicy", + "\/project\/variables": { + "get": { + "summary": "List project variables", + "operationId": "projectListVariables", "tags": [ "project" ], - "description": "Updating this policy allows you to control if password strength is checked against personal data. When enabled, and user sets or changes their password, the password must not contain user ID, name, email or phone number.", + "description": "Get a list of all project environment variables.", "responses": { "200": { - "description": "Project", + "description": "Variables List", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/project" + "$ref": "#\/components\/schemas\/variableList" } } } @@ -63655,18 +64727,15 @@ }, "deprecated": false, "x-appwrite": { - "method": "updatePasswordPersonalDataPolicy", - "group": "policies", + "method": "listVariables", + "group": "variables", "cookies": false, "type": "", - "demo": "project\/update-password-personal-data-policy.md", + "demo": "project\/list-variables.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": [ - "policies.write", - "project.policies.write" - ], + "scope": "project.read", "platforms": [ "console", "server" @@ -63683,42 +64752,47 @@ "Key": [] } ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "enabled": { - "type": "boolean", - "description": "Toggle password personal data policy. Set to true if you want to block passwords including user's personal data, or false to allow it. When changing this policy, existing passwords remain valid.", - "x-example": false - } - }, - "required": [ - "enabled" - ] - } - } + "parameters": [ + { + "name": "queries", + "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/queries). Maximum of 100 queries are allowed, each 4096 characters long. You may filter on the following attributes: key, resourceType, resourceId, secret", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string" + }, + "default": [] + }, + "in": "query" + }, + { + "name": "total", + "description": "When set to false, the total count returned will be 0 and will not be calculated.", + "required": false, + "schema": { + "type": "boolean", + "x-example": false, + "default": true + }, + "in": "query" } - } - } - }, - "\/project\/policies\/password-strength": { - "patch": { - "summary": "Update password strength policy", - "operationId": "projectUpdatePasswordStrengthPolicy", + ] + }, + "post": { + "summary": "Create project variable", + "operationId": "projectCreateVariable", "tags": [ "project" ], - "description": "Update the password strength requirements for users in the project.", + "description": "Create a new project environment variable. These variables can be accessed by all functions and sites in the project.", "responses": { - "200": { - "description": "Policy Password Strength", + "201": { + "description": "Variable", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/policyPasswordStrength" + "$ref": "#\/components\/schemas\/variable" } } } @@ -63726,18 +64800,15 @@ }, "deprecated": false, "x-appwrite": { - "method": "updatePasswordStrengthPolicy", - "group": "policies", + "method": "createVariable", + "group": "variables", "cookies": false, "type": "", - "demo": "project\/update-password-strength-policy.md", + "demo": "project\/create-variable.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": [ - "policies.write", - "project.policies.write" - ], + "scope": "project.write", "platforms": [ "console", "server" @@ -63760,103 +64831,35 @@ "schema": { "type": "object", "properties": { - "min": { - "type": "integer", - "description": "Minimum password length. Value must be between 8 and 256. Default is 8.", - "x-example": 8, - "format": "int32" + "variableId": { + "type": "string", + "description": "Variable unique ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.", + "x-example": "<VARIABLE_ID>", + "x-appwrite": { + "idGenerator": "ID.unique" + } }, - "uppercase": { - "type": "boolean", - "description": "Whether passwords must include at least one uppercase letter.", - "x-example": false - }, - "lowercase": { - "type": "boolean", - "description": "Whether passwords must include at least one lowercase letter.", - "x-example": false + "key": { + "type": "string", + "description": "Variable key. Max length: 255 chars.", + "x-example": "<KEY>" }, - "number": { - "type": "boolean", - "description": "Whether passwords must include at least one number.", - "x-example": false + "value": { + "type": "string", + "description": "Variable value. Max length: 8192 chars.", + "x-example": "<VALUE>" }, - "symbols": { - "type": "boolean", - "description": "Whether passwords must include at least one symbol.", - "x-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": { - "method": "updateSessionAlertPolicy", - "group": "policies", - "cookies": false, - "type": "", - "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": { + "secret": { "type": "boolean", - "description": "Toggle session alert policy. Set to true if you want users to receive email notifications when a sessions are created for their users, or false to not send email alerts.", + "description": "Secret variables can be updated or deleted, but only projects can read them during build and runtime.", + "default": true, "x-example": false } }, "required": [ - "enabled" + "variableId", + "key", + "value" ] } } @@ -63864,21 +64867,21 @@ } } }, - "\/project\/policies\/session-duration": { - "patch": { - "summary": "Update session duration policy", - "operationId": "projectUpdateSessionDurationPolicy", + "\/project\/variables\/{variableId}": { + "get": { + "summary": "Get project variable", + "operationId": "projectGetVariable", "tags": [ "project" ], - "description": "Update maximum duration how long sessions created within a project should stay active for.", + "description": "Get a variable by its unique ID. ", "responses": { "200": { - "description": "Project", + "description": "Variable", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/project" + "$ref": "#\/components\/schemas\/variable" } } } @@ -63886,18 +64889,15 @@ }, "deprecated": false, "x-appwrite": { - "method": "updateSessionDurationPolicy", - "group": "policies", + "method": "getVariable", + "group": "variables", "cookies": false, "type": "", - "demo": "project\/update-session-duration-policy.md", + "demo": "project\/get-variable.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": [ - "policies.write", - "project.policies.write" - ], + "scope": "project.read", "platforms": [ "console", "server" @@ -63914,43 +64914,33 @@ "Key": [] } ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "duration": { - "type": "integer", - "description": "Maximum session length in seconds. Minium allowed value is 5 second, and maximum is 1 year, which is 31536000 seconds.", - "x-example": 5, - "format": "int32" - } - }, - "required": [ - "duration" - ] - } - } + "parameters": [ + { + "name": "variableId", + "description": "Variable unique ID.", + "required": true, + "schema": { + "type": "string", + "x-example": "<VARIABLE_ID>" + }, + "in": "path" } - } - } - }, - "\/project\/policies\/session-invalidation": { - "patch": { - "summary": "Update session invalidation policy", - "operationId": "projectUpdateSessionInvalidationPolicy", + ] + }, + "put": { + "summary": "Update project variable", + "operationId": "projectUpdateVariable", "tags": [ "project" ], - "description": "Updating this policy allows you to control if existing sessions should be invalidated when a password of a user is changed. When enabled, and user changes their password, they will be logged out of all their devices.", + "description": "Update variable by its unique ID.", "responses": { "200": { - "description": "Project", + "description": "Variable", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/project" + "$ref": "#\/components\/schemas\/variable" } } } @@ -63958,18 +64948,15 @@ }, "deprecated": false, "x-appwrite": { - "method": "updateSessionInvalidationPolicy", - "group": "policies", + "method": "updateVariable", + "group": "variables", "cookies": false, "type": "", - "demo": "project\/update-session-invalidation-policy.md", + "demo": "project\/update-variable.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": [ - "policies.write", - "project.policies.write" - ], + "scope": "project.write", "platforms": [ "console", "server" @@ -63986,61 +64973,71 @@ "Key": [] } ], + "parameters": [ + { + "name": "variableId", + "description": "Variable unique ID.", + "required": true, + "schema": { + "type": "string", + "x-example": "<VARIABLE_ID>" + }, + "in": "path" + } + ], "requestBody": { "content": { "application\/json": { "schema": { "type": "object", "properties": { - "enabled": { + "key": { + "type": "string", + "description": "Variable key. Max length: 255 chars.", + "x-example": "<KEY>", + "x-nullable": true + }, + "value": { + "type": "string", + "description": "Variable value. Max length: 8192 chars.", + "x-example": "<VALUE>", + "x-nullable": true + }, + "secret": { "type": "boolean", - "description": "Toggle session invalidation policy. Set to true if you want password change to invalidate all sessions of an user, or false to keep sessions active.", - "x-example": false + "description": "Secret variables can be updated or deleted, but only projects can read them during build and runtime.", + "x-example": false, + "x-nullable": true } - }, - "required": [ - "enabled" - ] + } } } } } - } - }, - "\/project\/policies\/session-limit": { - "patch": { - "summary": "Update session limit policy", - "operationId": "projectUpdateSessionLimitPolicy", + }, + "delete": { + "summary": "Delete project variable", + "operationId": "projectDeleteVariable", "tags": [ "project" ], - "description": "Update the maximum number of sessions allowed per user. When the limit is hit, the oldest session will be deleted to make room for new one.", + "description": "Delete a variable by its unique ID. ", "responses": { - "200": { - "description": "Project", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/project" - } - } - } + "204": { + "description": "No content" } }, "deprecated": false, "x-appwrite": { - "method": "updateSessionLimitPolicy", - "group": "policies", + "method": "deleteVariable", + "group": "variables", "cookies": false, "type": "", - "demo": "project\/update-session-limit-policy.md", + "demo": "project\/delete-variable.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": [ - "policies.write", - "project.policies.write" - ], + "scope": "project.write", "platforms": [ "console", "server" @@ -64057,44 +65054,35 @@ "Key": [] } ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "total": { - "type": "integer", - "description": "Set the maximum number of sessions allowed per user. Value can be between 1 and 5000, or null to disable the limit.", - "x-example": 1, - "format": "int32", - "x-nullable": true - } - }, - "required": [ - "total" - ] - } - } + "parameters": [ + { + "name": "variableId", + "description": "Variable unique ID.", + "required": true, + "schema": { + "type": "string", + "x-example": "<VARIABLE_ID>" + }, + "in": "path" } - } + ] } }, - "\/project\/policies\/user-limit": { - "patch": { - "summary": "Update user limit policy", - "operationId": "projectUpdateUserLimitPolicy", + "\/projects\/{projectId}\/addons": { + "get": { + "summary": "List project addons", + "operationId": "projectsListAddons", "tags": [ - "project" + "projects" ], - "description": "Update the maximum number of users in the project. When the limit is hit or amount of existing users already exceeded the limit, all users remain active, but new user sign up will be prohibited.", + "description": "List all billing addons for a project.\n", "responses": { "200": { - "description": "Project", + "description": "Addons list", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/project" + "$ref": "#\/components\/schemas\/addonList" } } } @@ -64102,134 +65090,59 @@ }, "deprecated": false, "x-appwrite": { - "method": "updateUserLimitPolicy", - "group": "policies", + "method": "listAddons", + "group": null, "cookies": false, "type": "", - "demo": "project\/update-user-limit-policy.md", + "demo": "projects\/list-addons.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": [ - "policies.write", - "project.policies.write" - ], + "scope": "projects.read", "platforms": [ - "console", - "server" + "console" ], "packaging": false, "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/projects\/list-addons.md", "auth": { "Project": [] } }, "security": [ { - "Project": [], - "Key": [] + "Project": [] } ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "total": { - "type": "integer", - "description": "Set the maximum number of users allowed in the project. Value can be between 1 and 5000, or null to disable the limit.", - "x-example": 1, - "format": "int32", - "x-nullable": true - } - }, - "required": [ - "total" - ] - } - } + "parameters": [ + { + "name": "projectId", + "description": "Project ID", + "required": true, + "schema": { + "type": "string", + "x-example": "<PROJECT_ID>" + }, + "in": "path" } - } + ] } }, - "\/project\/policies\/{policyId}": { - "get": { - "summary": "Get project policy", - "operationId": "projectGetPolicy", + "\/projects\/{projectId}\/addons\/premium-geo-db": { + "post": { + "summary": "Create Premium Geo DB addon for project", + "operationId": "projectsCreatePremiumGeoDBAddon", "tags": [ - "project" + "projects" ], - "description": "Get a policy by its unique ID. This endpoint returns the current configuration for the requested project policy.", + "description": "Create a Premium Geo DB addon for a project.\n", "responses": { - "200": { - "description": "Policy Password Dictionary, or Policy Password History, or Policy Password Strength, or Policy Password Personal Data, or Policy Session Alert, or Policy Session Duration, or Policy Session Invalidation, or Policy Session Limit, or Policy User Limit, or Policy Membership Privacy, or Policy Deny Aliased Email, or Policy Deny Disposable Email, or Policy Deny Free Email, or Policy Deny Corporate Email", + "201": { + "description": "Addon", "content": { "application\/json": { "schema": { - "oneOf": [ - { - "$ref": "#\/components\/schemas\/policyPasswordDictionary" - }, - { - "$ref": "#\/components\/schemas\/policyPasswordHistory" - }, - { - "$ref": "#\/components\/schemas\/policyPasswordStrength" - }, - { - "$ref": "#\/components\/schemas\/policyPasswordPersonalData" - }, - { - "$ref": "#\/components\/schemas\/policySessionAlert" - }, - { - "$ref": "#\/components\/schemas\/policySessionDuration" - }, - { - "$ref": "#\/components\/schemas\/policySessionInvalidation" - }, - { - "$ref": "#\/components\/schemas\/policySessionLimit" - }, - { - "$ref": "#\/components\/schemas\/policyUserLimit" - }, - { - "$ref": "#\/components\/schemas\/policyMembershipPrivacy" - }, - { - "$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", - "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", - "deny-aliased-email": "#\/components\/schemas\/policyDenyAliasedEmail", - "deny-disposable-email": "#\/components\/schemas\/policyDenyDisposableEmail", - "deny-free-email": "#\/components\/schemas\/policyDenyFreeEmail", - "deny-corporate-email": "#\/components\/schemas\/policyDenyCorporateEmail" - } - } + "$ref": "#\/components\/schemas\/addon" } } } @@ -64237,96 +65150,59 @@ }, "deprecated": false, "x-appwrite": { - "method": "getPolicy", - "group": "policies", + "method": "createPremiumGeoDBAddon", + "group": null, "cookies": false, "type": "", - "demo": "project\/get-policy.md", - "rate-limit": 0, + "demo": "projects\/create-premium-geo-db-addon.md", + "rate-limit": 10, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": [ - "policies.read", - "project.policies.read" - ], + "scope": "projects.write", "platforms": [ - "console", - "server" + "console" ], "packaging": false, "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/projects\/create-premium-geo-db-addon.md", "auth": { "Project": [] } }, "security": [ { - "Project": [], - "Key": [] + "Project": [] } ], "parameters": [ { - "name": "policyId", - "description": "Policy ID. Can be one of: password-dictionary, password-history, password-strength, password-personal-data, session-alert, session-duration, session-invalidation, session-limit, user-limit, membership-privacy, deny-aliased-email, deny-disposable-email, deny-free-email, deny-corporate-email.", + "name": "projectId", + "description": "Project ID", "required": true, "schema": { "type": "string", - "x-example": "password-dictionary", - "enum": [ - "password-dictionary", - "password-history", - "password-strength", - "password-personal-data", - "session-alert", - "session-duration", - "session-invalidation", - "session-limit", - "user-limit", - "membership-privacy", - "deny-aliased-email", - "deny-disposable-email", - "deny-free-email", - "deny-corporate-email" - ], - "x-enum-name": "ProjectPolicyId", - "x-enum-keys": [ - "password-dictionary", - "password-history", - "password-strength", - "password-personal-data", - "session-alert", - "session-duration", - "session-invalidation", - "session-limit", - "user-limit", - "membership-privacy", - "deny-aliased-email", - "deny-disposable-email", - "deny-free-email", - "deny-corporate-email" - ] + "x-example": "<PROJECT_ID>" }, "in": "path" } ] } }, - "\/project\/protocols\/{protocolId}": { - "patch": { - "summary": "Update project protocol", - "operationId": "projectUpdateProtocol", + "\/projects\/{projectId}\/addons\/{addonId}": { + "get": { + "summary": "Get project addon", + "operationId": "projectsGetAddon", "tags": [ - "project" + "projects" ], - "description": "Update properties of a specific protocol. Use this endpoint to enable or disable a protocol in your project. ", + "description": "Get the details of a billing addon for a project.\n", "responses": { "200": { - "description": "Project", + "description": "Addon", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/project" + "$ref": "#\/components\/schemas\/addon" } } } @@ -64334,90 +65210,133 @@ }, "deprecated": false, "x-appwrite": { - "method": "updateProtocol", + "method": "getAddon", "group": null, "cookies": false, "type": "", - "demo": "project\/update-protocol.md", + "demo": "projects\/get-addon.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "project.write", + "scope": "projects.read", "platforms": [ - "console", - "server" + "console" ], "packaging": false, "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/projects\/get-addon.md", "auth": { "Project": [] } }, "security": [ { - "Project": [], - "Key": [] + "Project": [] } ], "parameters": [ { - "name": "protocolId", - "description": "Protocol name. Can be one of: rest, graphql, websocket", + "name": "projectId", + "description": "Project ID", "required": true, "schema": { "type": "string", - "x-example": "rest", - "enum": [ - "rest", - "graphql", - "websocket" - ], - "x-enum-name": "ProjectProtocolId", - "x-enum-keys": [ - "rest", - "graphql", - "websocket" - ] + "x-example": "<PROJECT_ID>" + }, + "in": "path" + }, + { + "name": "addonId", + "description": "Addon ID", + "required": true, + "schema": { + "type": "string", + "x-example": "<ADDON_ID>" }, "in": "path" } + ] + }, + "delete": { + "summary": "Delete project addon", + "operationId": "projectsDeleteAddon", + "tags": [ + "projects" ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "enabled": { - "type": "boolean", - "description": "Protocol status.", - "x-example": false - } - }, - "required": [ - "enabled" - ] - } - } + "description": "Delete a billing addon for a project.\n", + "responses": { + "204": { + "description": "No content" } - } + }, + "deprecated": false, + "x-appwrite": { + "method": "deleteAddon", + "group": null, + "cookies": false, + "type": "", + "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, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/projects\/delete-addon.md", + "produces": [ + "application\/json" + ], + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [] + } + ], + "parameters": [ + { + "name": "projectId", + "description": "Project ID", + "required": true, + "schema": { + "type": "string", + "x-example": "<PROJECT_ID>" + }, + "in": "path" + }, + { + "name": "addonId", + "description": "Addon ID", + "required": true, + "schema": { + "type": "string", + "x-example": "<ADDON_ID>" + }, + "in": "path" + } + ] } }, - "\/project\/services\/{serviceId}": { - "patch": { - "summary": "Update project service", - "operationId": "projectUpdateService", + "\/projects\/{projectId}\/addons\/{addonId}\/confirmations": { + "post": { + "summary": "Confirm project addon payment after 3DS authentication", + "operationId": "projectsConfirmAddonPayment", "tags": [ - "project" + "projects" ], - "description": "Update properties of a specific service. Use this endpoint to enable or disable a service in your project. ", + "description": "Confirm payment for a billing addon for a project.\n", "responses": { "200": { - "description": "Project", + "description": "Addon", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/project" + "$ref": "#\/components\/schemas\/addon" } } } @@ -64425,122 +65344,69 @@ }, "deprecated": false, "x-appwrite": { - "method": "updateService", + "method": "confirmAddonPayment", "group": null, "cookies": false, "type": "", - "demo": "project\/update-service.md", - "rate-limit": 0, + "demo": "projects\/confirm-addon-payment.md", + "rate-limit": 10, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "project.write", + "scope": "projects.write", "platforms": [ - "console", - "server" + "console" ], "packaging": false, "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/projects\/confirm-addon-payment.md", "auth": { "Project": [] } }, "security": [ { - "Project": [], - "Key": [] + "Project": [] } ], "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", + "name": "projectId", + "description": "Project ID", "required": true, "schema": { "type": "string", - "x-example": "account", - "enum": [ - "account", - "avatars", - "databases", - "tablesdb", - "locale", - "health", - "project", - "storage", - "teams", - "users", - "vcs", - "sites", - "functions", - "proxy", - "graphql", - "migrations", - "messaging", - "advisor", - "oauth2" - ], - "x-enum-name": "ProjectServiceId", - "x-enum-keys": [ - "account", - "avatars", - "databases", - "tablesdb", - "locale", - "health", - "project", - "storage", - "teams", - "users", - "vcs", - "sites", - "functions", - "proxy", - "graphql", - "migrations", - "messaging", - "advisor", - "oauth2" - ] + "x-example": "<PROJECT_ID>" + }, + "in": "path" + }, + { + "name": "addonId", + "description": "Addon ID", + "required": true, + "schema": { + "type": "string", + "x-example": "<ADDON_ID>" }, "in": "path" } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "enabled": { - "type": "boolean", - "description": "Service status.", - "x-example": false - } - }, - "required": [ - "enabled" - ] - } - } - } - } + ] } }, - "\/project\/smtp": { - "patch": { - "summary": "Update project SMTP configuration", - "operationId": "projectUpdateSMTP", + "\/projects\/{projectId}\/addons\/{addon}\/price": { + "get": { + "summary": "Get project addon price", + "operationId": "projectsGetAddonPrice", "tags": [ - "project" + "projects" ], - "description": "Update the SMTP configuration for your project. Use this endpoint to configure your project's SMTP provider with your custom settings for sending transactional emails.", + "description": "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": "Project", + "description": "AddonPrice", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/project" + "$ref": "#\/components\/schemas\/addonPrice" } } } @@ -64548,125 +65414,62 @@ }, "deprecated": false, "x-appwrite": { - "method": "updateSMTP", - "group": "smtp", + "method": "getAddonPrice", + "group": null, "cookies": false, "type": "", - "demo": "project\/update-smtp.md", + "demo": "projects\/get-addon-price.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "project.write", + "scope": "projects.read", "platforms": [ - "console", - "server" + "console" ], "packaging": false, "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/projects\/get-addon-price.md", "auth": { "Project": [] } }, "security": [ { - "Project": [], - "Key": [] + "Project": [] } ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "host": { - "type": "string", - "description": "SMTP server hostname (domain)", - "x-example": null, - "x-nullable": true - }, - "port": { - "type": "integer", - "description": "SMTP server port", - "x-example": null, - "format": "int32", - "x-nullable": true - }, - "username": { - "type": "string", - "description": "SMTP server username. Pass an empty string to clear a previously set value.", - "x-example": "<USERNAME>", - "x-nullable": true - }, - "password": { - "type": "string", - "description": "SMTP server password. Pass an empty string to clear a previously set value. This property is stored securely and cannot be read in future (write-only).", - "x-example": "password", - "format": "password", - "x-nullable": true - }, - "senderEmail": { - "type": "string", - "description": "Email address shown in inbox as the sender of the email. Pass an empty string to clear a previously set value.", - "x-example": "email@example.com", - "format": "email", - "x-nullable": true - }, - "senderName": { - "type": "string", - "description": "Name shown in inbox as the sender of the email. Pass an empty string to clear a previously set value.", - "x-example": "<SENDER_NAME>", - "x-nullable": true - }, - "replyToEmail": { - "type": "string", - "description": "Email used when user replies to the email. Pass an empty string to clear a previously set value.", - "x-example": "email@example.com", - "format": "email", - "x-nullable": true - }, - "replyToName": { - "type": "string", - "description": "Name used when user replies to the email. Pass an empty string to clear a previously set value.", - "x-example": "<REPLY_TO_NAME>", - "x-nullable": true - }, - "secure": { - "type": "string", - "description": "Configures if communication with SMTP server is encrypted. Allowed values are: tls, ssl. Leave empty for no encryption.", - "x-example": "tls", - "enum": [ - "tls", - "ssl" - ], - "x-enum-name": "ProjectSMTPSecure", - "x-enum-keys": [ - "tls", - "ssl" - ], - "x-nullable": true - }, - "enabled": { - "type": "boolean", - "description": "Enable or disable custom SMTP. Custom SMTP is useful for branding purposes, but also allows use of custom email templates.", - "x-example": false, - "x-nullable": true - } - } - } - } + "parameters": [ + { + "name": "projectId", + "description": "Project ID", + "required": true, + "schema": { + "type": "string", + "x-example": "<PROJECT_ID>" + }, + "in": "path" + }, + { + "name": "addon", + "description": "Addon key identifier (e.g. premiumGeoDB).", + "required": true, + "schema": { + "type": "string", + "x-example": "baa" + }, + "in": "path" } - } + ] } }, - "\/project\/smtp\/tests": { - "post": { - "summary": "Create project SMTP test", - "operationId": "projectCreateSMTPTest", + "\/projects\/{projectId}\/console-access": { + "patch": { + "summary": "Record console access to a project", + "operationId": "projectsUpdateConsoleAccess", "tags": [ - "project" + "projects" ], - "description": "Send a test email to verify SMTP configuration. ", + "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" @@ -64674,70 +65477,62 @@ }, "deprecated": false, "x-appwrite": { - "method": "createSMTPTest", - "group": "smtp", + "method": "updateConsoleAccess", + "group": null, "cookies": false, "type": "", - "demo": "project\/create-smtp-test.md", + "demo": "projects\/update-console-access.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "project.write", + "scope": "projects.write", "platforms": [ - "console", - "server" + "console" ], "packaging": false, "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/projects\/update-console-access.md", + "produces": [ + "application\/json" + ], "auth": { "Project": [] } }, "security": [ { - "Project": [], - "Key": [] + "Project": [] } ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "emails": { - "type": "array", - "description": "Array of emails to send test email to. Maximum of 10 emails are allowed.", - "x-example": null, - "items": { - "type": "string" - } - } - }, - "required": [ - "emails" - ] - } - } + "parameters": [ + { + "name": "projectId", + "description": "Project ID", + "required": true, + "schema": { + "type": "string", + "x-example": "<PROJECT_ID>" + }, + "in": "path" } - } + ] } }, - "\/project\/templates\/email": { + "\/projects\/{projectId}\/dev-keys": { "get": { - "summary": "List project email templates", - "operationId": "projectListEmailTemplates", + "summary": "List dev keys", + "operationId": "projectsListDevKeys", "tags": [ - "project" + "projects" ], - "description": "Get a list of all custom email templates configured for the project. This endpoint returns an array of all configured email templates and their locales.", + "description": "List all the project\\'s dev keys. Dev keys are project specific and allow you to bypass rate limits and get better error logging during development.'", "responses": { "200": { - "description": "Email Templates List", + "description": "Dev Keys List", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/emailTemplateList" + "$ref": "#\/components\/schemas\/devKeyList" } } } @@ -64745,18 +65540,17 @@ }, "deprecated": false, "x-appwrite": { - "method": "listEmailTemplates", - "group": "templates", + "method": "listDevKeys", + "group": "devKeys", "cookies": false, "type": "", - "demo": "project\/list-email-templates.md", + "demo": "projects\/list-dev-keys.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "templates.read", + "scope": "devKeys.read", "platforms": [ - "console", - "server" + "console" ], "packaging": false, "public": true, @@ -64766,14 +65560,23 @@ }, "security": [ { - "Project": [], - "Key": [] + "Project": [] } ], "parameters": [ + { + "name": "projectId", + "description": "Project unique ID.", + "required": true, + "schema": { + "type": "string", + "x-example": "<PROJECT_ID>" + }, + "in": "path" + }, { "name": "queries", - "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/queries). Only supported methods are limit and offset", + "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/queries). Maximum of 100 queries are allowed, each 4096 characters long. You may filter on the following attributes: accessedAt, expire", "required": false, "schema": { "type": "array", @@ -64783,34 +65586,23 @@ "default": [] }, "in": "query" - }, - { - "name": "total", - "description": "When set to false, the total count returned will be 0 and will not be calculated.", - "required": false, - "schema": { - "type": "boolean", - "x-example": false, - "default": true - }, - "in": "query" } ] }, - "patch": { - "summary": "Update project email template", - "operationId": "projectUpdateEmailTemplate", + "post": { + "summary": "Create dev key", + "operationId": "projectsCreateDevKey", "tags": [ - "project" + "projects" ], - "description": "Update a custom email template for the specified locale and type. Use this endpoint to modify the content of your email templates.", + "description": "Create a new project dev key. Dev keys are project specific and allow you to bypass rate limits and get better error logging during development. Strictly meant for development purposes only.", "responses": { - "200": { - "description": "EmailTemplate", + "201": { + "description": "DevKey", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/emailTemplate" + "$ref": "#\/components\/schemas\/devKey" } } } @@ -64818,18 +65610,17 @@ }, "deprecated": false, "x-appwrite": { - "method": "updateEmailTemplate", - "group": "templates", + "method": "createDevKey", + "group": "devKeys", "cookies": false, "type": "", - "demo": "project\/update-email-template.md", + "demo": "projects\/create-dev-key.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "templates.write", + "scope": "devKeys.write", "platforms": [ - "console", - "server" + "console" ], "packaging": false, "public": true, @@ -64839,8 +65630,19 @@ }, "security": [ { - "Project": [], - "Key": [] + "Project": [] + } + ], + "parameters": [ + { + "name": "projectId", + "description": "Project unique ID.", + "required": true, + "schema": { + "type": "string", + "x-example": "<PROJECT_ID>" + }, + "in": "path" } ], "requestBody": { @@ -64849,343 +65651,21 @@ "schema": { "type": "object", "properties": { - "templateId": { + "name": { "type": "string", - "description": "Custom email template type. Can be one of: verification, magicSession, recovery, invitation, mfaChallenge, sessionAlert, otpSession", - "x-example": "verification", - "enum": [ - "verification", - "magicSession", - "recovery", - "invitation", - "mfaChallenge", - "sessionAlert", - "otpSession" - ], - "x-enum-name": "ProjectEmailTemplateId", - "x-enum-keys": [ - "verification", - "magicSession", - "recovery", - "invitation", - "mfaChallenge", - "sessionAlert", - "otpSession" - ] - }, - "locale": { - "type": "string", - "description": "Custom email template locale. If left empty, the fallback locale (en) will be used.", - "x-example": "af", - "enum": [ - "af", - "ar-ae", - "ar-bh", - "ar-dz", - "ar-eg", - "ar-iq", - "ar-jo", - "ar-kw", - "ar-lb", - "ar-ly", - "ar-ma", - "ar-om", - "ar-qa", - "ar-sa", - "ar-sy", - "ar-tn", - "ar-ye", - "as", - "az", - "be", - "bg", - "bh", - "bn", - "bs", - "ca", - "cs", - "cy", - "da", - "de", - "de-at", - "de-ch", - "de-li", - "de-lu", - "el", - "en", - "en-au", - "en-bz", - "en-ca", - "en-gb", - "en-ie", - "en-jm", - "en-nz", - "en-tt", - "en-us", - "en-za", - "eo", - "es", - "es-ar", - "es-bo", - "es-cl", - "es-co", - "es-cr", - "es-do", - "es-ec", - "es-gt", - "es-hn", - "es-mx", - "es-ni", - "es-pa", - "es-pe", - "es-pr", - "es-py", - "es-sv", - "es-uy", - "es-ve", - "et", - "eu", - "fa", - "fi", - "fo", - "fr", - "fr-be", - "fr-ca", - "fr-ch", - "fr-lu", - "ga", - "gd", - "he", - "hi", - "hr", - "hu", - "id", - "is", - "it", - "it-ch", - "ja", - "ji", - "ko", - "ku", - "lt", - "lv", - "mk", - "ml", - "ms", - "mt", - "nb", - "ne", - "nl", - "nl-be", - "nn", - "no", - "pa", - "pl", - "pt", - "pt-br", - "rm", - "ro", - "ro-md", - "ru", - "ru-md", - "sb", - "sk", - "sl", - "sq", - "sr", - "sv", - "sv-fi", - "th", - "tn", - "tr", - "ts", - "ua", - "ur", - "ve", - "vi", - "xh", - "zh-cn", - "zh-hk", - "zh-sg", - "zh-tw", - "zu" - ], - "x-enum-name": "ProjectEmailTemplateLocale", - "x-enum-keys": [ - "af", - "ar-ae", - "ar-bh", - "ar-dz", - "ar-eg", - "ar-iq", - "ar-jo", - "ar-kw", - "ar-lb", - "ar-ly", - "ar-ma", - "ar-om", - "ar-qa", - "ar-sa", - "ar-sy", - "ar-tn", - "ar-ye", - "as", - "az", - "be", - "bg", - "bh", - "bn", - "bs", - "ca", - "cs", - "cy", - "da", - "de", - "de-at", - "de-ch", - "de-li", - "de-lu", - "el", - "en", - "en-au", - "en-bz", - "en-ca", - "en-gb", - "en-ie", - "en-jm", - "en-nz", - "en-tt", - "en-us", - "en-za", - "eo", - "es", - "es-ar", - "es-bo", - "es-cl", - "es-co", - "es-cr", - "es-do", - "es-ec", - "es-gt", - "es-hn", - "es-mx", - "es-ni", - "es-pa", - "es-pe", - "es-pr", - "es-py", - "es-sv", - "es-uy", - "es-ve", - "et", - "eu", - "fa", - "fi", - "fo", - "fr", - "fr-be", - "fr-ca", - "fr-ch", - "fr-lu", - "ga", - "gd", - "he", - "hi", - "hr", - "hu", - "id", - "is", - "it", - "it-ch", - "ja", - "ji", - "ko", - "ku", - "lt", - "lv", - "mk", - "ml", - "ms", - "mt", - "nb", - "ne", - "nl", - "nl-be", - "nn", - "no", - "pa", - "pl", - "pt", - "pt-br", - "rm", - "ro", - "ro-md", - "ru", - "ru-md", - "sb", - "sk", - "sl", - "sq", - "sr", - "sv", - "sv-fi", - "th", - "tn", - "tr", - "ts", - "ua", - "ur", - "ve", - "vi", - "xh", - "zh-cn", - "zh-hk", - "zh-sg", - "zh-tw", - "zu" - ] - }, - "subject": { - "type": "string", - "description": "Subject of the email template. Can be up to 255 characters.", - "x-example": "<SUBJECT>", - "x-nullable": true - }, - "message": { - "type": "string", - "description": "Plain or HTML body of the email template message. Can be up to 10MB of content.", - "x-example": "<MESSAGE>", - "x-nullable": true - }, - "senderName": { - "type": "string", - "description": "Name of the email sender.", - "x-example": "<SENDER_NAME>", - "x-nullable": true - }, - "senderEmail": { - "type": "string", - "description": "Email of the sender. Pass an empty string to clear a previously set value.", - "x-example": "email@example.com", - "format": "email", - "x-nullable": true - }, - "replyToEmail": { - "type": "string", - "description": "Reply to email. Pass an empty string to clear a previously set value.", - "x-example": "email@example.com", - "format": "email", - "x-nullable": true + "description": "Key name. Max length: 128 chars.", + "x-example": "<NAME>" }, - "replyToName": { + "expire": { "type": "string", - "description": "Reply to name.", - "x-example": "<REPLY_TO_NAME>", - "x-nullable": true + "description": "Expiration time in [ISO 8601](https:\/\/www.iso.org\/iso-8601-date-and-time-format.html) format.", + "x-example": "2020-10-15T06:38:00.000+00:00", + "format": "datetime" } }, "required": [ - "templateId" + "name", + "expire" ] } } @@ -65193,21 +65673,21 @@ } } }, - "\/project\/templates\/email\/{templateId}": { + "\/projects\/{projectId}\/dev-keys\/{keyId}": { "get": { - "summary": "Get project email template", - "operationId": "projectGetEmailTemplate", + "summary": "Get dev key", + "operationId": "projectsGetDevKey", "tags": [ - "project" + "projects" ], - "description": "Get a custom email template for the specified locale and type. This endpoint returns the template content, subject, and other configuration details.", + "description": "Get a project\\'s dev key by its unique ID. Dev keys are project specific and allow you to bypass rate limits and get better error logging during development.", "responses": { "200": { - "description": "EmailTemplate", + "description": "DevKey", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/emailTemplate" + "$ref": "#\/components\/schemas\/devKey" } } } @@ -65215,18 +65695,17 @@ }, "deprecated": false, "x-appwrite": { - "method": "getEmailTemplate", - "group": "templates", + "method": "getDevKey", + "group": "devKeys", "cookies": false, "type": "", - "demo": "project\/get-email-template.md", + "demo": "projects\/get-dev-key.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "templates.read", + "scope": "devKeys.read", "platforms": [ - "console", - "server" + "console" ], "packaging": false, "public": true, @@ -65236,335 +65715,46 @@ }, "security": [ { - "Project": [], - "Key": [] + "Project": [] } ], "parameters": [ { - "name": "templateId", - "description": "Custom email template type. Can be one of: verification, magicSession, recovery, invitation, mfaChallenge, sessionAlert, otpSession", + "name": "projectId", + "description": "Project unique ID.", "required": true, "schema": { "type": "string", - "x-example": "verification", - "enum": [ - "verification", - "magicSession", - "recovery", - "invitation", - "mfaChallenge", - "sessionAlert", - "otpSession" - ], - "x-enum-name": "ProjectEmailTemplateId", - "x-enum-keys": [ - "verification", - "magicSession", - "recovery", - "invitation", - "mfaChallenge", - "sessionAlert", - "otpSession" - ] + "x-example": "<PROJECT_ID>" }, "in": "path" }, { - "name": "locale", - "description": "Custom email template locale. If left empty, the fallback locale (en) will be used.", - "required": false, + "name": "keyId", + "description": "Key unique ID.", + "required": true, "schema": { "type": "string", - "x-example": "af", - "enum": [ - "af", - "ar-ae", - "ar-bh", - "ar-dz", - "ar-eg", - "ar-iq", - "ar-jo", - "ar-kw", - "ar-lb", - "ar-ly", - "ar-ma", - "ar-om", - "ar-qa", - "ar-sa", - "ar-sy", - "ar-tn", - "ar-ye", - "as", - "az", - "be", - "bg", - "bh", - "bn", - "bs", - "ca", - "cs", - "cy", - "da", - "de", - "de-at", - "de-ch", - "de-li", - "de-lu", - "el", - "en", - "en-au", - "en-bz", - "en-ca", - "en-gb", - "en-ie", - "en-jm", - "en-nz", - "en-tt", - "en-us", - "en-za", - "eo", - "es", - "es-ar", - "es-bo", - "es-cl", - "es-co", - "es-cr", - "es-do", - "es-ec", - "es-gt", - "es-hn", - "es-mx", - "es-ni", - "es-pa", - "es-pe", - "es-pr", - "es-py", - "es-sv", - "es-uy", - "es-ve", - "et", - "eu", - "fa", - "fi", - "fo", - "fr", - "fr-be", - "fr-ca", - "fr-ch", - "fr-lu", - "ga", - "gd", - "he", - "hi", - "hr", - "hu", - "id", - "is", - "it", - "it-ch", - "ja", - "ji", - "ko", - "ku", - "lt", - "lv", - "mk", - "ml", - "ms", - "mt", - "nb", - "ne", - "nl", - "nl-be", - "nn", - "no", - "pa", - "pl", - "pt", - "pt-br", - "rm", - "ro", - "ro-md", - "ru", - "ru-md", - "sb", - "sk", - "sl", - "sq", - "sr", - "sv", - "sv-fi", - "th", - "tn", - "tr", - "ts", - "ua", - "ur", - "ve", - "vi", - "xh", - "zh-cn", - "zh-hk", - "zh-sg", - "zh-tw", - "zu" - ], - "x-enum-name": "ProjectEmailTemplateLocale", - "x-enum-keys": [ - "af", - "ar-ae", - "ar-bh", - "ar-dz", - "ar-eg", - "ar-iq", - "ar-jo", - "ar-kw", - "ar-lb", - "ar-ly", - "ar-ma", - "ar-om", - "ar-qa", - "ar-sa", - "ar-sy", - "ar-tn", - "ar-ye", - "as", - "az", - "be", - "bg", - "bh", - "bn", - "bs", - "ca", - "cs", - "cy", - "da", - "de", - "de-at", - "de-ch", - "de-li", - "de-lu", - "el", - "en", - "en-au", - "en-bz", - "en-ca", - "en-gb", - "en-ie", - "en-jm", - "en-nz", - "en-tt", - "en-us", - "en-za", - "eo", - "es", - "es-ar", - "es-bo", - "es-cl", - "es-co", - "es-cr", - "es-do", - "es-ec", - "es-gt", - "es-hn", - "es-mx", - "es-ni", - "es-pa", - "es-pe", - "es-pr", - "es-py", - "es-sv", - "es-uy", - "es-ve", - "et", - "eu", - "fa", - "fi", - "fo", - "fr", - "fr-be", - "fr-ca", - "fr-ch", - "fr-lu", - "ga", - "gd", - "he", - "hi", - "hr", - "hu", - "id", - "is", - "it", - "it-ch", - "ja", - "ji", - "ko", - "ku", - "lt", - "lv", - "mk", - "ml", - "ms", - "mt", - "nb", - "ne", - "nl", - "nl-be", - "nn", - "no", - "pa", - "pl", - "pt", - "pt-br", - "rm", - "ro", - "ro-md", - "ru", - "ru-md", - "sb", - "sk", - "sl", - "sq", - "sr", - "sv", - "sv-fi", - "th", - "tn", - "tr", - "ts", - "ua", - "ur", - "ve", - "vi", - "xh", - "zh-cn", - "zh-hk", - "zh-sg", - "zh-tw", - "zu" - ] + "x-example": "<KEY_ID>" }, - "in": "query" + "in": "path" } ] - } - }, - "\/project\/usage": { - "get": { - "summary": "Get project usage stats", - "operationId": "projectGetUsage", + }, + "put": { + "summary": "Update dev key", + "operationId": "projectsUpdateDevKey", "tags": [ - "project" + "projects" ], - "description": "Get comprehensive usage statistics for your project. View metrics including network requests, bandwidth, storage, function executions, database usage, and user activity. Specify a time range with startDate and endDate, and optionally set the data granularity with period (1h or 1d). The response includes both total counts and detailed breakdowns by resource, along with historical data over the specified period.", + "description": "Update a project\\'s dev key by its unique ID. Use this endpoint to update a project\\'s dev key name or expiration time.'", "responses": { "200": { - "description": "Project", + "description": "DevKey", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/usageProject" + "$ref": "#\/components\/schemas\/devKey" } } } @@ -65572,21 +65762,20 @@ }, "deprecated": false, "x-appwrite": { - "method": "getUsage", - "group": null, + "method": "updateDevKey", + "group": "devKeys", "cookies": false, "type": "", - "demo": "project\/get-usage.md", + "demo": "projects\/update-dev-key.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "projects.read", + "scope": "devKeys.write", "platforms": [ "console" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/project\/get-usage.md", "auth": { "Project": [] } @@ -65598,65 +65787,129 @@ ], "parameters": [ { - "name": "startDate", - "description": "Starting date for the usage", + "name": "projectId", + "description": "Project unique ID.", "required": true, "schema": { "type": "string", - "format": "datetime", - "x-example": "2020-10-15T06:38:00.000+00:00" + "x-example": "<PROJECT_ID>" }, - "in": "query" + "in": "path" }, { - "name": "endDate", - "description": "End date for the usage", + "name": "keyId", + "description": "Key unique ID.", "required": true, "schema": { "type": "string", - "format": "datetime", - "x-example": "2020-10-15T06:38:00.000+00:00" + "x-example": "<KEY_ID>" }, - "in": "query" + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "Key name. Max length: 128 chars.", + "x-example": "<NAME>" + }, + "expire": { + "type": "string", + "description": "Expiration time in [ISO 8601](https:\/\/www.iso.org\/iso-8601-date-and-time-format.html) format.", + "x-example": "2020-10-15T06:38:00.000+00:00", + "format": "datetime" + } + }, + "required": [ + "name", + "expire" + ] + } + } + } + } + }, + "delete": { + "summary": "Delete dev key", + "operationId": "projectsDeleteDevKey", + "tags": [ + "projects" + ], + "description": "Delete a project\\'s dev key by its unique ID. Once deleted, the key will no longer allow bypassing of rate limits and better logging of errors.", + "responses": { + "204": { + "description": "No content" + } + }, + "deprecated": false, + "x-appwrite": { + "method": "deleteDevKey", + "group": "devKeys", + "cookies": false, + "type": "", + "demo": "projects\/delete-dev-key.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "devKeys.write", + "platforms": [ + "console" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [] + } + ], + "parameters": [ + { + "name": "projectId", + "description": "Project unique ID.", + "required": true, + "schema": { + "type": "string", + "x-example": "<PROJECT_ID>" + }, + "in": "path" }, { - "name": "period", - "description": "Period used", - "required": false, + "name": "keyId", + "description": "Key unique ID.", + "required": true, "schema": { "type": "string", - "x-example": "1h", - "enum": [ - "1h", - "1d" - ], - "x-enum-name": "ProjectUsageRange", - "x-enum-keys": [ - "OneHour", - "OneDay" - ], - "default": "1d" + "x-example": "<KEY_ID>" }, - "in": "query" + "in": "path" } ] } }, - "\/project\/variables": { + "\/projects\/{projectId}\/schedules": { "get": { - "summary": "List project variables", - "operationId": "projectListVariables", + "summary": "List schedules", + "operationId": "projectsListSchedules", "tags": [ - "project" + "projects" ], - "description": "Get a list of all project environment variables.", + "description": "Get a list of all the project's schedules. You can use the query params to filter your results.", "responses": { "200": { - "description": "Variables List", + "description": "Schedules List", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/variableList" + "$ref": "#\/components\/schemas\/scheduleList" } } } @@ -65664,35 +65917,44 @@ }, "deprecated": false, "x-appwrite": { - "method": "listVariables", - "group": "variables", + "method": "listSchedules", + "group": "schedules", "cookies": false, "type": "", - "demo": "project\/list-variables.md", + "demo": "projects\/list-schedules.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "project.read", + "scope": "schedules.read", "platforms": [ - "console", - "server" + "console" ], "packaging": false, "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/projects\/list-schedules.md", "auth": { "Project": [] } }, "security": [ { - "Project": [], - "Key": [] + "Project": [] } ], "parameters": [ + { + "name": "projectId", + "description": "Project unique ID.", + "required": true, + "schema": { + "type": "string", + "x-example": "<PROJECT_ID>" + }, + "in": "path" + }, { "name": "queries", - "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/queries). Maximum of 100 queries are allowed, each 4096 characters long. You may filter on the following attributes: key, resourceType, resourceId, secret", + "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/queries). Maximum of 100 queries are allowed, each 4096 characters long. You may filter on the following attributes: resourceType, resourceId, projectId, schedule, active, region", "required": false, "schema": { "type": "array", @@ -65717,19 +65979,19 @@ ] }, "post": { - "summary": "Create project variable", - "operationId": "projectCreateVariable", + "summary": "Create schedule", + "operationId": "projectsCreateSchedule", "tags": [ - "project" + "projects" ], - "description": "Create a new project environment variable. These variables can be accessed by all functions and sites in the project.", + "description": "Create a new schedule for a resource.", "responses": { "201": { - "description": "Variable", + "description": "Schedule", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/variable" + "$ref": "#\/components\/schemas\/schedule" } } } @@ -65737,29 +65999,40 @@ }, "deprecated": false, "x-appwrite": { - "method": "createVariable", - "group": "variables", + "method": "createSchedule", + "group": "schedules", "cookies": false, "type": "", - "demo": "project\/create-variable.md", + "demo": "projects\/create-schedule.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "project.write", + "scope": "schedules.write", "platforms": [ - "console", - "server" + "console" ], "packaging": false, "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/projects\/create-schedule.md", "auth": { "Project": [] } }, "security": [ { - "Project": [], - "Key": [] + "Project": [] + } + ], + "parameters": [ + { + "name": "projectId", + "description": "Project unique ID.", + "required": true, + "schema": { + "type": "string", + "x-example": "<PROJECT_ID>" + }, + "in": "path" } ], "requestBody": { @@ -65768,35 +66041,51 @@ "schema": { "type": "object", "properties": { - "variableId": { + "resourceType": { "type": "string", - "description": "Variable unique ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.", - "x-example": "<VARIABLE_ID>", - "x-appwrite": { - "idGenerator": "ID.unique" - } + "description": "The resource type for the schedule. Possible values: function, execution, message, backup.", + "x-example": "function", + "enum": [ + "function", + "execution", + "message", + "backup" + ], + "x-enum-name": "ScheduleResourceType", + "x-enum-keys": [ + "function", + "execution", + "message", + "backup" + ] }, - "key": { + "resourceId": { "type": "string", - "description": "Variable key. Max length: 255 chars.", - "x-example": "<KEY>" + "description": "The resource ID to associate with this schedule.", + "x-example": "<RESOURCE_ID>" }, - "value": { + "schedule": { "type": "string", - "description": "Variable value. Max length: 8192 chars.", - "x-example": "<VALUE>" + "description": "Schedule CRON expression.", + "x-example": null }, - "secret": { + "active": { "type": "boolean", - "description": "Secret variables can be updated or deleted, but only projects can read them during build and runtime.", - "default": true, + "description": "Whether the schedule is active.", + "default": false, "x-example": false + }, + "data": { + "type": "object", + "description": "Schedule data as a JSON string. Used to store resource-specific context needed for execution.", + "default": {}, + "x-example": "{}" } }, "required": [ - "variableId", - "key", - "value" + "resourceType", + "resourceId", + "schedule" ] } } @@ -65804,21 +66093,21 @@ } } }, - "\/project\/variables\/{variableId}": { + "\/projects\/{projectId}\/schedules\/{scheduleId}": { "get": { - "summary": "Get project variable", - "operationId": "projectGetVariable", + "summary": "Get schedule", + "operationId": "projectsGetSchedule", "tags": [ - "project" + "projects" ], - "description": "Get a variable by its unique ID. ", + "description": "Get a schedule by its unique ID.", "responses": { "200": { - "description": "Variable", + "description": "Schedule", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/variable" + "$ref": "#\/components\/schemas\/schedule" } } } @@ -65826,58 +66115,69 @@ }, "deprecated": false, "x-appwrite": { - "method": "getVariable", - "group": "variables", + "method": "getSchedule", + "group": "schedules", "cookies": false, "type": "", - "demo": "project\/get-variable.md", + "demo": "projects\/get-schedule.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "project.read", + "scope": "schedules.read", "platforms": [ - "console", - "server" + "console" ], "packaging": false, "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/projects\/get-schedule.md", "auth": { "Project": [] } }, "security": [ { - "Project": [], - "Key": [] + "Project": [] } ], "parameters": [ { - "name": "variableId", - "description": "Variable unique ID.", + "name": "projectId", + "description": "Project unique ID.", "required": true, "schema": { "type": "string", - "x-example": "<VARIABLE_ID>" + "x-example": "<PROJECT_ID>" + }, + "in": "path" + }, + { + "name": "scheduleId", + "description": "Schedule ID.", + "required": true, + "schema": { + "type": "string", + "x-example": "<SCHEDULE_ID>" }, "in": "path" } ] - }, - "put": { - "summary": "Update project variable", - "operationId": "projectUpdateVariable", + } + }, + "\/projects\/{projectId}\/stages": { + "get": { + "summary": "List stages", + "operationId": "projectsListStages", "tags": [ - "project" + "projects" ], - "description": "Update variable by its unique ID.", + "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": "Variable", + "description": "Stages List", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/variable" + "$ref": "#\/components\/schemas\/stageList" } } } @@ -65885,163 +66185,164 @@ }, "deprecated": false, "x-appwrite": { - "method": "updateVariable", - "group": "variables", + "method": "listStages", + "group": "stages", "cookies": false, "type": "", - "demo": "project\/update-variable.md", + "demo": "projects\/list-stages.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "project.write", + "scope": "stages.read", "platforms": [ - "console", - "server" + "console" ], "packaging": false, "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/projects\/list-stages.md", "auth": { "Project": [] } }, "security": [ { - "Project": [], - "Key": [] + "Project": [] } ], "parameters": [ { - "name": "variableId", - "description": "Variable unique ID.", + "name": "projectId", + "description": "Project unique ID.", "required": true, "schema": { "type": "string", - "x-example": "<VARIABLE_ID>" + "x-example": "<PROJECT_ID>" }, "in": "path" } + ] + } + }, + "\/projects\/{projectId}\/stages\/{stageId}": { + "patch": { + "summary": "Update stage", + "operationId": "projectsUpdateStage", + "tags": [ + "projects" ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "key": { - "type": "string", - "description": "Variable key. Max length: 255 chars.", - "x-example": "<KEY>", - "x-nullable": true - }, - "value": { - "type": "string", - "description": "Variable value. Max length: 8192 chars.", - "x-example": "<VALUE>", - "x-nullable": true - }, - "secret": { - "type": "boolean", - "description": "Secret variables can be updated or deleted, but only projects can read them during build and runtime.", - "x-example": false, - "x-nullable": true - } + "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" } } } } - } - }, - "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": { - "method": "deleteVariable", - "group": "variables", + "method": "updateStage", + "group": "stages", "cookies": false, "type": "", - "demo": "project\/delete-variable.md", + "demo": "projects\/update-stage.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "project.write", + "scope": "stages.write", "platforms": [ - "console", - "server" + "console" ], "packaging": false, "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/projects\/update-stage.md", "auth": { "Project": [] } }, "security": [ { - "Project": [], - "Key": [] + "Project": [] } ], "parameters": [ { - "name": "variableId", - "description": "Variable unique ID.", + "name": "projectId", + "description": "Project unique ID.", "required": true, "schema": { "type": "string", - "x-example": "<VARIABLE_ID>" + "x-example": "<PROJECT_ID>" + }, + "in": "path" + }, + { + "name": "stageId", + "description": "SDK method key (namespace.method).", + "required": true, + "schema": { + "type": "string", + "x-example": "<STAGE_ID>" }, "in": "path" } - ] + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "skip": { + "type": "boolean", + "description": "Mark the stage as skipped.", + "default": true, + "x-example": false + } + } + } + } + } + } } }, - "\/projects\/{projectId}\/addons": { - "get": { - "summary": "List project addons", - "operationId": "projectsListAddons", + "\/projects\/{projectId}\/status": { + "patch": { + "summary": "Update the status of a project", + "operationId": "projectsUpdateStatus", "tags": [ "projects" ], - "description": "List all billing addons for a project.\n", + "description": "Update the status of a project. Can be used to archive\/restore projects, and to restore paused projects. When restoring a paused project, the console fingerprint header must be provided and the project must not be blocked for any reason other than inactivity.\n", "responses": { - "200": { - "description": "Addons list", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/addonList" - } - } - } + "204": { + "description": "No content" } }, "deprecated": false, "x-appwrite": { - "method": "listAddons", + "method": "updateStatus", "group": null, "cookies": false, "type": "", - "demo": "projects\/list-addons.md", - "rate-limit": 0, + "demo": "projects\/update-status.md", + "rate-limit": 10, "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "projects.read", + "rate-key": "ip:{ip},userId:{userId}", + "scope": "projects.write", "platforms": [ "console" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/projects\/list-addons.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/projects\/update-status.md", + "produces": [ + "application\/json" + ], "auth": { "Project": [] } @@ -66062,24 +66363,50 @@ }, "in": "path" } - ] + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "status": { + "type": "string", + "description": "New status for the project", + "x-example": "active", + "enum": [ + "active" + ], + "x-enum-name": "Status", + "x-enum-keys": [ + "active" + ] + } + }, + "required": [ + "status" + ] + } + } + } + } } }, - "\/projects\/{projectId}\/addons\/premium-geo-db": { - "post": { - "summary": "Create Premium Geo DB addon for project", - "operationId": "projectsCreatePremiumGeoDBAddon", + "\/projects\/{projectId}\/team": { + "patch": { + "summary": "Update project team", + "operationId": "projectsUpdateTeam", "tags": [ "projects" ], - "description": "Create a Premium Geo DB addon for a project.\n", + "description": "Update the team ID of a project allowing for it to be transferred to another team.", "responses": { - "201": { - "description": "Addon", + "200": { + "description": "Project", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/addon" + "$ref": "#\/components\/schemas\/project" } } } @@ -66087,12 +66414,12 @@ }, "deprecated": false, "x-appwrite": { - "method": "createPremiumGeoDBAddon", - "group": null, + "method": "updateTeam", + "group": "projects", "cookies": false, "type": "", - "demo": "projects\/create-premium-geo-db-addon.md", - "rate-limit": 10, + "demo": "projects\/update-team.md", + "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", "scope": "projects.write", @@ -66101,7 +66428,7 @@ ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/projects\/create-premium-geo-db-addon.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/projects\/update-team.md", "auth": { "Project": [] } @@ -66114,7 +66441,7 @@ "parameters": [ { "name": "projectId", - "description": "Project ID", + "description": "Project unique ID.", "required": true, "schema": { "type": "string", @@ -66122,24 +66449,43 @@ }, "in": "path" } - ] + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "teamId": { + "type": "string", + "description": "Team ID of the team to transfer project to.", + "x-example": "<TEAM_ID>" + } + }, + "required": [ + "teamId" + ] + } + } + } + } } }, - "\/projects\/{projectId}\/addons\/{addonId}": { + "\/proxy\/rules": { "get": { - "summary": "Get project addon", - "operationId": "projectsGetAddon", + "summary": "List rules", + "operationId": "proxyListRules", "tags": [ - "projects" + "proxy" ], - "description": "Get the details of a billing addon for a project.\n", + "description": "Get a list of all the proxy rules. You can use the query params to filter your results.", "responses": { "200": { - "description": "Addon", + "description": "Rule List", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/addon" + "$ref": "#\/components\/schemas\/proxyRuleList" } } } @@ -66147,133 +66493,142 @@ }, "deprecated": false, "x-appwrite": { - "method": "getAddon", - "group": null, + "method": "listRules", + "group": "rules", "cookies": false, "type": "", - "demo": "projects\/get-addon.md", + "demo": "proxy\/list-rules.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "projects.read", + "scope": "rules.read", "platforms": [ - "console" + "console", + "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/projects\/get-addon.md", "auth": { "Project": [] } }, "security": [ { - "Project": [] + "Project": [], + "Key": [] } ], "parameters": [ { - "name": "projectId", - "description": "Project ID", - "required": true, + "name": "queries", + "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/databases#querying-documents). Maximum of 100 queries are allowed, each 4096 characters long. You may filter on the following attributes: domain, type, trigger, deploymentResourceType, deploymentResourceId, deploymentId, deploymentVcsProviderBranch", + "required": false, "schema": { - "type": "string", - "x-example": "<PROJECT_ID>" + "type": "array", + "items": { + "type": "string" + }, + "default": [] }, - "in": "path" + "in": "query" }, { - "name": "addonId", - "description": "Addon ID", - "required": true, + "name": "total", + "description": "When set to false, the total count returned will be 0 and will not be calculated.", + "required": false, "schema": { - "type": "string", - "x-example": "<ADDON_ID>" + "type": "boolean", + "x-example": false, + "default": true }, - "in": "path" + "in": "query" } ] - }, - "delete": { - "summary": "Delete project addon", - "operationId": "projectsDeleteAddon", + } + }, + "\/proxy\/rules\/api": { + "post": { + "summary": "Create API rule", + "operationId": "proxyCreateAPIRule", "tags": [ - "projects" + "proxy" ], - "description": "Delete a billing addon for a project.\n", + "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": { - "204": { - "description": "No content" + "201": { + "description": "Rule", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/proxyRule" + } + } + } } }, "deprecated": false, "x-appwrite": { - "method": "deleteAddon", - "group": null, + "method": "createAPIRule", + "group": "rules", "cookies": false, "type": "", - "demo": "projects\/delete-addon.md", + "demo": "proxy\/create-api-rule.md", "rate-limit": 10, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "projects.write", + "rate-time": 60, + "rate-key": "userId:{userId}, url:{url}", + "scope": "rules.write", "platforms": [ - "console" + "console", + "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/projects\/delete-addon.md", - "produces": [ - "application\/json" - ], "auth": { "Project": [] } }, "security": [ { - "Project": [] + "Project": [], + "Key": [] } ], - "parameters": [ - { - "name": "projectId", - "description": "Project ID", - "required": true, - "schema": { - "type": "string", - "x-example": "<PROJECT_ID>" - }, - "in": "path" - }, - { - "name": "addonId", - "description": "Addon ID", - "required": true, - "schema": { - "type": "string", - "x-example": "<ADDON_ID>" - }, - "in": "path" + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "domain": { + "type": "string", + "description": "Domain name.", + "x-example": null + } + }, + "required": [ + "domain" + ] + } + } } - ] + } } }, - "\/projects\/{projectId}\/addons\/{addonId}\/confirmations": { + "\/proxy\/rules\/function": { "post": { - "summary": "Confirm project addon payment after 3DS authentication", - "operationId": "projectsConfirmAddonPayment", + "summary": "Create function rule", + "operationId": "proxyCreateFunctionRule", "tags": [ - "projects" + "proxy" ], - "description": "Confirm payment for a billing addon for a project.\n", + "description": "Create a new proxy rule for executing Appwrite Function on custom domain.\n\nRule ID is automatically generated as MD5 hash of a rule domain for performance purposes.", "responses": { - "200": { - "description": "Addon", + "201": { + "description": "Rule", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/addon" + "$ref": "#\/components\/schemas\/proxyRule" } } } @@ -66281,69 +66636,79 @@ }, "deprecated": false, "x-appwrite": { - "method": "confirmAddonPayment", - "group": null, + "method": "createFunctionRule", + "group": "rules", "cookies": false, "type": "", - "demo": "projects\/confirm-addon-payment.md", + "demo": "proxy\/create-function-rule.md", "rate-limit": 10, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "projects.write", + "rate-time": 60, + "rate-key": "userId:{userId}, url:{url}", + "scope": "rules.write", "platforms": [ - "console" + "console", + "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/projects\/confirm-addon-payment.md", "auth": { "Project": [] } }, "security": [ { - "Project": [] + "Project": [], + "Key": [] } ], - "parameters": [ - { - "name": "projectId", - "description": "Project ID", - "required": true, - "schema": { - "type": "string", - "x-example": "<PROJECT_ID>" - }, - "in": "path" - }, - { - "name": "addonId", - "description": "Addon ID", - "required": true, - "schema": { - "type": "string", - "x-example": "<ADDON_ID>" - }, - "in": "path" + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "domain": { + "type": "string", + "description": "Domain name.", + "x-example": null + }, + "functionId": { + "type": "string", + "description": "ID of function to be executed.", + "x-example": "<FUNCTION_ID>" + }, + "branch": { + "type": "string", + "description": "Name of VCS branch to deploy changes automatically", + "default": "", + "x-example": "<BRANCH>" + } + }, + "required": [ + "domain", + "functionId" + ] + } + } } - ] + } } }, - "\/projects\/{projectId}\/addons\/{addon}\/price": { - "get": { - "summary": "Get project addon price", - "operationId": "projectsGetAddonPrice", + "\/proxy\/rules\/redirect": { + "post": { + "summary": "Create redirect rule", + "operationId": "proxyCreateRedirectRule", "tags": [ - "projects" + "proxy" ], - "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", + "description": "Create a new proxy rule for to redirect from custom domain to another domain.\n\nRule ID is automatically generated as MD5 hash of a rule domain for performance purposes.", "responses": { - "200": { - "description": "AddonPrice", + "201": { + "description": "Rule", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/addonPrice" + "$ref": "#\/components\/schemas\/proxyRule" } } } @@ -66351,195 +66716,114 @@ }, "deprecated": false, "x-appwrite": { - "method": "getAddonPrice", - "group": null, + "method": "createRedirectRule", + "group": "rules", "cookies": false, "type": "", - "demo": "projects\/get-addon-price.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "projects.read", + "demo": "proxy\/create-redirect-rule.md", + "rate-limit": 10, + "rate-time": 60, + "rate-key": "userId:{userId}, url:{url}", + "scope": "rules.write", "platforms": [ - "console" + "console", + "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/projects\/get-addon-price.md", "auth": { "Project": [] } }, "security": [ { - "Project": [] + "Project": [], + "Key": [] } ], - "parameters": [ - { - "name": "projectId", - "description": "Project ID", - "required": true, - "schema": { - "type": "string", - "x-example": "<PROJECT_ID>" - }, - "in": "path" - }, - { - "name": "addon", - "description": "Addon key identifier (e.g. premiumGeoDB).", - "required": true, - "schema": { - "type": "string", - "x-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": { - "method": "updateConsoleAccess", - "group": null, - "cookies": false, - "type": "", - "demo": "projects\/update-console-access.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "projects.write", - "platforms": [ - "console" - ], - "packaging": false, - "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/projects\/update-console-access.md", - "produces": [ - "application\/json" - ], - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [] - } - ], - "parameters": [ - { - "name": "projectId", - "description": "Project ID", - "required": true, - "schema": { - "type": "string", - "x-example": "<PROJECT_ID>" - }, - "in": "path" - } - ] - } - }, - "\/projects\/{projectId}\/dev-keys": { - "get": { - "summary": "List dev keys", - "operationId": "projectsListDevKeys", - "tags": [ - "projects" - ], - "description": "List all the project\\'s dev keys. Dev keys are project specific and allow you to bypass rate limits and get better error logging during development.'", - "responses": { - "200": { - "description": "Dev Keys List", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/devKeyList" - } + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "domain": { + "type": "string", + "description": "Domain name.", + "x-example": null + }, + "url": { + "type": "string", + "description": "Target URL of redirection", + "x-example": "https:\/\/example.com", + "format": "url" + }, + "statusCode": { + "type": "string", + "description": "Status code of redirection", + "x-example": "301", + "enum": [ + "301", + "302", + "307", + "308" + ], + "x-enum-name": "StatusCode", + "x-enum-keys": [ + "MovedPermanently", + "Found", + "TemporaryRedirect", + "PermanentRedirect" + ] + }, + "resourceId": { + "type": "string", + "description": "ID of parent resource.", + "x-example": "<RESOURCE_ID>" + }, + "resourceType": { + "type": "string", + "description": "Type of parent resource.", + "x-example": "site", + "enum": [ + "site", + "function" + ], + "x-enum-name": "ProxyResourceType", + "x-enum-keys": [ + "Site", + "Function" + ] + } + }, + "required": [ + "domain", + "url", + "statusCode", + "resourceId", + "resourceType" + ] } } } - }, - "deprecated": false, - "x-appwrite": { - "method": "listDevKeys", - "group": "devKeys", - "cookies": false, - "type": "", - "demo": "projects\/list-dev-keys.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "devKeys.read", - "platforms": [ - "console" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [] - } - ], - "parameters": [ - { - "name": "projectId", - "description": "Project unique ID.", - "required": true, - "schema": { - "type": "string", - "x-example": "<PROJECT_ID>" - }, - "in": "path" - }, - { - "name": "queries", - "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/queries). Maximum of 100 queries are allowed, each 4096 characters long. You may filter on the following attributes: accessedAt, expire", - "required": false, - "schema": { - "type": "array", - "items": { - "type": "string" - }, - "default": [] - }, - "in": "query" - } - ] - }, + } + } + }, + "\/proxy\/rules\/site": { "post": { - "summary": "Create dev key", - "operationId": "projectsCreateDevKey", + "summary": "Create site rule", + "operationId": "proxyCreateSiteRule", "tags": [ - "projects" + "proxy" ], - "description": "Create a new project dev key. Dev keys are project specific and allow you to bypass rate limits and get better error logging during development. Strictly meant for development purposes only.", + "description": "Create a new 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": "DevKey", + "description": "Rule", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/devKey" + "$ref": "#\/components\/schemas\/proxyRule" } } } @@ -66547,17 +66831,18 @@ }, "deprecated": false, "x-appwrite": { - "method": "createDevKey", - "group": "devKeys", + "method": "createSiteRule", + "group": "rules", "cookies": false, "type": "", - "demo": "projects\/create-dev-key.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "devKeys.write", + "demo": "proxy\/create-site-rule.md", + "rate-limit": 10, + "rate-time": 60, + "rate-key": "userId:{userId}, url:{url}", + "scope": "rules.write", "platforms": [ - "console" + "console", + "server" ], "packaging": false, "public": true, @@ -66567,19 +66852,8 @@ }, "security": [ { - "Project": [] - } - ], - "parameters": [ - { - "name": "projectId", - "description": "Project unique ID.", - "required": true, - "schema": { - "type": "string", - "x-example": "<PROJECT_ID>" - }, - "in": "path" + "Project": [], + "Key": [] } ], "requestBody": { @@ -66588,21 +66862,26 @@ "schema": { "type": "object", "properties": { - "name": { + "domain": { "type": "string", - "description": "Key name. Max length: 128 chars.", - "x-example": "<NAME>" + "description": "Domain name.", + "x-example": null }, - "expire": { + "siteId": { "type": "string", - "description": "Expiration time in [ISO 8601](https:\/\/www.iso.org\/iso-8601-date-and-time-format.html) format.", - "x-example": "2020-10-15T06:38:00.000+00:00", - "format": "datetime" + "description": "ID of site to be executed.", + "x-example": "<SITE_ID>" + }, + "branch": { + "type": "string", + "description": "Name of VCS branch to deploy changes automatically", + "default": "", + "x-example": "<BRANCH>" } }, "required": [ - "name", - "expire" + "domain", + "siteId" ] } } @@ -66610,21 +66889,21 @@ } } }, - "\/projects\/{projectId}\/dev-keys\/{keyId}": { + "\/proxy\/rules\/{ruleId}": { "get": { - "summary": "Get dev key", - "operationId": "projectsGetDevKey", + "summary": "Get rule", + "operationId": "proxyGetRule", "tags": [ - "projects" + "proxy" ], - "description": "Get a project\\'s dev key by its unique ID. Dev keys are project specific and allow you to bypass rate limits and get better error logging during development.", + "description": "Get a proxy rule by its unique ID.", "responses": { "200": { - "description": "DevKey", + "description": "Rule", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/devKey" + "$ref": "#\/components\/schemas\/proxyRule" } } } @@ -66632,17 +66911,18 @@ }, "deprecated": false, "x-appwrite": { - "method": "getDevKey", - "group": "devKeys", + "method": "getRule", + "group": "rules", "cookies": false, "type": "", - "demo": "projects\/get-dev-key.md", + "demo": "proxy\/get-rule.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "devKeys.read", + "scope": "rules.read", "platforms": [ - "console" + "console", + "server" ], "packaging": false, "public": true, @@ -66652,64 +66932,49 @@ }, "security": [ { - "Project": [] + "Project": [], + "Key": [] } ], "parameters": [ { - "name": "projectId", - "description": "Project unique ID.", - "required": true, - "schema": { - "type": "string", - "x-example": "<PROJECT_ID>" - }, - "in": "path" - }, - { - "name": "keyId", - "description": "Key unique ID.", + "name": "ruleId", + "description": "Rule ID.", "required": true, "schema": { "type": "string", - "x-example": "<KEY_ID>" + "x-example": "<RULE_ID>" }, "in": "path" } ] }, - "put": { - "summary": "Update dev key", - "operationId": "projectsUpdateDevKey", + "delete": { + "summary": "Delete rule", + "operationId": "proxyDeleteRule", "tags": [ - "projects" + "proxy" ], - "description": "Update a project\\'s dev key by its unique ID. Use this endpoint to update a project\\'s dev key name or expiration time.'", + "description": "Delete a proxy rule by its unique ID.", "responses": { - "200": { - "description": "DevKey", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/devKey" - } - } - } + "204": { + "description": "No content" } }, "deprecated": false, "x-appwrite": { - "method": "updateDevKey", - "group": "devKeys", + "method": "deleteRule", + "group": "rules", "cookies": false, "type": "", - "demo": "projects\/update-dev-key.md", + "demo": "proxy\/delete-rule.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "devKeys.write", + "scope": "rules.write", "platforms": [ - "console" + "console", + "server" ], "packaging": false, "public": true, @@ -66719,83 +66984,58 @@ }, "security": [ { - "Project": [] + "Project": [], + "Key": [] } ], "parameters": [ { - "name": "projectId", - "description": "Project unique ID.", - "required": true, - "schema": { - "type": "string", - "x-example": "<PROJECT_ID>" - }, - "in": "path" - }, - { - "name": "keyId", - "description": "Key unique ID.", + "name": "ruleId", + "description": "Rule ID.", "required": true, "schema": { "type": "string", - "x-example": "<KEY_ID>" + "x-example": "<RULE_ID>" }, "in": "path" } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "name": { - "type": "string", - "description": "Key name. Max length: 128 chars.", - "x-example": "<NAME>" - }, - "expire": { - "type": "string", - "description": "Expiration time in [ISO 8601](https:\/\/www.iso.org\/iso-8601-date-and-time-format.html) format.", - "x-example": "2020-10-15T06:38:00.000+00:00", - "format": "datetime" - } - }, - "required": [ - "name", - "expire" - ] - } - } - } - } - }, - "delete": { - "summary": "Delete dev key", - "operationId": "projectsDeleteDevKey", + ] + } + }, + "\/proxy\/rules\/{ruleId}\/status": { + "patch": { + "summary": "Update rule status", + "operationId": "proxyUpdateRuleStatus", "tags": [ - "projects" + "proxy" ], - "description": "Delete a project\\'s dev key by its unique ID. Once deleted, the key will no longer allow bypassing of rate limits and better logging of errors.", + "description": "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": { - "204": { - "description": "No content" + "200": { + "description": "Rule", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/proxyRule" + } + } + } } }, "deprecated": false, "x-appwrite": { - "method": "deleteDevKey", - "group": "devKeys", + "method": "updateRuleStatus", + "group": "rules", "cookies": false, "type": "", - "demo": "projects\/delete-dev-key.md", + "demo": "proxy\/update-rule-status.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "devKeys.write", + "scope": "rules.write", "platforms": [ - "console" + "console", + "server" ], "packaging": false, "public": true, @@ -66805,48 +67045,39 @@ }, "security": [ { - "Project": [] + "Project": [], + "Key": [] } ], "parameters": [ { - "name": "projectId", - "description": "Project unique ID.", - "required": true, - "schema": { - "type": "string", - "x-example": "<PROJECT_ID>" - }, - "in": "path" - }, - { - "name": "keyId", - "description": "Key unique ID.", + "name": "ruleId", + "description": "Rule ID.", "required": true, "schema": { "type": "string", - "x-example": "<KEY_ID>" + "x-example": "<RULE_ID>" }, "in": "path" } ] } }, - "\/projects\/{projectId}\/schedules": { + "\/reports": { "get": { - "summary": "List schedules", - "operationId": "projectsListSchedules", + "summary": "List reports", + "operationId": "advisorListReports", "tags": [ - "projects" + "advisor" ], - "description": "Get a list of all the project's schedules. You can use the query params to filter your results.", + "description": "Get a list of all the project's analyzer reports. You can use the query params to filter your results.\n", "responses": { "200": { - "description": "Schedules List", + "description": "Reports List", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/scheduleList" + "$ref": "#\/components\/schemas\/reportList" } } } @@ -66854,44 +67085,36 @@ }, "deprecated": false, "x-appwrite": { - "method": "listSchedules", - "group": "schedules", + "method": "listReports", + "group": "reports", "cookies": false, "type": "", - "demo": "projects\/list-schedules.md", + "demo": "advisor\/list-reports.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "schedules.read", + "scope": "reports.read", "platforms": [ - "console" + "console", + "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/projects\/list-schedules.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/advisor\/list-reports.md", "auth": { "Project": [] } }, "security": [ { - "Project": [] + "Project": [], + "Key": [] } ], "parameters": [ - { - "name": "projectId", - "description": "Project unique ID.", - "required": true, - "schema": { - "type": "string", - "x-example": "<PROJECT_ID>" - }, - "in": "path" - }, { "name": "queries", - "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/queries). Maximum of 100 queries are allowed, each 4096 characters long. You may filter on the following attributes: resourceType, resourceId, projectId, schedule, active, region", + "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more 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", @@ -66914,21 +67137,23 @@ "in": "query" } ] - }, - "post": { - "summary": "Create schedule", - "operationId": "projectsCreateSchedule", + } + }, + "\/reports\/{reportId}": { + "get": { + "summary": "Get report", + "operationId": "advisorGetReport", "tags": [ - "projects" + "advisor" ], - "description": "Create a new schedule for a resource.", + "description": "Get an analyzer report by its unique ID. The response includes the report's metadata and the nested insights it produced.\n", "responses": { - "201": { - "description": "Schedule", + "200": { + "description": "Report", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/schedule" + "$ref": "#\/components\/schemas\/report" } } } @@ -66936,185 +67161,114 @@ }, "deprecated": false, "x-appwrite": { - "method": "createSchedule", - "group": "schedules", + "method": "getReport", + "group": "reports", "cookies": false, "type": "", - "demo": "projects\/create-schedule.md", + "demo": "advisor\/get-report.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "schedules.write", + "scope": "reports.read", "platforms": [ - "console" + "console", + "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/projects\/create-schedule.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/advisor\/get-report.md", "auth": { "Project": [] } }, "security": [ { - "Project": [] + "Project": [], + "Key": [] } ], "parameters": [ { - "name": "projectId", - "description": "Project unique ID.", + "name": "reportId", + "description": "Report ID.", "required": true, "schema": { "type": "string", - "x-example": "<PROJECT_ID>" + "x-example": "<REPORT_ID>" }, "in": "path" } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "resourceType": { - "type": "string", - "description": "The resource type for the schedule. Possible values: function, execution, message, backup.", - "x-example": "function", - "enum": [ - "function", - "execution", - "message", - "backup" - ], - "x-enum-name": "ScheduleResourceType", - "x-enum-keys": [ - "function", - "execution", - "message", - "backup" - ] - }, - "resourceId": { - "type": "string", - "description": "The resource ID to associate with this schedule.", - "x-example": "<RESOURCE_ID>" - }, - "schedule": { - "type": "string", - "description": "Schedule CRON expression.", - "x-example": null - }, - "active": { - "type": "boolean", - "description": "Whether the schedule is active.", - "default": false, - "x-example": false - }, - "data": { - "type": "object", - "description": "Schedule data as a JSON string. Used to store resource-specific context needed for execution.", - "default": {}, - "x-example": "{}" - } - }, - "required": [ - "resourceType", - "resourceId", - "schedule" - ] - } - } - } - } - } - }, - "\/projects\/{projectId}\/schedules\/{scheduleId}": { - "get": { - "summary": "Get schedule", - "operationId": "projectsGetSchedule", + ] + }, + "delete": { + "summary": "Delete report", + "operationId": "advisorDeleteReport", "tags": [ - "projects" + "advisor" ], - "description": "Get a schedule by its unique ID.", + "description": "Delete an analyzer report by its unique ID. Nested insights and CTA metadata are removed asynchronously by the deletes worker.\n", "responses": { - "200": { - "description": "Schedule", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/schedule" - } - } - } + "204": { + "description": "No content" } }, "deprecated": false, "x-appwrite": { - "method": "getSchedule", - "group": "schedules", + "method": "deleteReport", + "group": "reports", "cookies": false, "type": "", - "demo": "projects\/get-schedule.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "schedules.read", + "demo": "advisor\/delete-report.md", + "rate-limit": 60, + "rate-time": 60, + "rate-key": "projectId:{projectId},userId:{userId}", + "scope": "reports.write", "platforms": [ - "console" + "console", + "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/projects\/get-schedule.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/advisor\/delete-report.md", "auth": { "Project": [] } }, "security": [ { - "Project": [] + "Project": [], + "Key": [] } ], "parameters": [ { - "name": "projectId", - "description": "Project unique ID.", - "required": true, - "schema": { - "type": "string", - "x-example": "<PROJECT_ID>" - }, - "in": "path" - }, - { - "name": "scheduleId", - "description": "Schedule ID.", + "name": "reportId", + "description": "Report ID.", "required": true, "schema": { "type": "string", - "x-example": "<SCHEDULE_ID>" + "x-example": "<REPORT_ID>" }, "in": "path" } ] } }, - "\/projects\/{projectId}\/stages": { + "\/reports\/{reportId}\/insights": { "get": { - "summary": "List stages", - "operationId": "projectsListStages", + "summary": "List insights", + "operationId": "advisorListInsights", "tags": [ - "projects" + "advisor" ], - "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", + "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": "Stages List", + "description": "Insights List", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/stageList" + "$ref": "#\/components\/schemas\/insightList" } } } @@ -67122,59 +67276,85 @@ }, "deprecated": false, "x-appwrite": { - "method": "listStages", - "group": "stages", + "method": "listInsights", + "group": "insights", "cookies": false, "type": "", - "demo": "projects\/list-stages.md", + "demo": "advisor\/list-insights.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "stages.read", + "scope": "insights.read", "platforms": [ - "console" + "console", + "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/projects\/list-stages.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/advisor\/list-insights.md", "auth": { "Project": [] } }, "security": [ { - "Project": [] + "Project": [], + "Key": [] } ], "parameters": [ { - "name": "projectId", - "description": "Project unique ID.", + "name": "reportId", + "description": "Parent report ID.", "required": true, "schema": { "type": "string", - "x-example": "<PROJECT_ID>" + "x-example": "<REPORT_ID>" }, "in": "path" + }, + { + "name": "queries", + "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/queries). Maximum of 100 queries are allowed, each 4096 characters long. You may filter on the following attributes: type, severity, status, resourceType, resourceId, parentResourceType, parentResourceId, analyzedAt, dismissedAt, dismissedBy", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string" + }, + "default": [] + }, + "in": "query" + }, + { + "name": "total", + "description": "When set to false, the total count returned will be 0 and will not be calculated.", + "required": false, + "schema": { + "type": "boolean", + "x-example": false, + "default": true + }, + "in": "query" } ] } }, - "\/projects\/{projectId}\/stages\/{stageId}": { - "patch": { - "summary": "Update stage", - "operationId": "projectsUpdateStage", + "\/reports\/{reportId}\/insights\/{insightId}": { + "get": { + "summary": "Get insight", + "operationId": "advisorGetInsight", "tags": [ - "projects" + "advisor" ], - "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", + "description": "Get an insight by its unique ID, scoped to its parent report.\n", "responses": { "200": { - "description": "Stage", + "description": "Insight", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/stage" + "$ref": "#\/components\/schemas\/insight" } } } @@ -67182,247 +67362,71 @@ }, "deprecated": false, "x-appwrite": { - "method": "updateStage", - "group": "stages", + "method": "getInsight", + "group": "insights", "cookies": false, "type": "", - "demo": "projects\/update-stage.md", + "demo": "advisor\/get-insight.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "stages.write", + "scope": "insights.read", "platforms": [ - "console" + "console", + "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/projects\/update-stage.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/advisor\/get-insight.md", "auth": { "Project": [] } }, "security": [ { - "Project": [] + "Project": [], + "Key": [] } ], "parameters": [ { - "name": "projectId", - "description": "Project unique ID.", + "name": "reportId", + "description": "Parent report ID.", "required": true, "schema": { "type": "string", - "x-example": "<PROJECT_ID>" + "x-example": "<REPORT_ID>" }, "in": "path" }, { - "name": "stageId", - "description": "SDK method key (namespace.method).", - "required": true, - "schema": { - "type": "string", - "x-example": "<STAGE_ID>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "skip": { - "type": "boolean", - "description": "Mark the stage as skipped.", - "default": true, - "x-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": { - "method": "updateStatus", - "group": null, - "cookies": false, - "type": "", - "demo": "projects\/update-status.md", - "rate-limit": 10, - "rate-time": 3600, - "rate-key": "ip:{ip},userId:{userId}", - "scope": "projects.write", - "platforms": [ - "console" - ], - "packaging": false, - "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/projects\/update-status.md", - "produces": [ - "application\/json" - ], - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [] - } - ], - "parameters": [ - { - "name": "projectId", - "description": "Project ID", - "required": true, - "schema": { - "type": "string", - "x-example": "<PROJECT_ID>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "status": { - "type": "string", - "description": "New status for the project", - "x-example": "active", - "enum": [ - "active" - ], - "x-enum-name": "Status", - "x-enum-keys": [ - "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": { - "method": "updateTeam", - "group": "projects", - "cookies": false, - "type": "", - "demo": "projects\/update-team.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "projects.write", - "platforms": [ - "console" - ], - "packaging": false, - "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/projects\/update-team.md", - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [] - } - ], - "parameters": [ - { - "name": "projectId", - "description": "Project unique ID.", + "name": "insightId", + "description": "Insight ID.", "required": true, "schema": { "type": "string", - "x-example": "<PROJECT_ID>" + "x-example": "<INSIGHT_ID>" }, "in": "path" } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "teamId": { - "type": "string", - "description": "Team ID of the team to transfer project to.", - "x-example": "<TEAM_ID>" - } - }, - "required": [ - "teamId" - ] - } - } - } - } + ] } }, - "\/proxy\/rules": { + "\/sites": { "get": { - "summary": "List rules", - "operationId": "proxyListRules", + "summary": "List sites", + "operationId": "sitesList", "tags": [ - "proxy" + "sites" ], - "description": "Get a list of all the proxy rules. You can use the query params to filter your results.", + "description": "Get a list of all the project's sites. You can use the query params to filter your results.", "responses": { "200": { - "description": "Rule List", + "description": "Sites List", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/proxyRuleList" + "$ref": "#\/components\/schemas\/siteList" } } } @@ -67430,15 +67434,15 @@ }, "deprecated": false, "x-appwrite": { - "method": "listRules", - "group": "rules", + "method": "list", + "group": "sites", "cookies": false, "type": "", - "demo": "proxy\/list-rules.md", + "demo": "sites\/list.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "rules.read", + "scope": "sites.read", "platforms": [ "console", "server" @@ -67458,7 +67462,7 @@ "parameters": [ { "name": "queries", - "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/databases#querying-documents). Maximum of 100 queries are allowed, each 4096 characters long. You may filter on the following attributes: domain, type, trigger, deploymentResourceType, deploymentResourceId, deploymentId, deploymentVcsProviderBranch", + "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/queries). 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", @@ -67469,6 +67473,17 @@ }, "in": "query" }, + { + "name": "search", + "description": "Search term to filter your list results. Max length: 256 chars.", + "required": false, + "schema": { + "type": "string", + "x-example": "<SEARCH>", + "default": "" + }, + "in": "query" + }, { "name": "total", "description": "When set to false, the total count returned will be 0 and will not be calculated.", @@ -67481,23 +67496,21 @@ "in": "query" } ] - } - }, - "\/proxy\/rules\/api": { + }, "post": { - "summary": "Create API rule", - "operationId": "proxyCreateAPIRule", + "summary": "Create site", + "operationId": "sitesCreate", "tags": [ - "proxy" + "sites" ], - "description": "Create a new proxy rule for serving Appwrite's API on custom domain.\n\nRule ID is automatically generated as MD5 hash of a rule domain for performance purposes.", + "description": "Create a new site.", "responses": { "201": { - "description": "Rule", + "description": "Site", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/proxyRule" + "$ref": "#\/components\/schemas\/site" } } } @@ -67505,15 +67518,15 @@ }, "deprecated": false, "x-appwrite": { - "method": "createAPIRule", - "group": "rules", + "method": "create", + "group": "sites", "cookies": false, "type": "", - "demo": "proxy\/create-api-rule.md", - "rate-limit": 10, - "rate-time": 60, - "rate-key": "userId:{userId}, url:{url}", - "scope": "rules.write", + "demo": "sites\/create.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "sites.write", "platforms": [ "console", "server" @@ -67536,94 +67549,387 @@ "schema": { "type": "object", "properties": { - "domain": { + "siteId": { "type": "string", - "description": "Domain name.", - "x-example": null - } - }, - "required": [ - "domain" - ] - } - } - } - } - } - }, - "\/proxy\/rules\/function": { - "post": { - "summary": "Create function rule", - "operationId": "proxyCreateFunctionRule", - "tags": [ - "proxy" - ], - "description": "Create a new proxy rule for executing Appwrite Function on custom domain.\n\nRule ID is automatically generated as MD5 hash of a rule domain for performance purposes.", - "responses": { - "201": { - "description": "Rule", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/proxyRule" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "method": "createFunctionRule", - "group": "rules", - "cookies": false, - "type": "", - "demo": "proxy\/create-function-rule.md", - "rate-limit": 10, - "rate-time": 60, - "rate-key": "userId:{userId}, url:{url}", - "scope": "rules.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "domain": { + "description": "Site ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.", + "x-example": "<SITE_ID>", + "x-appwrite": { + "idGenerator": "ID.unique" + } + }, + "name": { "type": "string", - "description": "Domain name.", - "x-example": null + "description": "Site name. Max length: 128 chars.", + "x-example": "<NAME>" }, - "functionId": { + "framework": { "type": "string", - "description": "ID of function to be executed.", - "x-example": "<FUNCTION_ID>" + "description": "Sites framework.", + "x-example": "analog", + "enum": [ + "analog", + "angular", + "nextjs", + "react", + "nuxt", + "vue", + "sveltekit", + "astro", + "tanstack-start", + "remix", + "lynx", + "flutter", + "react-native", + "vite", + "other" + ], + "x-enum-name": "Framework", + "x-enum-keys": [ + "analog", + "angular", + "nextjs", + "react", + "nuxt", + "vue", + "sveltekit", + "astro", + "tanstack-start", + "remix", + "lynx", + "flutter", + "react-native", + "vite", + "other" + ] }, - "branch": { + "enabled": { + "type": "boolean", + "description": "Is site enabled? When set to 'disabled', users cannot access the site but Server SDKs with and API key can still access the site. No data is lost when this is toggled.", + "default": true, + "x-example": false + }, + "logging": { + "type": "boolean", + "description": "When disabled, request logs will exclude logs and errors, and site responses will be slightly faster.", + "default": true, + "x-example": false + }, + "timeout": { + "type": "integer", + "description": "Maximum request time in seconds.", + "default": 30, + "x-example": 1, + "format": "int32" + }, + "installCommand": { "type": "string", - "description": "Name of VCS branch to deploy changes automatically", + "description": "Install Command.", "default": "", - "x-example": "<BRANCH>" + "x-example": "<INSTALL_COMMAND>" + }, + "buildCommand": { + "type": "string", + "description": "Build Command.", + "default": "", + "x-example": "<BUILD_COMMAND>" + }, + "startCommand": { + "type": "string", + "description": "Custom start command. Leave empty to use default.", + "default": "", + "x-example": "<START_COMMAND>" + }, + "outputDirectory": { + "type": "string", + "description": "Output Directory for site.", + "default": "", + "x-example": "<OUTPUT_DIRECTORY>" + }, + "buildRuntime": { + "type": "string", + "description": "Runtime to use during build step.", + "x-example": "node-14.5", + "enum": [ + "node-14.5", + "node-16.0", + "node-18.0", + "node-19.0", + "node-20.0", + "node-21.0", + "node-22", + "node-23", + "node-24", + "node-25", + "php-8.0", + "php-8.1", + "php-8.2", + "php-8.3", + "php-8.4", + "ruby-3.0", + "ruby-3.1", + "ruby-3.2", + "ruby-3.3", + "ruby-3.4", + "ruby-4.0", + "python-3.8", + "python-3.9", + "python-3.10", + "python-3.11", + "python-3.12", + "python-3.13", + "python-3.14", + "python-ml-3.11", + "python-ml-3.12", + "python-ml-3.13", + "deno-1.40", + "deno-1.46", + "deno-2.0", + "deno-2.5", + "deno-2.6", + "dart-2.15", + "dart-2.16", + "dart-2.17", + "dart-2.18", + "dart-2.19", + "dart-3.0", + "dart-3.1", + "dart-3.3", + "dart-3.5", + "dart-3.8", + "dart-3.9", + "dart-3.10", + "dart-3.11", + "dart-3.12", + "dotnet-6.0", + "dotnet-7.0", + "dotnet-8.0", + "dotnet-10", + "java-8.0", + "java-11.0", + "java-17.0", + "java-18.0", + "java-21.0", + "java-22", + "java-25", + "swift-5.5", + "swift-5.8", + "swift-5.9", + "swift-5.10", + "swift-6.2", + "kotlin-1.6", + "kotlin-1.8", + "kotlin-1.9", + "kotlin-2.0", + "kotlin-2.3", + "cpp-17", + "cpp-20", + "bun-1.0", + "bun-1.1", + "bun-1.2", + "bun-1.3", + "go-1.23", + "go-1.24", + "go-1.25", + "go-1.26", + "rust-1.83", + "static-1", + "flutter-3.24", + "flutter-3.27", + "flutter-3.29", + "flutter-3.32", + "flutter-3.35", + "flutter-3.38", + "flutter-3.41", + "flutter-3.44" + ], + "x-enum-name": "BuildRuntime", + "x-enum-keys": [ + "node-14.5", + "node-16.0", + "node-18.0", + "node-19.0", + "node-20.0", + "node-21.0", + "node-22", + "node-23", + "node-24", + "node-25", + "php-8.0", + "php-8.1", + "php-8.2", + "php-8.3", + "php-8.4", + "ruby-3.0", + "ruby-3.1", + "ruby-3.2", + "ruby-3.3", + "ruby-3.4", + "ruby-4.0", + "python-3.8", + "python-3.9", + "python-3.10", + "python-3.11", + "python-3.12", + "python-3.13", + "python-3.14", + "python-ml-3.11", + "python-ml-3.12", + "python-ml-3.13", + "deno-1.40", + "deno-1.46", + "deno-2.0", + "deno-2.5", + "deno-2.6", + "dart-2.15", + "dart-2.16", + "dart-2.17", + "dart-2.18", + "dart-2.19", + "dart-3.0", + "dart-3.1", + "dart-3.3", + "dart-3.5", + "dart-3.8", + "dart-3.9", + "dart-3.10", + "dart-3.11", + "dart-3.12", + "dotnet-6.0", + "dotnet-7.0", + "dotnet-8.0", + "dotnet-10", + "java-8.0", + "java-11.0", + "java-17.0", + "java-18.0", + "java-21.0", + "java-22", + "java-25", + "swift-5.5", + "swift-5.8", + "swift-5.9", + "swift-5.10", + "swift-6.2", + "kotlin-1.6", + "kotlin-1.8", + "kotlin-1.9", + "kotlin-2.0", + "kotlin-2.3", + "cpp-17", + "cpp-20", + "bun-1.0", + "bun-1.1", + "bun-1.2", + "bun-1.3", + "go-1.23", + "go-1.24", + "go-1.25", + "go-1.26", + "rust-1.83", + "static-1", + "flutter-3.24", + "flutter-3.27", + "flutter-3.29", + "flutter-3.32", + "flutter-3.35", + "flutter-3.38", + "flutter-3.41", + "flutter-3.44" + ] + }, + "adapter": { + "type": "string", + "description": "Framework adapter defining rendering strategy. Allowed values are: static, ssr", + "x-example": "static", + "enum": [ + "static", + "ssr" + ], + "x-enum-name": "Adapter", + "x-enum-keys": [ + "static", + "ssr" + ] + }, + "installationId": { + "type": "string", + "description": "Appwrite Installation ID for VCS (Version Control System) deployment.", + "default": "", + "x-example": "<INSTALLATION_ID>" + }, + "fallbackFile": { + "type": "string", + "description": "Fallback file for single page application sites.", + "default": "", + "x-example": "<FALLBACK_FILE>" + }, + "providerRepositoryId": { + "type": "string", + "description": "Repository ID of the repo linked to the site.", + "default": "", + "x-example": "<PROVIDER_REPOSITORY_ID>" + }, + "providerBranch": { + "type": "string", + "description": "Production branch for the repo linked to the site.", + "default": "", + "x-example": "<PROVIDER_BRANCH>" + }, + "providerSilentMode": { + "type": "boolean", + "description": "Is the VCS (Version Control System) connection in silent mode for the repo linked to the site? In silent mode, comments will not be made on commits and pull requests.", + "default": false, + "x-example": false + }, + "providerRootDirectory": { + "type": "string", + "description": "Path to site code in the linked repo.", + "default": "", + "x-example": "<PROVIDER_ROOT_DIRECTORY>" + }, + "providerBranches": { + "type": "array", + "description": "List of branch name patterns to trigger automatic deployments. Supports wildcards. Leave empty to deploy on all branches.", + "default": [], + "x-example": null, + "items": { + "type": "string" + } + }, + "providerPaths": { + "type": "array", + "description": "List of file path patterns to trigger automatic deployments. Supports wildcards. Leave empty to deploy on all file changes.", + "default": [], + "x-example": null, + "items": { + "type": "string" + } + }, + "buildSpecification": { + "type": "string", + "description": "Build specification for the site deployments.", + "default": {}, + "x-example": null + }, + "runtimeSpecification": { + "type": "string", + "description": "Runtime specification for the SSR executions.", + "default": {}, + "x-example": null + }, + "deploymentRetention": { + "type": "integer", + "description": "Days to keep non-active deployments before deletion. Value 0 means all deployments will be kept.", + "default": 0, + "x-example": 0, + "format": "int32" } }, "required": [ - "domain", - "functionId" + "siteId", + "name", + "framework", + "buildRuntime" ] } } @@ -67631,21 +67937,21 @@ } } }, - "\/proxy\/rules\/redirect": { - "post": { - "summary": "Create redirect rule", - "operationId": "proxyCreateRedirectRule", + "\/sites\/frameworks": { + "get": { + "summary": "List frameworks", + "operationId": "sitesListFrameworks", "tags": [ - "proxy" + "sites" ], - "description": "Create a new proxy rule for to redirect from custom domain to another domain.\n\nRule ID is automatically generated as MD5 hash of a rule domain for performance purposes.", + "description": "Get a list of all frameworks that are currently available on the server instance.", "responses": { - "201": { - "description": "Rule", + "200": { + "description": "Frameworks List", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/proxyRule" + "$ref": "#\/components\/schemas\/frameworkList" } } } @@ -67653,15 +67959,15 @@ }, "deprecated": false, "x-appwrite": { - "method": "createRedirectRule", - "group": "rules", + "method": "listFrameworks", + "group": "frameworks", "cookies": false, "type": "", - "demo": "proxy\/create-redirect-rule.md", - "rate-limit": 10, - "rate-time": 60, - "rate-key": "userId:{userId}, url:{url}", - "scope": "rules.write", + "demo": "sites\/list-frameworks.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "public", "platforms": [ "console", "server" @@ -67677,170 +67983,24 @@ "Project": [], "Key": [] } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "domain": { - "type": "string", - "description": "Domain name.", - "x-example": null - }, - "url": { - "type": "string", - "description": "Target URL of redirection", - "x-example": "https:\/\/example.com", - "format": "url" - }, - "statusCode": { - "type": "string", - "description": "Status code of redirection", - "x-example": "301", - "enum": [ - "301", - "302", - "307", - "308" - ], - "x-enum-name": "StatusCode", - "x-enum-keys": [ - "MovedPermanently", - "Found", - "TemporaryRedirect", - "PermanentRedirect" - ] - }, - "resourceId": { - "type": "string", - "description": "ID of parent resource.", - "x-example": "<RESOURCE_ID>" - }, - "resourceType": { - "type": "string", - "description": "Type of parent resource.", - "x-example": "site", - "enum": [ - "site", - "function" - ], - "x-enum-name": "ProxyResourceType", - "x-enum-keys": [ - "Site", - "Function" - ] - } - }, - "required": [ - "domain", - "url", - "statusCode", - "resourceId", - "resourceType" - ] - } - } - } - } + ] } }, - "\/proxy\/rules\/site": { - "post": { - "summary": "Create site rule", - "operationId": "proxyCreateSiteRule", - "tags": [ - "proxy" - ], - "description": "Create a new proxy rule for serving Appwrite Site on custom domain.\n\nRule ID is automatically generated as MD5 hash of a rule domain for performance purposes.", - "responses": { - "201": { - "description": "Rule", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/proxyRule" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "method": "createSiteRule", - "group": "rules", - "cookies": false, - "type": "", - "demo": "proxy\/create-site-rule.md", - "rate-limit": 10, - "rate-time": 60, - "rate-key": "userId:{userId}, url:{url}", - "scope": "rules.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "domain": { - "type": "string", - "description": "Domain name.", - "x-example": null - }, - "siteId": { - "type": "string", - "description": "ID of site to be executed.", - "x-example": "<SITE_ID>" - }, - "branch": { - "type": "string", - "description": "Name of VCS branch to deploy changes automatically", - "default": "", - "x-example": "<BRANCH>" - } - }, - "required": [ - "domain", - "siteId" - ] - } - } - } - } - } - }, - "\/proxy\/rules\/{ruleId}": { + "\/sites\/specifications": { "get": { - "summary": "Get rule", - "operationId": "proxyGetRule", + "summary": "List specifications", + "operationId": "sitesListSpecifications", "tags": [ - "proxy" + "sites" ], - "description": "Get a proxy rule by its unique ID.", + "description": "List allowed site specifications for this instance.", "responses": { "200": { - "description": "Rule", + "description": "Specifications List", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/proxyRule" + "$ref": "#\/components\/schemas\/specificationList" } } } @@ -67848,70 +68008,18 @@ }, "deprecated": false, "x-appwrite": { - "method": "getRule", - "group": "rules", - "cookies": false, - "type": "", - "demo": "proxy\/get-rule.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "rules.read", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "ruleId", - "description": "Rule ID.", - "required": true, - "schema": { - "type": "string", - "x-example": "<RULE_ID>" - }, - "in": "path" - } - ] - }, - "delete": { - "summary": "Delete rule", - "operationId": "proxyDeleteRule", - "tags": [ - "proxy" - ], - "description": "Delete a proxy rule by its unique ID.", - "responses": { - "204": { - "description": "No content" - } - }, - "deprecated": false, - "x-appwrite": { - "method": "deleteRule", - "group": "rules", + "method": "listSpecifications", + "group": "frameworks", "cookies": false, "type": "", - "demo": "proxy\/delete-rule.md", + "demo": "sites\/list-specifications.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "rules.write", + "scope": "sites.read", "platforms": [ - "console", - "server" + "server", + "console" ], "packaging": false, "public": true, @@ -67927,33 +68035,34 @@ ], "parameters": [ { - "name": "ruleId", - "description": "Rule ID.", - "required": true, + "name": "type", + "description": "Specification type to list. Can be one of: runtimes, builds.", + "required": false, "schema": { "type": "string", - "x-example": "<RULE_ID>" + "x-example": "runtimes", + "default": "runtimes" }, - "in": "path" + "in": "query" } ] } }, - "\/proxy\/rules\/{ruleId}\/status": { - "patch": { - "summary": "Update rule status", - "operationId": "proxyUpdateRuleStatus", + "\/sites\/templates": { + "get": { + "summary": "List templates", + "operationId": "sitesListTemplates", "tags": [ - "proxy" + "sites" ], - "description": "If not succeeded yet, retry verification process of a proxy rule domain. This endpoint triggers domain verification by checking DNS records. If verification is successful, a TLS certificate will be automatically provisioned for the domain asynchronously in the background.", + "description": "List available site templates. You can use template details in [createSite](\/docs\/references\/cloud\/server-nodejs\/sites#create) method.", "responses": { "200": { - "description": "Rule", + "description": "Site Templates List", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/proxyRule" + "$ref": "#\/components\/schemas\/templateSiteList" } } } @@ -67961,18 +68070,17 @@ }, "deprecated": false, "x-appwrite": { - "method": "updateRuleStatus", - "group": "rules", + "method": "listTemplates", + "group": "templates", "cookies": false, "type": "", - "demo": "proxy\/update-rule-status.md", + "demo": "sites\/list-templates.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "rules.write", + "scope": "public", "platforms": [ - "console", - "server" + "console" ], "packaging": false, "public": true, @@ -67982,115 +68090,136 @@ }, "security": [ { - "Project": [], - "Key": [] + "Project": [] } ], "parameters": [ { - "name": "ruleId", - "description": "Rule ID.", - "required": true, + "name": "frameworks", + "description": "List of frameworks allowed for filtering site templates. Maximum of 100 frameworks are allowed.", + "required": false, "schema": { - "type": "string", - "x-example": "<RULE_ID>" + "type": "array", + "items": { + "type": "string", + "enum": [ + "analog", + "angular", + "nextjs", + "react", + "nuxt", + "vue", + "sveltekit", + "astro", + "tanstack-start", + "remix", + "lynx", + "flutter", + "react-native", + "vite", + "other" + ], + "x-enum-name": "Framework", + "x-enum-keys": [ + "analog", + "angular", + "nextjs", + "react", + "nuxt", + "vue", + "sveltekit", + "astro", + "tanstack-start", + "remix", + "lynx", + "flutter", + "react-native", + "vite", + "other" + ] + }, + "default": [] }, - "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": { - "method": "listReports", - "group": "reports", - "cookies": false, - "type": "", - "demo": "advisor\/list-reports.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "reports.read", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/advisor\/list-reports.md", - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ + "in": "query" + }, { - "name": "queries", - "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/queries). Maximum of 100 queries are allowed, each 4096 characters long. You may filter on the following attributes: appId, type, targetType, target, analyzedAt", + "name": "useCases", + "description": "List of use cases allowed for filtering site templates. Maximum of 100 use cases are allowed.", "required": false, "schema": { "type": "array", "items": { - "type": "string" + "type": "string", + "enum": [ + "portfolio", + "starter", + "events", + "ecommerce", + "documentation", + "blog", + "ai", + "forms", + "dashboard" + ], + "x-enum-name": "SiteTemplateUseCase", + "x-enum-keys": [ + "portfolio", + "starter", + "events", + "ecommerce", + "documentation", + "blog", + "ai", + "forms", + "dashboard" + ] }, "default": [] }, "in": "query" }, { - "name": "total", - "description": "When set to false, the total count returned will be 0 and will not be calculated.", + "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": "boolean", - "x-example": false, - "default": true + "type": "integer", + "format": "int32", + "x-example": 1, + "default": 25 + }, + "in": "query" + }, + { + "name": "offset", + "description": "Offset the list of returned templates. Maximum offset is 5000.", + "required": false, + "schema": { + "type": "integer", + "format": "int32", + "x-example": 0, + "default": 0 }, "in": "query" } ] } }, - "\/reports\/{reportId}": { + "\/sites\/templates\/{templateId}": { "get": { - "summary": "Get report", - "operationId": "advisorGetReport", + "summary": "Get site template", + "operationId": "sitesGetTemplate", "tags": [ - "advisor" + "sites" ], - "description": "Get an analyzer report by its unique ID. The response includes the report's metadata and the nested insights it produced.\n", + "description": "Get a site template using ID. You can use template details in [createSite](\/docs\/references\/cloud\/server-nodejs\/sites#create) method.", "responses": { "200": { - "description": "Report", + "description": "Template Site", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/report" + "$ref": "#\/components\/schemas\/templateSite" } } } @@ -68098,75 +68227,80 @@ }, "deprecated": false, "x-appwrite": { - "method": "getReport", - "group": "reports", + "method": "getTemplate", + "group": "templates", "cookies": false, "type": "", - "demo": "advisor\/get-report.md", + "demo": "sites\/get-template.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "reports.read", + "scope": "public", "platforms": [ - "console", - "server" + "console" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/advisor\/get-report.md", "auth": { "Project": [] } }, "security": [ { - "Project": [], - "Key": [] + "Project": [] } ], "parameters": [ { - "name": "reportId", - "description": "Report ID.", + "name": "templateId", + "description": "Template ID.", "required": true, "schema": { "type": "string", - "x-example": "<REPORT_ID>" + "x-example": "<TEMPLATE_ID>" }, "in": "path" } ] - }, - "delete": { - "summary": "Delete report", - "operationId": "advisorDeleteReport", + } + }, + "\/sites\/{siteId}": { + "get": { + "summary": "Get site", + "operationId": "sitesGet", "tags": [ - "advisor" + "sites" ], - "description": "Delete an analyzer report by its unique ID. Nested insights and CTA metadata are removed asynchronously by the deletes worker.\n", + "description": "Get a site by its unique ID.", "responses": { - "204": { - "description": "No content" + "200": { + "description": "Site", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/site" + } + } + } } }, "deprecated": false, "x-appwrite": { - "method": "deleteReport", - "group": "reports", + "method": "get", + "group": "sites", "cookies": false, "type": "", - "demo": "advisor\/delete-report.md", - "rate-limit": 60, - "rate-time": 60, - "rate-key": "projectId:{projectId},userId:{userId}", - "scope": "reports.write", + "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, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/advisor\/delete-report.md", "auth": { "Project": [] } @@ -68179,33 +68313,31 @@ ], "parameters": [ { - "name": "reportId", - "description": "Report ID.", + "name": "siteId", + "description": "Site ID.", "required": true, "schema": { "type": "string", - "x-example": "<REPORT_ID>" + "x-example": "<SITE_ID>" }, "in": "path" } ] - } - }, - "\/reports\/{reportId}\/insights": { - "get": { - "summary": "List insights", - "operationId": "advisorListInsights", + }, + "put": { + "summary": "Update site", + "operationId": "sitesUpdate", "tags": [ - "advisor" + "sites" ], - "description": "List the insights produced under a single analyzer report. You can use the query params to filter your results further.\n", + "description": "Update site by its unique ID.", "responses": { "200": { - "description": "Insights List", + "description": "Site", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/insightList" + "$ref": "#\/components\/schemas\/site" } } } @@ -68213,22 +68345,21 @@ }, "deprecated": false, "x-appwrite": { - "method": "listInsights", - "group": "insights", + "method": "update", + "group": "sites", "cookies": false, "type": "", - "demo": "advisor\/list-insights.md", + "demo": "sites\/update.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "insights.read", + "scope": "sites.write", "platforms": [ "console", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/advisor\/list-insights.md", "auth": { "Project": [] } @@ -68241,243 +68372,14 @@ ], "parameters": [ { - "name": "reportId", - "description": "Parent report ID.", + "name": "siteId", + "description": "Site ID.", "required": true, "schema": { "type": "string", - "x-example": "<REPORT_ID>" + "x-example": "<SITE_ID>" }, "in": "path" - }, - { - "name": "queries", - "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/queries). Maximum of 100 queries are allowed, each 4096 characters long. You may filter on the following attributes: type, severity, status, resourceType, resourceId, parentResourceType, parentResourceId, analyzedAt, dismissedAt, dismissedBy", - "required": false, - "schema": { - "type": "array", - "items": { - "type": "string" - }, - "default": [] - }, - "in": "query" - }, - { - "name": "total", - "description": "When set to false, the total count returned will be 0 and will not be calculated.", - "required": false, - "schema": { - "type": "boolean", - "x-example": false, - "default": true - }, - "in": "query" - } - ] - } - }, - "\/reports\/{reportId}\/insights\/{insightId}": { - "get": { - "summary": "Get insight", - "operationId": "advisorGetInsight", - "tags": [ - "advisor" - ], - "description": "Get an insight by its unique ID, scoped to its parent report.\n", - "responses": { - "200": { - "description": "Insight", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/insight" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "method": "getInsight", - "group": "insights", - "cookies": false, - "type": "", - "demo": "advisor\/get-insight.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "insights.read", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/advisor\/get-insight.md", - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "reportId", - "description": "Parent report ID.", - "required": true, - "schema": { - "type": "string", - "x-example": "<REPORT_ID>" - }, - "in": "path" - }, - { - "name": "insightId", - "description": "Insight ID.", - "required": true, - "schema": { - "type": "string", - "x-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": { - "method": "list", - "group": "sites", - "cookies": false, - "type": "", - "demo": "sites\/list.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "sites.read", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "queries", - "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/queries). Maximum of 100 queries are allowed, each 4096 characters long. You may filter on the following attributes: name, enabled, framework, deploymentId, buildCommand, installCommand, outputDirectory, installationId", - "required": false, - "schema": { - "type": "array", - "items": { - "type": "string" - }, - "default": [] - }, - "in": "query" - }, - { - "name": "search", - "description": "Search term to filter your list results. Max length: 256 chars.", - "required": false, - "schema": { - "type": "string", - "x-example": "<SEARCH>", - "default": "" - }, - "in": "query" - }, - { - "name": "total", - "description": "When set to false, the total count returned will be 0 and will not be calculated.", - "required": false, - "schema": { - "type": "boolean", - "x-example": false, - "default": true - }, - "in": "query" - } - ] - }, - "post": { - "summary": "Create site", - "operationId": "sitesCreate", - "tags": [ - "sites" - ], - "description": "Create a new site.", - "responses": { - "201": { - "description": "Site", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/site" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "method": "create", - "group": "sites", - "cookies": false, - "type": "", - "demo": "sites\/create.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "sites.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] } ], "requestBody": { @@ -68486,14 +68388,6 @@ "schema": { "type": "object", "properties": { - "siteId": { - "type": "string", - "description": "Site ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.", - "x-example": "<SITE_ID>", - "x-appwrite": { - "idGenerator": "ID.unique" - } - }, "name": { "type": "string", "description": "Site name. Max length: 128 chars.", @@ -68788,18 +68682,18 @@ "ssr" ] }, - "installationId": { - "type": "string", - "description": "Appwrite Installation ID for VCS (Version Control System) deployment.", - "default": "", - "x-example": "<INSTALLATION_ID>" - }, "fallbackFile": { "type": "string", "description": "Fallback file for single page application sites.", "default": "", "x-example": "<FALLBACK_FILE>" }, + "installationId": { + "type": "string", + "description": "Appwrite Installation ID for VCS (Version Control System) deployment.", + "default": "", + "x-example": "<INSTALLATION_ID>" + }, "providerRepositoryId": { "type": "string", "description": "Repository ID of the repo linked to the site.", @@ -68827,26 +68721,26 @@ "providerBranches": { "type": "array", "description": "List of branch name patterns to trigger automatic deployments. Supports wildcards. Leave empty to deploy on all branches.", - "default": [], "x-example": null, "items": { "type": "string" - } + }, + "x-nullable": true }, "providerPaths": { "type": "array", "description": "List of file path patterns to trigger automatic deployments. Supports wildcards. Leave empty to deploy on all file changes.", - "default": [], "x-example": null, "items": { "type": "string" - } + }, + "x-nullable": true }, "buildSpecification": { "type": "string", "description": "Build specification for the site deployments.", - "default": {}, - "x-example": null + "x-example": null, + "x-nullable": true }, "runtimeSpecification": { "type": "string", @@ -68863,48 +68757,37 @@ } }, "required": [ - "siteId", "name", - "framework", - "buildRuntime" + "framework" ] } } } } - } - }, - "\/sites\/frameworks": { - "get": { - "summary": "List frameworks", - "operationId": "sitesListFrameworks", + }, + "delete": { + "summary": "Delete site", + "operationId": "sitesDelete", "tags": [ "sites" ], - "description": "Get a list of all frameworks that are currently available on the server instance.", + "description": "Delete a site by its unique ID.", "responses": { - "200": { - "description": "Frameworks List", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/frameworkList" - } - } - } + "204": { + "description": "No content" } }, "deprecated": false, "x-appwrite": { - "method": "listFrameworks", - "group": "frameworks", + "method": "delete", + "group": "sites", "cookies": false, "type": "", - "demo": "sites\/list-frameworks.md", + "demo": "sites\/delete.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "public", + "scope": "sites.write", "platforms": [ "console", "server" @@ -68920,24 +68803,36 @@ "Project": [], "Key": [] } + ], + "parameters": [ + { + "name": "siteId", + "description": "Site ID.", + "required": true, + "schema": { + "type": "string", + "x-example": "<SITE_ID>" + }, + "in": "path" + } ] } }, - "\/sites\/specifications": { - "get": { - "summary": "List specifications", - "operationId": "sitesListSpecifications", + "\/sites\/{siteId}\/deployment": { + "patch": { + "summary": "Update site's deployment", + "operationId": "sitesUpdateSiteDeployment", "tags": [ "sites" ], - "description": "List allowed site specifications for this instance.", + "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": "Specifications List", + "description": "Site", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/specificationList" + "$ref": "#\/components\/schemas\/site" } } } @@ -68945,18 +68840,18 @@ }, "deprecated": false, "x-appwrite": { - "method": "listSpecifications", - "group": "frameworks", + "method": "updateSiteDeployment", + "group": "sites", "cookies": false, "type": "", - "demo": "sites\/list-specifications.md", + "demo": "sites\/update-site-deployment.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "sites.read", + "scope": "sites.write", "platforms": [ - "server", - "console" + "console", + "server" ], "packaging": false, "public": true, @@ -68972,34 +68867,52 @@ ], "parameters": [ { - "name": "type", - "description": "Specification type to list. Can be one of: runtimes, builds.", - "required": false, + "name": "siteId", + "description": "Site ID.", + "required": true, "schema": { "type": "string", - "x-example": "runtimes", - "default": "runtimes" + "x-example": "<SITE_ID>" }, - "in": "query" + "in": "path" } - ] + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "deploymentId": { + "type": "string", + "description": "Deployment ID.", + "x-example": "<DEPLOYMENT_ID>" + } + }, + "required": [ + "deploymentId" + ] + } + } + } + } } }, - "\/sites\/templates": { + "\/sites\/{siteId}\/deployments": { "get": { - "summary": "List templates", - "operationId": "sitesListTemplates", + "summary": "List deployments", + "operationId": "sitesListDeployments", "tags": [ "sites" ], - "description": "List available site templates. You can use template details in [createSite](\/docs\/references\/cloud\/server-nodejs\/sites#create) method.", + "description": "Get a list of all the site's code deployments. You can use the query params to filter your results.", "responses": { "200": { - "description": "Site Templates List", + "description": "Deployments List", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/templateSiteList" + "$ref": "#\/components\/schemas\/deploymentList" } } } @@ -69007,17 +68920,18 @@ }, "deprecated": false, "x-appwrite": { - "method": "listTemplates", - "group": "templates", + "method": "listDeployments", + "group": "deployments", "cookies": false, "type": "", - "demo": "sites\/list-templates.md", + "demo": "sites\/list-deployments.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "public", + "scope": "sites.read", "platforms": [ - "console" + "console", + "server" ], "packaging": false, "public": true, @@ -69027,136 +68941,72 @@ }, "security": [ { - "Project": [] + "Project": [], + "Key": [] } ], "parameters": [ { - "name": "frameworks", - "description": "List of frameworks allowed for filtering site templates. Maximum of 100 frameworks are allowed.", - "required": false, + "name": "siteId", + "description": "Site ID.", + "required": true, "schema": { - "type": "array", - "items": { - "type": "string", - "enum": [ - "analog", - "angular", - "nextjs", - "react", - "nuxt", - "vue", - "sveltekit", - "astro", - "tanstack-start", - "remix", - "lynx", - "flutter", - "react-native", - "vite", - "other" - ], - "x-enum-name": "Framework", - "x-enum-keys": [ - "analog", - "angular", - "nextjs", - "react", - "nuxt", - "vue", - "sveltekit", - "astro", - "tanstack-start", - "remix", - "lynx", - "flutter", - "react-native", - "vite", - "other" - ] - }, - "default": [] + "type": "string", + "x-example": "<SITE_ID>" }, - "in": "query" + "in": "path" }, { - "name": "useCases", - "description": "List of use cases allowed for filtering site templates. Maximum of 100 use cases are allowed.", + "name": "queries", + "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more 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", - "enum": [ - "portfolio", - "starter", - "events", - "ecommerce", - "documentation", - "blog", - "ai", - "forms", - "dashboard" - ], - "x-enum-name": "SiteTemplateUseCase", - "x-enum-keys": [ - "portfolio", - "starter", - "events", - "ecommerce", - "documentation", - "blog", - "ai", - "forms", - "dashboard" - ] + "type": "string" }, "default": [] }, "in": "query" }, { - "name": "limit", - "description": "Limit the number of templates returned in the response. Default limit is 25, and maximum limit is 5000.", + "name": "search", + "description": "Search term to filter your list results. Max length: 256 chars.", "required": false, "schema": { - "type": "integer", - "format": "int32", - "x-example": 1, - "default": 25 + "type": "string", + "x-example": "<SEARCH>", + "default": "" }, "in": "query" }, { - "name": "offset", - "description": "Offset the list of returned templates. Maximum offset is 5000.", + "name": "total", + "description": "When set to false, the total count returned will be 0 and will not be calculated.", "required": false, "schema": { - "type": "integer", - "format": "int32", - "x-example": 0, - "default": 0 + "type": "boolean", + "x-example": false, + "default": true }, "in": "query" } ] - } - }, - "\/sites\/templates\/{templateId}": { - "get": { - "summary": "Get site template", - "operationId": "sitesGetTemplate", + }, + "post": { + "summary": "Create deployment", + "operationId": "sitesCreateDeployment", "tags": [ "sites" ], - "description": "Get a site template using ID. You can use template details in [createSite](\/docs\/references\/cloud\/server-nodejs\/sites#create) method.", + "description": "Create a new site code deployment. Use this endpoint to upload a new version of your site code. To activate your newly uploaded code, you'll need to update the site's deployment to use your new deployment ID.", "responses": { - "200": { - "description": "Template Site", + "202": { + "description": "Deployment", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/templateSite" + "$ref": "#\/components\/schemas\/deployment" } } } @@ -69164,19 +69014,20 @@ }, "deprecated": false, "x-appwrite": { - "method": "getTemplate", - "group": "templates", + "method": "createDeployment", + "group": "deployments", "cookies": false, - "type": "", - "demo": "sites\/get-template.md", + "type": "upload", + "demo": "sites\/create-deployment.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "public", + "scope": "sites.write", "platforms": [ - "console" + "console", + "server" ], - "packaging": false, + "packaging": true, "public": true, "auth": { "Project": [] @@ -69184,56 +69035,102 @@ }, "security": [ { - "Project": [] + "Project": [], + "Key": [] } ], "parameters": [ { - "name": "templateId", - "description": "Template ID.", + "name": "siteId", + "description": "Site ID.", "required": true, "schema": { "type": "string", - "x-example": "<TEMPLATE_ID>" + "x-example": "<SITE_ID>" }, "in": "path" } - ] - } - }, - "\/sites\/usage": { - "get": { - "summary": "Get sites usage", - "operationId": "sitesListUsage", - "tags": [ - "sites" ], - "description": "Get usage metrics and statistics for all sites in the project. View statistics including total deployments, builds, logs, storage usage, and compute time. The response includes both current totals and historical data for each metric. Use the optional range parameter to specify the time window for historical data: 24h (last 24 hours), 30d (last 30 days), or 90d (last 90 days). If not specified, defaults to 30 days.", - "responses": { - "200": { - "description": "UsageSites", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/usageSites" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "method": "listUsage", - "group": null, - "cookies": false, - "type": "", - "demo": "sites\/list-usage.md", + "requestBody": { + "content": { + "multipart\/form-data": { + "schema": { + "type": "object", + "properties": { + "installCommand": { + "type": "string", + "description": "Install Commands.", + "x-example": "<INSTALL_COMMAND>", + "x-nullable": true + }, + "buildCommand": { + "type": "string", + "description": "Build Commands.", + "x-example": "<BUILD_COMMAND>", + "x-nullable": true + }, + "outputDirectory": { + "type": "string", + "description": "Output Directory.", + "x-example": "<OUTPUT_DIRECTORY>", + "x-nullable": true + }, + "code": { + "type": "string", + "description": "Gzip file with your code package. When used with the Appwrite CLI, pass the path to your code directory, and the CLI will automatically package your code. Use a path that is within the current directory.", + "x-example": null, + "format": "binary" + }, + "activate": { + "type": "boolean", + "description": "Automatically activate the deployment when it is finished building.", + "default": false, + "x-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": { + "method": "createDuplicateDeployment", + "group": "deployments", + "cookies": false, + "type": "", + "demo": "sites\/create-duplicate-deployment.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "sites.read", + "scope": "sites.write", "platforms": [ - "console" + "console", + "server" ], "packaging": false, "public": true, @@ -69243,50 +69140,58 @@ }, "security": [ { - "Project": [] + "Project": [], + "Key": [] } ], "parameters": [ { - "name": "range", - "description": "Date range.", - "required": false, + "name": "siteId", + "description": "Site ID.", + "required": true, "schema": { "type": "string", - "x-example": "24h", - "enum": [ - "24h", - "30d", - "90d" - ], - "x-enum-name": "UsageRange", - "x-enum-keys": [ - "Twenty Four Hours", - "Thirty Days", - "Ninety Days" - ], - "default": "30d" + "x-example": "<SITE_ID>" }, - "in": "query" + "in": "path" } - ] + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "deploymentId": { + "type": "string", + "description": "Deployment ID.", + "x-example": "<DEPLOYMENT_ID>" + } + }, + "required": [ + "deploymentId" + ] + } + } + } + } } }, - "\/sites\/{siteId}": { - "get": { - "summary": "Get site", - "operationId": "sitesGet", + "\/sites\/{siteId}\/deployments\/template": { + "post": { + "summary": "Create template deployment", + "operationId": "sitesCreateTemplateDeployment", "tags": [ "sites" ], - "description": "Get a site by its unique ID.", + "description": "Create a deployment based on a template.\n\nUse this endpoint with combination of [listTemplates](https:\/\/appwrite.io\/docs\/products\/sites\/templates) to find the template details.", "responses": { - "200": { - "description": "Site", + "202": { + "description": "Deployment", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/site" + "$ref": "#\/components\/schemas\/deployment" } } } @@ -69294,15 +69199,15 @@ }, "deprecated": false, "x-appwrite": { - "method": "get", - "group": "sites", + "method": "createTemplateDeployment", + "group": "deployments", "cookies": false, "type": "", - "demo": "sites\/get.md", + "demo": "sites\/create-template-deployment.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "sites.read", + "scope": "sites.write", "platforms": [ "console", "server" @@ -69330,22 +69235,84 @@ }, "in": "path" } - ] - }, - "put": { - "summary": "Update site", - "operationId": "sitesUpdate", + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "repository": { + "type": "string", + "description": "Repository name of the template.", + "x-example": "<REPOSITORY>" + }, + "owner": { + "type": "string", + "description": "The name of the owner of the template.", + "x-example": "<OWNER>" + }, + "rootDirectory": { + "type": "string", + "description": "Path to site code in the template repo.", + "x-example": "<ROOT_DIRECTORY>" + }, + "type": { + "type": "string", + "description": "Type for the reference provided. Can be commit, branch, or tag", + "x-example": "branch", + "enum": [ + "branch", + "commit", + "tag" + ], + "x-enum-name": "TemplateReferenceType", + "x-enum-keys": [ + "branch", + "commit", + "tag" + ] + }, + "reference": { + "type": "string", + "description": "Reference value, can be a commit hash, branch name, or release tag", + "x-example": "<REFERENCE>" + }, + "activate": { + "type": "boolean", + "description": "Automatically activate the deployment when it is finished building.", + "default": false, + "x-example": false + } + }, + "required": [ + "repository", + "owner", + "rootDirectory", + "type", + "reference" + ] + } + } + } + } + } + }, + "\/sites\/{siteId}\/deployments\/vcs": { + "post": { + "summary": "Create VCS deployment", + "operationId": "sitesCreateVcsDeployment", "tags": [ "sites" ], - "description": "Update site by its unique ID.", + "description": "Create a deployment when a site is connected to VCS.\n\nThis endpoint lets you create deployment from a branch, commit, or a tag.", "responses": { - "200": { - "description": "Site", + "202": { + "description": "Deployment", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/site" + "$ref": "#\/components\/schemas\/deployment" } } } @@ -69353,11 +69320,11 @@ }, "deprecated": false, "x-appwrite": { - "method": "update", - "group": "sites", + "method": "createVcsDeployment", + "group": "deployments", "cookies": false, "type": "", - "demo": "sites\/update.md", + "demo": "sites\/create-vcs-deployment.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", @@ -69396,406 +69363,75 @@ "schema": { "type": "object", "properties": { - "name": { - "type": "string", - "description": "Site name. Max length: 128 chars.", - "x-example": "<NAME>" - }, - "framework": { + "type": { "type": "string", - "description": "Sites framework.", - "x-example": "analog", + "description": "Type of reference passed. Allowed values are: branch, commit", + "x-example": "branch", "enum": [ - "analog", - "angular", - "nextjs", - "react", - "nuxt", - "vue", - "sveltekit", - "astro", - "tanstack-start", - "remix", - "lynx", - "flutter", - "react-native", - "vite", - "other" + "branch", + "commit", + "tag" ], - "x-enum-name": "Framework", + "x-enum-name": "VCSReferenceType", "x-enum-keys": [ - "analog", - "angular", - "nextjs", - "react", - "nuxt", - "vue", - "sveltekit", - "astro", - "tanstack-start", - "remix", - "lynx", - "flutter", - "react-native", - "vite", - "other" + "branch", + "commit", + "tag" ] }, - "enabled": { - "type": "boolean", - "description": "Is site enabled? When set to 'disabled', users cannot access the site but Server SDKs with and API key can still access the site. No data is lost when this is toggled.", - "default": true, - "x-example": false + "reference": { + "type": "string", + "description": "VCS reference to create deployment from. Depending on type this can be: branch name, commit hash", + "x-example": "<REFERENCE>" }, - "logging": { + "activate": { "type": "boolean", - "description": "When disabled, request logs will exclude logs and errors, and site responses will be slightly faster.", - "default": true, + "description": "Automatically activate the deployment when it is finished building.", + "default": false, "x-example": false - }, - "timeout": { - "type": "integer", - "description": "Maximum request time in seconds.", - "default": 30, - "x-example": 1, - "format": "int32" - }, - "installCommand": { - "type": "string", - "description": "Install Command.", - "default": "", - "x-example": "<INSTALL_COMMAND>" - }, - "buildCommand": { - "type": "string", - "description": "Build Command.", - "default": "", - "x-example": "<BUILD_COMMAND>" - }, - "startCommand": { - "type": "string", - "description": "Custom start command. Leave empty to use default.", - "default": "", - "x-example": "<START_COMMAND>" - }, - "outputDirectory": { - "type": "string", - "description": "Output Directory for site.", - "default": "", - "x-example": "<OUTPUT_DIRECTORY>" - }, - "buildRuntime": { - "type": "string", - "description": "Runtime to use during build step.", - "x-example": "node-14.5", - "enum": [ - "node-14.5", - "node-16.0", - "node-18.0", - "node-19.0", - "node-20.0", - "node-21.0", - "node-22", - "node-23", - "node-24", - "node-25", - "php-8.0", - "php-8.1", - "php-8.2", - "php-8.3", - "php-8.4", - "ruby-3.0", - "ruby-3.1", - "ruby-3.2", - "ruby-3.3", - "ruby-3.4", - "ruby-4.0", - "python-3.8", - "python-3.9", - "python-3.10", - "python-3.11", - "python-3.12", - "python-3.13", - "python-3.14", - "python-ml-3.11", - "python-ml-3.12", - "python-ml-3.13", - "deno-1.40", - "deno-1.46", - "deno-2.0", - "deno-2.5", - "deno-2.6", - "dart-2.15", - "dart-2.16", - "dart-2.17", - "dart-2.18", - "dart-2.19", - "dart-3.0", - "dart-3.1", - "dart-3.3", - "dart-3.5", - "dart-3.8", - "dart-3.9", - "dart-3.10", - "dart-3.11", - "dart-3.12", - "dotnet-6.0", - "dotnet-7.0", - "dotnet-8.0", - "dotnet-10", - "java-8.0", - "java-11.0", - "java-17.0", - "java-18.0", - "java-21.0", - "java-22", - "java-25", - "swift-5.5", - "swift-5.8", - "swift-5.9", - "swift-5.10", - "swift-6.2", - "kotlin-1.6", - "kotlin-1.8", - "kotlin-1.9", - "kotlin-2.0", - "kotlin-2.3", - "cpp-17", - "cpp-20", - "bun-1.0", - "bun-1.1", - "bun-1.2", - "bun-1.3", - "go-1.23", - "go-1.24", - "go-1.25", - "go-1.26", - "rust-1.83", - "static-1", - "flutter-3.24", - "flutter-3.27", - "flutter-3.29", - "flutter-3.32", - "flutter-3.35", - "flutter-3.38", - "flutter-3.41", - "flutter-3.44" - ], - "x-enum-name": "BuildRuntime", - "x-enum-keys": [ - "node-14.5", - "node-16.0", - "node-18.0", - "node-19.0", - "node-20.0", - "node-21.0", - "node-22", - "node-23", - "node-24", - "node-25", - "php-8.0", - "php-8.1", - "php-8.2", - "php-8.3", - "php-8.4", - "ruby-3.0", - "ruby-3.1", - "ruby-3.2", - "ruby-3.3", - "ruby-3.4", - "ruby-4.0", - "python-3.8", - "python-3.9", - "python-3.10", - "python-3.11", - "python-3.12", - "python-3.13", - "python-3.14", - "python-ml-3.11", - "python-ml-3.12", - "python-ml-3.13", - "deno-1.40", - "deno-1.46", - "deno-2.0", - "deno-2.5", - "deno-2.6", - "dart-2.15", - "dart-2.16", - "dart-2.17", - "dart-2.18", - "dart-2.19", - "dart-3.0", - "dart-3.1", - "dart-3.3", - "dart-3.5", - "dart-3.8", - "dart-3.9", - "dart-3.10", - "dart-3.11", - "dart-3.12", - "dotnet-6.0", - "dotnet-7.0", - "dotnet-8.0", - "dotnet-10", - "java-8.0", - "java-11.0", - "java-17.0", - "java-18.0", - "java-21.0", - "java-22", - "java-25", - "swift-5.5", - "swift-5.8", - "swift-5.9", - "swift-5.10", - "swift-6.2", - "kotlin-1.6", - "kotlin-1.8", - "kotlin-1.9", - "kotlin-2.0", - "kotlin-2.3", - "cpp-17", - "cpp-20", - "bun-1.0", - "bun-1.1", - "bun-1.2", - "bun-1.3", - "go-1.23", - "go-1.24", - "go-1.25", - "go-1.26", - "rust-1.83", - "static-1", - "flutter-3.24", - "flutter-3.27", - "flutter-3.29", - "flutter-3.32", - "flutter-3.35", - "flutter-3.38", - "flutter-3.41", - "flutter-3.44" - ] - }, - "adapter": { - "type": "string", - "description": "Framework adapter defining rendering strategy. Allowed values are: static, ssr", - "x-example": "static", - "enum": [ - "static", - "ssr" - ], - "x-enum-name": "Adapter", - "x-enum-keys": [ - "static", - "ssr" - ] - }, - "fallbackFile": { - "type": "string", - "description": "Fallback file for single page application sites.", - "default": "", - "x-example": "<FALLBACK_FILE>" - }, - "installationId": { - "type": "string", - "description": "Appwrite Installation ID for VCS (Version Control System) deployment.", - "default": "", - "x-example": "<INSTALLATION_ID>" - }, - "providerRepositoryId": { - "type": "string", - "description": "Repository ID of the repo linked to the site.", - "default": "", - "x-example": "<PROVIDER_REPOSITORY_ID>" - }, - "providerBranch": { - "type": "string", - "description": "Production branch for the repo linked to the site.", - "default": "", - "x-example": "<PROVIDER_BRANCH>" - }, - "providerSilentMode": { - "type": "boolean", - "description": "Is the VCS (Version Control System) connection in silent mode for the repo linked to the site? In silent mode, comments will not be made on commits and pull requests.", - "default": false, - "x-example": false - }, - "providerRootDirectory": { - "type": "string", - "description": "Path to site code in the linked repo.", - "default": "", - "x-example": "<PROVIDER_ROOT_DIRECTORY>" - }, - "providerBranches": { - "type": "array", - "description": "List of branch name patterns to trigger automatic deployments. Supports wildcards. Leave empty to deploy on all branches.", - "x-example": null, - "items": { - "type": "string" - }, - "x-nullable": true - }, - "providerPaths": { - "type": "array", - "description": "List of file path patterns to trigger automatic deployments. Supports wildcards. Leave empty to deploy on all file changes.", - "x-example": null, - "items": { - "type": "string" - }, - "x-nullable": true - }, - "buildSpecification": { - "type": "string", - "description": "Build specification for the site deployments.", - "x-example": null, - "x-nullable": true - }, - "runtimeSpecification": { - "type": "string", - "description": "Runtime specification for the SSR executions.", - "default": {}, - "x-example": null - }, - "deploymentRetention": { - "type": "integer", - "description": "Days to keep non-active deployments before deletion. Value 0 means all deployments will be kept.", - "default": 0, - "x-example": 0, - "format": "int32" } }, "required": [ - "name", - "framework" + "type", + "reference" ] } } } } - }, - "delete": { - "summary": "Delete site", - "operationId": "sitesDelete", + } + }, + "\/sites\/{siteId}\/deployments\/{deploymentId}": { + "get": { + "summary": "Get deployment", + "operationId": "sitesGetDeployment", "tags": [ "sites" ], - "description": "Delete a site by its unique ID.", + "description": "Get a site deployment by its unique ID.", "responses": { - "204": { - "description": "No content" + "200": { + "description": "Deployment", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/deployment" + } + } + } } }, "deprecated": false, "x-appwrite": { - "method": "delete", - "group": "sites", + "method": "getDeployment", + "group": "deployments", "cookies": false, "type": "", - "demo": "sites\/delete.md", + "demo": "sites\/get-deployment.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "sites.write", + "scope": "sites.read", "platforms": [ "console", "server" @@ -69822,37 +69458,38 @@ "x-example": "<SITE_ID>" }, "in": "path" + }, + { + "name": "deploymentId", + "description": "Deployment ID.", + "required": true, + "schema": { + "type": "string", + "x-example": "<DEPLOYMENT_ID>" + }, + "in": "path" } ] - } - }, - "\/sites\/{siteId}\/deployment": { - "patch": { - "summary": "Update site's deployment", - "operationId": "sitesUpdateSiteDeployment", + }, + "delete": { + "summary": "Delete deployment", + "operationId": "sitesDeleteDeployment", "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.", + "description": "Delete a site deployment by its unique ID.", "responses": { - "200": { - "description": "Site", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/site" - } - } - } + "204": { + "description": "No content" } }, "deprecated": false, "x-appwrite": { - "method": "updateSiteDeployment", - "group": "sites", + "method": "deleteDeployment", + "group": "deployments", "cookies": false, "type": "", - "demo": "sites\/update-site-deployment.md", + "demo": "sites\/delete-deployment.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", @@ -69883,44 +69520,36 @@ "x-example": "<SITE_ID>" }, "in": "path" + }, + { + "name": "deploymentId", + "description": "Deployment ID.", + "required": true, + "schema": { + "type": "string", + "x-example": "<DEPLOYMENT_ID>" + }, + "in": "path" } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "deploymentId": { - "type": "string", - "description": "Deployment ID.", - "x-example": "<DEPLOYMENT_ID>" - } - }, - "required": [ - "deploymentId" - ] - } - } - } - } + ] } }, - "\/sites\/{siteId}\/deployments": { + "\/sites\/{siteId}\/deployments\/{deploymentId}\/download": { "get": { - "summary": "List deployments", - "operationId": "sitesListDeployments", + "summary": "Get deployment download", + "operationId": "sitesGetDeploymentDownload", "tags": [ "sites" ], - "description": "Get a list of all the site's code deployments. You can use the query params to filter your results.", + "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": "Deployments List", + "description": "File", "content": { - "application\/json": { + "*\/*": { "schema": { - "$ref": "#\/components\/schemas\/deploymentList" + "type": "string", + "format": "binary" } } } @@ -69928,15 +69557,18 @@ }, "deprecated": false, "x-appwrite": { - "method": "listDeployments", + "method": "getDeploymentDownload", "group": "deployments", "cookies": false, - "type": "", - "demo": "sites\/list-deployments.md", + "type": "location", + "demo": "sites\/get-deployment-download.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "sites.read", + "scope": [ + "public", + "sites.read" + ], "platforms": [ "console", "server" @@ -69944,13 +69576,16 @@ "packaging": false, "public": true, "auth": { - "Project": [] + "Project": [], + "ImpersonateUserId": [] } }, "security": [ { "Project": [], - "Key": [] + "Key": [], + "JWT": [], + "ImpersonateUserId": [] } ], "parameters": [ @@ -69965,51 +69600,59 @@ "in": "path" }, { - "name": "queries", - "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more 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, + "name": "deploymentId", + "description": "Deployment ID.", + "required": true, "schema": { - "type": "array", - "items": { - "type": "string" - }, - "default": [] + "type": "string", + "x-example": "<DEPLOYMENT_ID>" }, - "in": "query" + "in": "path" }, { - "name": "search", - "description": "Search term to filter your list results. Max length: 256 chars.", + "name": "type", + "description": "Deployment file to download. Can be: \"source\", \"output\".", "required": false, "schema": { "type": "string", - "x-example": "<SEARCH>", - "default": "" + "x-example": "source", + "enum": [ + "source", + "output" + ], + "x-enum-name": "DeploymentDownloadType", + "x-enum-keys": [ + "source", + "output" + ], + "default": "source" }, "in": "query" }, { - "name": "total", - "description": "When set to false, the total count returned will be 0 and will not be calculated.", + "name": "token", + "description": "Presigned source-download token for accessing this deployment without a session (jobs-service).", "required": false, "schema": { - "type": "boolean", - "x-example": false, - "default": true + "type": "string", + "x-example": "<TOKEN>", + "default": "" }, "in": "query" } ] - }, - "post": { - "summary": "Create deployment", - "operationId": "sitesCreateDeployment", + } + }, + "\/sites\/{siteId}\/deployments\/{deploymentId}\/status": { + "patch": { + "summary": "Update deployment status", + "operationId": "sitesUpdateDeploymentStatus", "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.", + "description": "Cancel an ongoing site deployment build. If the build is already in progress, it will be stopped and marked as canceled. If the build hasn't started yet, it will be marked as canceled without executing. You cannot cancel builds that have already completed (status 'ready') or failed. The response includes the final build status and details.", "responses": { - "202": { + "200": { "description": "Deployment", "content": { "application\/json": { @@ -70022,11 +69665,11 @@ }, "deprecated": false, "x-appwrite": { - "method": "createDeployment", + "method": "updateDeploymentStatus", "group": "deployments", "cookies": false, - "type": "upload", - "demo": "sites\/create-deployment.md", + "type": "", + "demo": "sites\/update-deployment-status.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", @@ -70035,7 +69678,7 @@ "console", "server" ], - "packaging": true, + "packaging": false, "public": true, "auth": { "Project": [] @@ -70057,69 +69700,35 @@ "x-example": "<SITE_ID>" }, "in": "path" + }, + { + "name": "deploymentId", + "description": "Deployment ID.", + "required": true, + "schema": { + "type": "string", + "x-example": "<DEPLOYMENT_ID>" + }, + "in": "path" } - ], - "requestBody": { - "content": { - "multipart\/form-data": { - "schema": { - "type": "object", - "properties": { - "installCommand": { - "type": "string", - "description": "Install Commands.", - "x-example": "<INSTALL_COMMAND>", - "x-nullable": true - }, - "buildCommand": { - "type": "string", - "description": "Build Commands.", - "x-example": "<BUILD_COMMAND>", - "x-nullable": true - }, - "outputDirectory": { - "type": "string", - "description": "Output Directory.", - "x-example": "<OUTPUT_DIRECTORY>", - "x-nullable": true - }, - "code": { - "type": "string", - "description": "Gzip file with your code package. When used with the Appwrite CLI, pass the path to your code directory, and the CLI will automatically package your code. Use a path that is within the current directory.", - "x-example": null, - "format": "binary" - }, - "activate": { - "type": "boolean", - "description": "Automatically activate the deployment when it is finished building.", - "default": false, - "x-example": false - } - }, - "required": [ - "code" - ] - } - } - } - } + ] } }, - "\/sites\/{siteId}\/deployments\/duplicate": { - "post": { - "summary": "Create duplicate deployment", - "operationId": "sitesCreateDuplicateDeployment", + "\/sites\/{siteId}\/logs": { + "get": { + "summary": "List logs", + "operationId": "sitesListLogs", "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.", + "description": "Get a list of all site logs. You can use the query params to filter your results.", "responses": { - "202": { - "description": "Deployment", + "200": { + "description": "Executions List", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/deployment" + "$ref": "#\/components\/schemas\/executionList" } } } @@ -70127,15 +69736,15 @@ }, "deprecated": false, "x-appwrite": { - "method": "createDuplicateDeployment", - "group": "deployments", + "method": "listLogs", + "group": "logs", "cookies": false, "type": "", - "demo": "sites\/create-duplicate-deployment.md", + "demo": "sites\/list-logs.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "sites.write", + "scope": "log.read", "platforms": [ "console", "server" @@ -70162,44 +69771,49 @@ "x-example": "<SITE_ID>" }, "in": "path" + }, + { + "name": "queries", + "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/queries). Maximum of 100 queries are allowed, each 4096 characters long. You may filter on the following attributes: trigger, status, responseStatusCode, duration, requestMethod, requestPath, deploymentId", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string" + }, + "default": [] + }, + "in": "query" + }, + { + "name": "total", + "description": "When set to false, the total count returned will be 0 and will not be calculated.", + "required": false, + "schema": { + "type": "boolean", + "x-example": false, + "default": true + }, + "in": "query" } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "deploymentId": { - "type": "string", - "description": "Deployment ID.", - "x-example": "<DEPLOYMENT_ID>" - } - }, - "required": [ - "deploymentId" - ] - } - } - } - } + ] } }, - "\/sites\/{siteId}\/deployments\/template": { - "post": { - "summary": "Create template deployment", - "operationId": "sitesCreateTemplateDeployment", + "\/sites\/{siteId}\/logs\/{logId}": { + "get": { + "summary": "Get log", + "operationId": "sitesGetLog", "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.", + "description": "Get a site request log by its unique ID.", "responses": { - "202": { - "description": "Deployment", + "200": { + "description": "Execution", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/deployment" + "$ref": "#\/components\/schemas\/execution" } } } @@ -70207,15 +69821,15 @@ }, "deprecated": false, "x-appwrite": { - "method": "createTemplateDeployment", - "group": "deployments", + "method": "getLog", + "group": "logs", "cookies": false, "type": "", - "demo": "sites\/create-template-deployment.md", + "demo": "sites\/get-log.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "sites.write", + "scope": "log.read", "platforms": [ "console", "server" @@ -70242,107 +69856,51 @@ "x-example": "<SITE_ID>" }, "in": "path" + }, + { + "name": "logId", + "description": "Log ID.", + "required": true, + "schema": { + "type": "string", + "x-example": "<LOG_ID>" + }, + "in": "path" } + ] + }, + "delete": { + "summary": "Delete log", + "operationId": "sitesDeleteLog", + "tags": [ + "sites" ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "repository": { - "type": "string", - "description": "Repository name of the template.", - "x-example": "<REPOSITORY>" - }, - "owner": { - "type": "string", - "description": "The name of the owner of the template.", - "x-example": "<OWNER>" - }, - "rootDirectory": { - "type": "string", - "description": "Path to site code in the template repo.", - "x-example": "<ROOT_DIRECTORY>" - }, - "type": { - "type": "string", - "description": "Type for the reference provided. Can be commit, branch, or tag", - "x-example": "branch", - "enum": [ - "branch", - "commit", - "tag" - ], - "x-enum-name": "TemplateReferenceType", - "x-enum-keys": [ - "branch", - "commit", - "tag" - ] - }, - "reference": { - "type": "string", - "description": "Reference value, can be a commit hash, branch name, or release tag", - "x-example": "<REFERENCE>" - }, - "activate": { - "type": "boolean", - "description": "Automatically activate the deployment when it is finished building.", - "default": false, - "x-example": false - } - }, - "required": [ - "repository", - "owner", - "rootDirectory", - "type", - "reference" - ] - } - } - } - } - } - }, - "\/sites\/{siteId}\/deployments\/vcs": { - "post": { - "summary": "Create VCS deployment", - "operationId": "sitesCreateVcsDeployment", - "tags": [ - "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.", + "description": "Delete a site log by its unique ID.", "responses": { - "202": { - "description": "Deployment", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/deployment" - } - } - } + "204": { + "description": "No content" } }, "deprecated": false, "x-appwrite": { - "method": "createVcsDeployment", - "group": "deployments", + "method": "deleteLog", + "group": "logs", "cookies": false, "type": "", - "demo": "sites\/create-vcs-deployment.md", + "demo": "sites\/delete-log.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "sites.write", + "scope": "log.write", "platforms": [ "console", "server" ], "packaging": false, "public": true, + "produces": [ + "application\/json" + ], "auth": { "Project": [] } @@ -70363,67 +69921,35 @@ "x-example": "<SITE_ID>" }, "in": "path" + }, + { + "name": "logId", + "description": "Log ID.", + "required": true, + "schema": { + "type": "string", + "x-example": "<LOG_ID>" + }, + "in": "path" } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "type": { - "type": "string", - "description": "Type of reference passed. Allowed values are: branch, commit", - "x-example": "branch", - "enum": [ - "branch", - "commit", - "tag" - ], - "x-enum-name": "VCSReferenceType", - "x-enum-keys": [ - "branch", - "commit", - "tag" - ] - }, - "reference": { - "type": "string", - "description": "VCS reference to create deployment from. Depending on type this can be: branch name, commit hash", - "x-example": "<REFERENCE>" - }, - "activate": { - "type": "boolean", - "description": "Automatically activate the deployment when it is finished building.", - "default": false, - "x-example": false - } - }, - "required": [ - "type", - "reference" - ] - } - } - } - } + ] } }, - "\/sites\/{siteId}\/deployments\/{deploymentId}": { + "\/sites\/{siteId}\/variables": { "get": { - "summary": "Get deployment", - "operationId": "sitesGetDeployment", + "summary": "List variables", + "operationId": "sitesListVariables", "tags": [ "sites" ], - "description": "Get a site deployment by its unique ID.", + "description": "Get a list of all variables of a specific site.", "responses": { "200": { - "description": "Deployment", + "description": "Variables List", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/deployment" + "$ref": "#\/components\/schemas\/variableList" } } } @@ -70431,11 +69957,11 @@ }, "deprecated": false, "x-appwrite": { - "method": "getDeployment", - "group": "deployments", + "method": "listVariables", + "group": "variables", "cookies": false, "type": "", - "demo": "sites\/get-deployment.md", + "demo": "sites\/list-variables.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", @@ -70459,7 +69985,7 @@ "parameters": [ { "name": "siteId", - "description": "Site ID.", + "description": "Site unique ID.", "required": true, "schema": { "type": "string", @@ -70468,36 +69994,57 @@ "in": "path" }, { - "name": "deploymentId", - "description": "Deployment ID.", - "required": true, + "name": "queries", + "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/queries). Maximum of 100 queries are allowed, each 4096 characters long. You may filter on the following attributes: key, resourceType, resourceId, secret", + "required": false, "schema": { - "type": "string", - "x-example": "<DEPLOYMENT_ID>" + "type": "array", + "items": { + "type": "string" + }, + "default": [] }, - "in": "path" + "in": "query" + }, + { + "name": "total", + "description": "When set to false, the total count returned will be 0 and will not be calculated.", + "required": false, + "schema": { + "type": "boolean", + "x-example": false, + "default": true + }, + "in": "query" } ] }, - "delete": { - "summary": "Delete deployment", - "operationId": "sitesDeleteDeployment", + "post": { + "summary": "Create variable", + "operationId": "sitesCreateVariable", "tags": [ "sites" ], - "description": "Delete a site deployment by its unique ID.", + "description": "Create a new site variable. These variables can be accessed during build and runtime (server-side rendering) as environment variables.", "responses": { - "204": { - "description": "No content" + "201": { + "description": "Variable", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/variable" + } + } + } } }, "deprecated": false, "x-appwrite": { - "method": "deleteDeployment", - "group": "deployments", + "method": "createVariable", + "group": "variables", "cookies": false, "type": "", - "demo": "sites\/delete-deployment.md", + "demo": "sites\/create-variable.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", @@ -70521,43 +70068,72 @@ "parameters": [ { "name": "siteId", - "description": "Site ID.", + "description": "Site unique ID.", "required": true, "schema": { "type": "string", "x-example": "<SITE_ID>" }, "in": "path" - }, - { - "name": "deploymentId", - "description": "Deployment ID.", - "required": true, - "schema": { - "type": "string", - "x-example": "<DEPLOYMENT_ID>" - }, - "in": "path" } - ] + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "variableId": { + "type": "string", + "description": "Variable ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.", + "x-example": "<VARIABLE_ID>", + "x-appwrite": { + "idGenerator": "ID.unique" + } + }, + "key": { + "type": "string", + "description": "Variable key. Max length: 255 chars.", + "x-example": "<KEY>" + }, + "value": { + "type": "string", + "description": "Variable value. Max length: 8192 chars.", + "x-example": "<VALUE>" + }, + "secret": { + "type": "boolean", + "description": "Secret variables can be updated or deleted, but only sites can read them during build and runtime.", + "default": true, + "x-example": false + } + }, + "required": [ + "variableId", + "key", + "value" + ] + } + } + } + } } }, - "\/sites\/{siteId}\/deployments\/{deploymentId}\/download": { + "\/sites\/{siteId}\/variables\/{variableId}": { "get": { - "summary": "Get deployment download", - "operationId": "sitesGetDeploymentDownload", + "summary": "Get variable", + "operationId": "sitesGetVariable", "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.", + "description": "Get a variable by its unique ID.", "responses": { "200": { - "description": "File", + "description": "Variable", "content": { - "*\/*": { + "application\/json": { "schema": { - "type": "string", - "format": "binary" + "$ref": "#\/components\/schemas\/variable" } } } @@ -70565,11 +70141,11 @@ }, "deprecated": false, "x-appwrite": { - "method": "getDeploymentDownload", - "group": "deployments", + "method": "getVariable", + "group": "variables", "cookies": false, - "type": "location", - "demo": "sites\/get-deployment-download.md", + "type": "", + "demo": "sites\/get-variable.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", @@ -70581,22 +70157,19 @@ "packaging": false, "public": true, "auth": { - "Project": [], - "ImpersonateUserId": [] + "Project": [] } }, "security": [ { "Project": [], - "Key": [], - "JWT": [], - "ImpersonateUserId": [] + "Key": [] } ], "parameters": [ { "name": "siteId", - "description": "Site ID.", + "description": "Site unique ID.", "required": true, "schema": { "type": "string", @@ -70605,53 +70178,31 @@ "in": "path" }, { - "name": "deploymentId", - "description": "Deployment ID.", + "name": "variableId", + "description": "Variable unique ID.", "required": true, "schema": { "type": "string", - "x-example": "<DEPLOYMENT_ID>" + "x-example": "<VARIABLE_ID>" }, "in": "path" - }, - { - "name": "type", - "description": "Deployment file to download. Can be: \"source\", \"output\".", - "required": false, - "schema": { - "type": "string", - "x-example": "source", - "enum": [ - "source", - "output" - ], - "x-enum-name": "DeploymentDownloadType", - "x-enum-keys": [ - "source", - "output" - ], - "default": "source" - }, - "in": "query" } ] - } - }, - "\/sites\/{siteId}\/deployments\/{deploymentId}\/status": { - "patch": { - "summary": "Update deployment status", - "operationId": "sitesUpdateDeploymentStatus", + }, + "put": { + "summary": "Update variable", + "operationId": "sitesUpdateVariable", "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.", + "description": "Update variable by its unique ID.", "responses": { "200": { - "description": "Deployment", + "description": "Variable", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/deployment" + "$ref": "#\/components\/schemas\/variable" } } } @@ -70659,11 +70210,11 @@ }, "deprecated": false, "x-appwrite": { - "method": "updateDeploymentStatus", - "group": "deployments", + "method": "updateVariable", + "group": "variables", "cookies": false, "type": "", - "demo": "sites\/update-deployment-status.md", + "demo": "sites\/update-variable.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", @@ -70687,7 +70238,7 @@ "parameters": [ { "name": "siteId", - "description": "Site ID.", + "description": "Site unique ID.", "required": true, "schema": { "type": "string", @@ -70696,49 +70247,69 @@ "in": "path" }, { - "name": "deploymentId", - "description": "Deployment ID.", + "name": "variableId", + "description": "Variable unique ID.", "required": true, "schema": { "type": "string", - "x-example": "<DEPLOYMENT_ID>" + "x-example": "<VARIABLE_ID>" }, "in": "path" } - ] - } - }, - "\/sites\/{siteId}\/logs": { - "get": { - "summary": "List logs", - "operationId": "sitesListLogs", - "tags": [ - "sites" ], - "description": "Get a list of all site logs. You can use the query params to filter your results.", - "responses": { - "200": { - "description": "Executions List", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/executionList" + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "key": { + "type": "string", + "description": "Variable key. Max length: 255 chars.", + "x-example": "<KEY>", + "x-nullable": true + }, + "value": { + "type": "string", + "description": "Variable value. Max length: 8192 chars.", + "x-example": "<VALUE>", + "x-nullable": true + }, + "secret": { + "type": "boolean", + "description": "Secret variables can be updated or deleted, but only sites can read them during build and runtime.", + "x-example": false, + "x-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": { - "method": "listLogs", - "group": "logs", + "method": "deleteVariable", + "group": "variables", "cookies": false, "type": "", - "demo": "sites\/list-logs.md", + "demo": "sites\/delete-variable.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "log.read", + "scope": "sites.write", "platforms": [ "console", "server" @@ -70758,7 +70329,7 @@ "parameters": [ { "name": "siteId", - "description": "Site ID.", + "description": "Site unique ID.", "required": true, "schema": { "type": "string", @@ -70767,47 +70338,33 @@ "in": "path" }, { - "name": "queries", - "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/queries). Maximum of 100 queries are allowed, each 4096 characters long. You may filter on the following attributes: trigger, status, responseStatusCode, duration, requestMethod, requestPath, deploymentId", - "required": false, - "schema": { - "type": "array", - "items": { - "type": "string" - }, - "default": [] - }, - "in": "query" - }, - { - "name": "total", - "description": "When set to false, the total count returned will be 0 and will not be calculated.", - "required": false, + "name": "variableId", + "description": "Variable unique ID.", + "required": true, "schema": { - "type": "boolean", - "x-example": false, - "default": true + "type": "string", + "x-example": "<VARIABLE_ID>" }, - "in": "query" + "in": "path" } ] } }, - "\/sites\/{siteId}\/logs\/{logId}": { + "\/storage\/buckets": { "get": { - "summary": "Get log", - "operationId": "sitesGetLog", + "summary": "List buckets", + "operationId": "storageListBuckets", "tags": [ - "sites" + "storage" ], - "description": "Get a site request log by its unique ID.", + "description": "Get a list of all the storage buckets. You can use the query params to filter your results.", "responses": { "200": { - "description": "Execution", + "description": "Buckets List", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/execution" + "$ref": "#\/components\/schemas\/bucketList" } } } @@ -70815,21 +70372,22 @@ }, "deprecated": false, "x-appwrite": { - "method": "getLog", - "group": "logs", + "method": "listBuckets", + "group": "buckets", "cookies": false, "type": "", - "demo": "sites\/get-log.md", + "demo": "storage\/list-buckets.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "log.read", + "scope": "buckets.read", "platforms": [ "console", "server" ], "packaging": false, "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/storage\/list-buckets.md", "auth": { "Project": [] } @@ -70842,59 +70400,79 @@ ], "parameters": [ { - "name": "siteId", - "description": "Site ID.", - "required": true, + "name": "queries", + "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/queries). Maximum of 100 queries are allowed, each 4096 characters long. You may filter on the following attributes: enabled, name, fileSecurity, maximumFileSize, encryption, antivirus, transformations", + "required": false, "schema": { - "type": "string", - "x-example": "<SITE_ID>" + "type": "array", + "items": { + "type": "string" + }, + "default": [] }, - "in": "path" + "in": "query" }, { - "name": "logId", - "description": "Log ID.", - "required": true, + "name": "search", + "description": "Search term to filter your list results. Max length: 256 chars.", + "required": false, "schema": { "type": "string", - "x-example": "<LOG_ID>" + "x-example": "<SEARCH>", + "default": "" }, - "in": "path" + "in": "query" + }, + { + "name": "total", + "description": "When set to false, the total count returned will be 0 and will not be calculated.", + "required": false, + "schema": { + "type": "boolean", + "x-example": false, + "default": true + }, + "in": "query" } ] }, - "delete": { - "summary": "Delete log", - "operationId": "sitesDeleteLog", + "post": { + "summary": "Create bucket", + "operationId": "storageCreateBucket", "tags": [ - "sites" + "storage" ], - "description": "Delete a site log by its unique ID.", + "description": "Create a new storage bucket.", "responses": { - "204": { - "description": "No content" + "201": { + "description": "Bucket", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/bucket" + } + } + } } }, "deprecated": false, "x-appwrite": { - "method": "deleteLog", - "group": "logs", + "method": "createBucket", + "group": "buckets", "cookies": false, "type": "", - "demo": "sites\/delete-log.md", + "demo": "storage\/create-bucket.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "log.write", + "scope": "buckets.write", "platforms": [ "console", "server" ], "packaging": false, "public": true, - "produces": [ - "application\/json" - ], + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/storage\/create-bucket.md", "auth": { "Project": [] } @@ -70905,45 +70483,123 @@ "Key": [] } ], - "parameters": [ - { - "name": "siteId", - "description": "Site ID.", - "required": true, - "schema": { - "type": "string", - "x-example": "<SITE_ID>" - }, - "in": "path" - }, - { - "name": "logId", - "description": "Log ID.", - "required": true, - "schema": { - "type": "string", - "x-example": "<LOG_ID>" - }, - "in": "path" + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "bucketId": { + "type": "string", + "description": "Unique Id. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.", + "x-example": "<BUCKET_ID>", + "x-appwrite": { + "idGenerator": "ID.unique" + } + }, + "name": { + "type": "string", + "description": "Bucket name", + "x-example": "<NAME>" + }, + "permissions": { + "type": "array", + "description": "An array of permission strings. By default, no user is granted with any permissions. [Learn more about permissions](https:\/\/appwrite.io\/docs\/permissions).", + "x-example": "[\"read(\"any\")\"]", + "items": { + "type": "string" + }, + "x-nullable": true + }, + "fileSecurity": { + "type": "boolean", + "description": "Enables configuring permissions for individual file. A user needs one of file or bucket level permissions to access a file. [Learn more about permissions](https:\/\/appwrite.io\/docs\/permissions).", + "default": false, + "x-example": false + }, + "enabled": { + "type": "boolean", + "description": "Is bucket enabled? When set to 'disabled', users cannot access the files in this bucket but Server SDKs with and API key can still access the bucket. No files are lost when this is toggled.", + "default": true, + "x-example": false + }, + "maximumFileSize": { + "type": "integer", + "description": "Maximum file size allowed in bytes. Maximum allowed value is 5GB.", + "default": {}, + "x-example": 1, + "format": "int32" + }, + "allowedFileExtensions": { + "type": "array", + "description": "Allowed file extensions. Maximum of 100 extensions are allowed, each 64 characters long.", + "default": [], + "x-example": null, + "items": { + "type": "string" + } + }, + "compression": { + "type": "string", + "description": "Compression algorithm chosen for compression. Can be one of none, [gzip](https:\/\/en.wikipedia.org\/wiki\/Gzip), or [zstd](https:\/\/en.wikipedia.org\/wiki\/Zstd), For file size above 20MB compression is skipped even if it's enabled", + "default": "none", + "x-example": "none", + "enum": [ + "none", + "gzip", + "zstd" + ], + "x-enum-name": "Compression", + "x-enum-keys": [ + "none", + "gzip", + "zstd" + ] + }, + "encryption": { + "type": "boolean", + "description": "Is encryption enabled? For file size above 20MB encryption is skipped even if it's enabled", + "default": true, + "x-example": false + }, + "antivirus": { + "type": "boolean", + "description": "Is virus scanning enabled? For file size above 20MB AntiVirus scanning is skipped even if it's enabled", + "default": true, + "x-example": false + }, + "transformations": { + "type": "boolean", + "description": "Are image transformations enabled?", + "default": true, + "x-example": false + } + }, + "required": [ + "bucketId", + "name" + ] + } + } } - ] + } } }, - "\/sites\/{siteId}\/usage": { + "\/storage\/buckets\/{bucketId}": { "get": { - "summary": "Get site usage", - "operationId": "sitesGetUsage", + "summary": "Get bucket", + "operationId": "storageGetBucket", "tags": [ - "sites" + "storage" ], - "description": "Get usage metrics and statistics for a for a specific site. View statistics including total deployments, builds, executions, storage usage, and compute time. The response includes both current totals and historical data for each metric. Use the optional range parameter to specify the time window for historical data: 24h (last 24 hours), 30d (last 30 days), or 90d (last 90 days). If not specified, defaults to 30 days.", + "description": "Get a storage bucket by its unique ID. This endpoint response returns a JSON object with the storage bucket metadata.", "responses": { "200": { - "description": "UsageSite", + "description": "Bucket", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/usageSite" + "$ref": "#\/components\/schemas\/bucket" } } } @@ -70951,80 +70607,265 @@ }, "deprecated": false, "x-appwrite": { - "method": "getUsage", - "group": null, + "method": "getBucket", + "group": "buckets", "cookies": false, "type": "", - "demo": "sites\/get-usage.md", + "demo": "storage\/get-bucket.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "sites.read", + "scope": "buckets.read", "platforms": [ - "console" + "console", + "server" ], "packaging": false, "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/storage\/get-bucket.md", "auth": { "Project": [] } }, "security": [ { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "bucketId", + "description": "Bucket unique ID.", + "required": true, + "schema": { + "type": "string", + "x-example": "<BUCKET_ID>" + }, + "in": "path" + } + ] + }, + "put": { + "summary": "Update bucket", + "operationId": "storageUpdateBucket", + "tags": [ + "storage" + ], + "description": "Update a storage bucket by its unique ID.", + "responses": { + "200": { + "description": "Bucket", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/bucket" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "method": "updateBucket", + "group": "buckets", + "cookies": false, + "type": "", + "demo": "storage\/update-bucket.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "buckets.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/storage\/update-bucket.md", + "auth": { "Project": [] } + }, + "security": [ + { + "Project": [], + "Key": [] + } ], "parameters": [ { - "name": "siteId", - "description": "Site ID.", + "name": "bucketId", + "description": "Bucket unique ID.", "required": true, "schema": { "type": "string", - "x-example": "<SITE_ID>" + "x-example": "<BUCKET_ID>" }, "in": "path" - }, + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "Bucket name", + "x-example": "<NAME>" + }, + "permissions": { + "type": "array", + "description": "An array of permission strings. By default, the current permissions are inherited. [Learn more about permissions](https:\/\/appwrite.io\/docs\/permissions).", + "x-example": "[\"read(\"any\")\"]", + "items": { + "type": "string" + }, + "x-nullable": true + }, + "fileSecurity": { + "type": "boolean", + "description": "Enables configuring permissions for individual file. A user needs one of file or bucket level permissions to access a file. [Learn more about permissions](https:\/\/appwrite.io\/docs\/permissions).", + "default": false, + "x-example": false + }, + "enabled": { + "type": "boolean", + "description": "Is bucket enabled? When set to 'disabled', users cannot access the files in this bucket but Server SDKs with and API key can still access the bucket. No files are lost when this is toggled.", + "default": true, + "x-example": false + }, + "maximumFileSize": { + "type": "integer", + "description": "Maximum file size allowed in bytes. Maximum allowed value is 5GB.", + "default": {}, + "x-example": 1, + "format": "int32" + }, + "allowedFileExtensions": { + "type": "array", + "description": "Allowed file extensions. Maximum of 100 extensions are allowed, each 64 characters long.", + "default": [], + "x-example": null, + "items": { + "type": "string" + } + }, + "compression": { + "type": "string", + "description": "Compression algorithm chosen for compression. Can be one of none, [gzip](https:\/\/en.wikipedia.org\/wiki\/Gzip), or [zstd](https:\/\/en.wikipedia.org\/wiki\/Zstd), For file size above 20MB compression is skipped even if it's enabled", + "default": "none", + "x-example": "none", + "enum": [ + "none", + "gzip", + "zstd" + ], + "x-enum-name": "Compression", + "x-enum-keys": [ + "none", + "gzip", + "zstd" + ] + }, + "encryption": { + "type": "boolean", + "description": "Is encryption enabled? For file size above 20MB encryption is skipped even if it's enabled", + "default": true, + "x-example": false + }, + "antivirus": { + "type": "boolean", + "description": "Is virus scanning enabled? For file size above 20MB AntiVirus scanning is skipped even if it's enabled", + "default": true, + "x-example": false + }, + "transformations": { + "type": "boolean", + "description": "Are image transformations enabled?", + "default": true, + "x-example": false + } + }, + "required": [ + "name" + ] + } + } + } + } + }, + "delete": { + "summary": "Delete bucket", + "operationId": "storageDeleteBucket", + "tags": [ + "storage" + ], + "description": "Delete a storage bucket by its unique ID.", + "responses": { + "204": { + "description": "No content" + } + }, + "deprecated": false, + "x-appwrite": { + "method": "deleteBucket", + "group": "buckets", + "cookies": false, + "type": "", + "demo": "storage\/delete-bucket.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "buckets.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/storage\/delete-bucket.md", + "auth": { + "Project": [] + } + }, + "security": [ { - "name": "range", - "description": "Date range.", - "required": false, + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "bucketId", + "description": "Bucket unique ID.", + "required": true, "schema": { "type": "string", - "x-example": "24h", - "enum": [ - "24h", - "30d", - "90d" - ], - "x-enum-name": "UsageRange", - "x-enum-keys": [ - "Twenty Four Hours", - "Thirty Days", - "Ninety Days" - ], - "default": "30d" + "x-example": "<BUCKET_ID>" }, - "in": "query" + "in": "path" } ] } }, - "\/sites\/{siteId}\/variables": { + "\/storage\/buckets\/{bucketId}\/files": { "get": { - "summary": "List variables", - "operationId": "sitesListVariables", + "summary": "List files", + "operationId": "storageListFiles", "tags": [ - "sites" + "storage" ], - "description": "Get a list of all variables of a specific site.", + "description": "Get a list of all the user files. You can use the query params to filter your results.", "responses": { "200": { - "description": "Variables List", + "description": "Files List", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/variableList" + "$ref": "#\/components\/schemas\/fileList" } } } @@ -71032,21 +70873,23 @@ }, "deprecated": false, "x-appwrite": { - "method": "listVariables", - "group": "variables", + "method": "listFiles", + "group": "files", "cookies": false, "type": "", - "demo": "sites\/list-variables.md", + "demo": "storage\/list-files.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "sites.read", + "scope": "files.read", "platforms": [ "console", + "client", "server" ], "packaging": false, "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/storage\/list-files.md", "auth": { "Project": [] } @@ -71054,23 +70897,25 @@ "security": [ { "Project": [], - "Key": [] + "Session": [], + "Key": [], + "JWT": [] } ], "parameters": [ { - "name": "siteId", - "description": "Site unique ID.", + "name": "bucketId", + "description": "Storage bucket unique ID. You can create a new storage bucket using the Storage service [server integration](https:\/\/appwrite.io\/docs\/server\/storage#createBucket).", "required": true, "schema": { "type": "string", - "x-example": "<SITE_ID>" + "x-example": "<BUCKET_ID>" }, "in": "path" }, { "name": "queries", - "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/queries). Maximum of 100 queries are allowed, each 4096 characters long. You may filter on the following attributes: key, resourceType, resourceId, secret", + "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/queries). Maximum of 100 queries are allowed, each 4096 characters long. You may filter on the following attributes: name, signature, mimeType, sizeOriginal, chunksTotal, chunksUploaded", "required": false, "schema": { "type": "array", @@ -71081,6 +70926,17 @@ }, "in": "query" }, + { + "name": "search", + "description": "Search term to filter your list results. Max length: 256 chars.", + "required": false, + "schema": { + "type": "string", + "x-example": "<SEARCH>", + "default": "" + }, + "in": "query" + }, { "name": "total", "description": "When set to false, the total count returned will be 0 and will not be calculated.", @@ -71095,19 +70951,19 @@ ] }, "post": { - "summary": "Create variable", - "operationId": "sitesCreateVariable", + "summary": "Create file", + "operationId": "storageCreateFile", "tags": [ - "sites" + "storage" ], - "description": "Create a new site variable. These variables can be accessed during build and runtime (server-side rendering) as environment variables.", + "description": "Create a new 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": "Variable", + "description": "File", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/variable" + "$ref": "#\/components\/schemas\/file" } } } @@ -71115,21 +70971,23 @@ }, "deprecated": false, "x-appwrite": { - "method": "createVariable", - "group": "variables", + "method": "createFile", + "group": "files", "cookies": false, - "type": "", - "demo": "sites\/create-variable.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "sites.write", + "type": "upload", + "demo": "storage\/create-file.md", + "rate-limit": 60, + "rate-time": 60, + "rate-key": "ip:{ip},method:{method},url:{url},userId:{userId},chunkId:{chunkId}", + "scope": "files.write", "platforms": [ "console", + "client", "server" ], "packaging": false, "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/storage\/create-file.md", "auth": { "Project": [] } @@ -71137,56 +70995,57 @@ "security": [ { "Project": [], - "Key": [] + "Session": [], + "Key": [], + "JWT": [] } ], "parameters": [ { - "name": "siteId", - "description": "Site unique ID.", + "name": "bucketId", + "description": "Storage bucket unique ID. You can create a new storage bucket using the Storage service [server integration](https:\/\/appwrite.io\/docs\/server\/storage#createBucket).", "required": true, "schema": { "type": "string", - "x-example": "<SITE_ID>" + "x-example": "<BUCKET_ID>" }, "in": "path" } ], "requestBody": { "content": { - "application\/json": { + "multipart\/form-data": { "schema": { "type": "object", "properties": { - "variableId": { + "fileId": { "type": "string", - "description": "Variable ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.", - "x-example": "<VARIABLE_ID>", + "description": "File ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.", + "x-example": "<FILE_ID>", + "x-upload-id": true, "x-appwrite": { "idGenerator": "ID.unique" } }, - "key": { - "type": "string", - "description": "Variable key. Max length: 255 chars.", - "x-example": "<KEY>" - }, - "value": { + "file": { "type": "string", - "description": "Variable value. Max length: 8192 chars.", - "x-example": "<VALUE>" + "description": "Binary file. Appwrite SDKs provide helpers to handle file input. [Learn about file input](https:\/\/appwrite.io\/docs\/products\/storage\/upload-download#input-file).", + "x-example": null, + "format": "binary" }, - "secret": { - "type": "boolean", - "description": "Secret variables can be updated or deleted, but only sites can read them during build and runtime.", - "default": true, - "x-example": false + "permissions": { + "type": "array", + "description": "An array of permission strings. By default, only the current user is granted all permissions. [Learn more about permissions](https:\/\/appwrite.io\/docs\/permissions).", + "x-example": "[\"read(\"any\")\"]", + "items": { + "type": "string" + }, + "x-nullable": true } }, "required": [ - "variableId", - "key", - "value" + "fileId", + "file" ] } } @@ -71194,21 +71053,21 @@ } } }, - "\/sites\/{siteId}\/variables\/{variableId}": { + "\/storage\/buckets\/{bucketId}\/files\/{fileId}": { "get": { - "summary": "Get variable", - "operationId": "sitesGetVariable", + "summary": "Get file", + "operationId": "storageGetFile", "tags": [ - "sites" + "storage" ], - "description": "Get a variable by its unique ID.", + "description": "Get a file by its unique ID. This endpoint response returns a JSON object with the file metadata.", "responses": { "200": { - "description": "Variable", + "description": "File", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/variable" + "$ref": "#\/components\/schemas\/file" } } } @@ -71216,21 +71075,23 @@ }, "deprecated": false, "x-appwrite": { - "method": "getVariable", - "group": "variables", + "method": "getFile", + "group": "files", "cookies": false, "type": "", - "demo": "sites\/get-variable.md", + "demo": "storage\/get-file.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "sites.read", + "scope": "files.read", "platforms": [ "console", + "client", "server" ], "packaging": false, "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/storage\/get-file.md", "auth": { "Project": [] } @@ -71238,46 +71099,48 @@ "security": [ { "Project": [], - "Key": [] + "Session": [], + "Key": [], + "JWT": [] } ], "parameters": [ { - "name": "siteId", - "description": "Site unique ID.", + "name": "bucketId", + "description": "Storage bucket unique ID. You can create a new storage bucket using the Storage service [server integration](https:\/\/appwrite.io\/docs\/server\/storage#createBucket).", "required": true, "schema": { "type": "string", - "x-example": "<SITE_ID>" + "x-example": "<BUCKET_ID>" }, "in": "path" }, { - "name": "variableId", - "description": "Variable unique ID.", + "name": "fileId", + "description": "File ID.", "required": true, "schema": { "type": "string", - "x-example": "<VARIABLE_ID>" + "x-example": "<FILE_ID>" }, "in": "path" } ] }, "put": { - "summary": "Update variable", - "operationId": "sitesUpdateVariable", + "summary": "Update file", + "operationId": "storageUpdateFile", "tags": [ - "sites" + "storage" ], - "description": "Update variable by its unique ID.", + "description": "Update a file by its unique ID. Only users with write permissions have access to update this resource.", "responses": { "200": { - "description": "Variable", + "description": "File", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/variable" + "$ref": "#\/components\/schemas\/file" } } } @@ -71285,21 +71148,23 @@ }, "deprecated": false, "x-appwrite": { - "method": "updateVariable", - "group": "variables", + "method": "updateFile", + "group": "files", "cookies": false, "type": "", - "demo": "sites\/update-variable.md", + "demo": "storage\/update-file.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "sites.write", + "scope": "files.write", "platforms": [ "console", + "client", "server" ], "packaging": false, "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/storage\/update-file.md", "auth": { "Project": [] } @@ -71307,27 +71172,29 @@ "security": [ { "Project": [], - "Key": [] + "Session": [], + "Key": [], + "JWT": [] } ], "parameters": [ { - "name": "siteId", - "description": "Site unique ID.", + "name": "bucketId", + "description": "Bucket unique ID.", "required": true, "schema": { "type": "string", - "x-example": "<SITE_ID>" + "x-example": "<BUCKET_ID>" }, "in": "path" }, { - "name": "variableId", - "description": "Variable unique ID.", + "name": "fileId", + "description": "File ID.", "required": true, "schema": { "type": "string", - "x-example": "<VARIABLE_ID>" + "x-example": "<FILE_ID>" }, "in": "path" } @@ -71338,22 +71205,18 @@ "schema": { "type": "object", "properties": { - "key": { - "type": "string", - "description": "Variable key. Max length: 255 chars.", - "x-example": "<KEY>", - "x-nullable": true - }, - "value": { + "name": { "type": "string", - "description": "Variable value. Max length: 8192 chars.", - "x-example": "<VALUE>", - "x-nullable": true + "description": "File name.", + "x-example": "<NAME>" }, - "secret": { - "type": "boolean", - "description": "Secret variables can be updated or deleted, but only sites can read them during build and runtime.", - "x-example": false, + "permissions": { + "type": "array", + "description": "An array of permission strings. By default, the current permissions are inherited. [Learn more about permissions](https:\/\/appwrite.io\/docs\/permissions).", + "x-example": "[\"read(\"any\")\"]", + "items": { + "type": "string" + }, "x-nullable": true } } @@ -71363,12 +71226,12 @@ } }, "delete": { - "summary": "Delete variable", - "operationId": "sitesDeleteVariable", + "summary": "Delete file", + "operationId": "storageDeleteFile", "tags": [ - "sites" + "storage" ], - "description": "Delete a variable by its unique ID.", + "description": "Delete a file by its unique ID. Only users with write permissions have access to delete this resource.", "responses": { "204": { "description": "No content" @@ -71376,21 +71239,23 @@ }, "deprecated": false, "x-appwrite": { - "method": "deleteVariable", - "group": "variables", + "method": "deleteFile", + "group": "files", "cookies": false, "type": "", - "demo": "sites\/delete-variable.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "sites.write", + "demo": "storage\/delete-file.md", + "rate-limit": 60, + "rate-time": 60, + "rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}", + "scope": "files.write", "platforms": [ "console", + "client", "server" ], "packaging": false, "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/storage\/delete-file.md", "auth": { "Project": [] } @@ -71398,48 +71263,51 @@ "security": [ { "Project": [], - "Key": [] + "Session": [], + "Key": [], + "JWT": [] } ], "parameters": [ { - "name": "siteId", - "description": "Site unique ID.", + "name": "bucketId", + "description": "Storage bucket unique ID. You can create a new storage bucket using the Storage service [server integration](https:\/\/appwrite.io\/docs\/server\/storage#createBucket).", "required": true, "schema": { "type": "string", - "x-example": "<SITE_ID>" + "x-example": "<BUCKET_ID>" }, "in": "path" }, { - "name": "variableId", - "description": "Variable unique ID.", + "name": "fileId", + "description": "File ID.", "required": true, "schema": { "type": "string", - "x-example": "<VARIABLE_ID>" + "x-example": "<FILE_ID>" }, "in": "path" } ] } }, - "\/storage\/buckets": { + "\/storage\/buckets\/{bucketId}\/files\/{fileId}\/download": { "get": { - "summary": "List buckets", - "operationId": "storageListBuckets", + "summary": "Get file for download", + "operationId": "storageGetFileDownload", "tags": [ "storage" ], - "description": "Get a list of all the storage buckets. You can use the query params to filter your results.", + "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": "Buckets List", + "description": "File", "content": { - "application\/json": { + "*\/*": { "schema": { - "$ref": "#\/components\/schemas\/bucketList" + "type": "string", + "format": "binary" } } } @@ -71447,234 +71315,88 @@ }, "deprecated": false, "x-appwrite": { - "method": "listBuckets", - "group": "buckets", + "method": "getFileDownload", + "group": "files", "cookies": false, - "type": "", - "demo": "storage\/list-buckets.md", + "type": "location", + "demo": "storage\/get-file-download.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "buckets.read", + "scope": "files.read", "platforms": [ "console", + "client", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/storage\/list-buckets.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/storage\/get-file-download.md", "auth": { - "Project": [] + "Project": [], + "ImpersonateUserId": [] } }, "security": [ { "Project": [], - "Key": [] + "Session": [], + "Key": [], + "JWT": [], + "ImpersonateUserId": [] } ], "parameters": [ { - "name": "queries", - "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more 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, + "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": "array", - "items": { - "type": "string" - }, - "default": [] + "type": "string", + "x-example": "<BUCKET_ID>" }, - "in": "query" + "in": "path" }, { - "name": "search", - "description": "Search term to filter your list results. Max length: 256 chars.", - "required": false, + "name": "fileId", + "description": "File ID.", + "required": true, "schema": { "type": "string", - "x-example": "<SEARCH>", - "default": "" + "x-example": "<FILE_ID>" }, - "in": "query" + "in": "path" }, { - "name": "total", - "description": "When set to false, the total count returned will be 0 and will not be calculated.", + "name": "token", + "description": "File token for accessing this file.", "required": false, "schema": { - "type": "boolean", - "x-example": false, - "default": true + "type": "string", + "x-example": "<TOKEN>", + "default": "" }, "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": { - "method": "createBucket", - "group": "buckets", - "cookies": false, - "type": "", - "demo": "storage\/create-bucket.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "buckets.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/storage\/create-bucket.md", - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "bucketId": { - "type": "string", - "description": "Unique Id. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.", - "x-example": "<BUCKET_ID>", - "x-appwrite": { - "idGenerator": "ID.unique" - } - }, - "name": { - "type": "string", - "description": "Bucket name", - "x-example": "<NAME>" - }, - "permissions": { - "type": "array", - "description": "An array of permission strings. By default, no user is granted with any permissions. [Learn more about permissions](https:\/\/appwrite.io\/docs\/permissions).", - "x-example": "[\"read(\"any\")\"]", - "items": { - "type": "string" - }, - "x-nullable": true - }, - "fileSecurity": { - "type": "boolean", - "description": "Enables configuring permissions for individual file. A user needs one of file or bucket level permissions to access a file. [Learn more about permissions](https:\/\/appwrite.io\/docs\/permissions).", - "default": false, - "x-example": false - }, - "enabled": { - "type": "boolean", - "description": "Is bucket enabled? When set to 'disabled', users cannot access the files in this bucket but Server SDKs with and API key can still access the bucket. No files are lost when this is toggled.", - "default": true, - "x-example": false - }, - "maximumFileSize": { - "type": "integer", - "description": "Maximum file size allowed in bytes. Maximum allowed value is 5GB.", - "default": {}, - "x-example": 1, - "format": "int32" - }, - "allowedFileExtensions": { - "type": "array", - "description": "Allowed file extensions. Maximum of 100 extensions are allowed, each 64 characters long.", - "default": [], - "x-example": null, - "items": { - "type": "string" - } - }, - "compression": { - "type": "string", - "description": "Compression algorithm chosen for compression. Can be one of none, [gzip](https:\/\/en.wikipedia.org\/wiki\/Gzip), or [zstd](https:\/\/en.wikipedia.org\/wiki\/Zstd), For file size above 20MB compression is skipped even if it's enabled", - "default": "none", - "x-example": "none", - "enum": [ - "none", - "gzip", - "zstd" - ], - "x-enum-name": "Compression", - "x-enum-keys": [ - "none", - "gzip", - "zstd" - ] - }, - "encryption": { - "type": "boolean", - "description": "Is encryption enabled? For file size above 20MB encryption is skipped even if it's enabled", - "default": true, - "x-example": false - }, - "antivirus": { - "type": "boolean", - "description": "Is virus scanning enabled? For file size above 20MB AntiVirus scanning is skipped even if it's enabled", - "default": true, - "x-example": false - }, - "transformations": { - "type": "boolean", - "description": "Are image transformations enabled?", - "default": true, - "x-example": false - } - }, - "required": [ - "bucketId", - "name" - ] - } - } - } - } } }, - "\/storage\/buckets\/{bucketId}": { + "\/storage\/buckets\/{bucketId}\/files\/{fileId}\/preview": { "get": { - "summary": "Get bucket", - "operationId": "storageGetBucket", + "summary": "Get file preview", + "operationId": "storageGetFilePreview", "tags": [ "storage" ], - "description": "Get a storage bucket by its unique ID. This endpoint response returns a JSON object with the storage bucket metadata.", + "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": "Bucket", + "description": "Image", "content": { - "application\/json": { + "image\/*": { "schema": { - "$ref": "#\/components\/schemas\/bucket" + "type": "string", + "format": "binary" } } } @@ -71682,265 +71404,343 @@ }, "deprecated": false, "x-appwrite": { - "method": "getBucket", - "group": "buckets", + "method": "getFilePreview", + "group": "files", "cookies": false, - "type": "", - "demo": "storage\/get-bucket.md", + "type": "location", + "demo": "storage\/get-file-preview.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "buckets.read", + "scope": "files.read", "platforms": [ "console", + "client", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/storage\/get-bucket.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/storage\/get-file-preview.md", "auth": { - "Project": [] + "Project": [], + "ImpersonateUserId": [] } }, "security": [ { "Project": [], - "Key": [] + "Session": [], + "Key": [], + "JWT": [], + "ImpersonateUserId": [] } ], "parameters": [ { "name": "bucketId", - "description": "Bucket unique ID.", + "description": "Storage bucket unique ID. You can create a new storage bucket using the Storage service [server integration](https:\/\/appwrite.io\/docs\/server\/storage#createBucket).", "required": true, "schema": { "type": "string", "x-example": "<BUCKET_ID>" }, "in": "path" - } - ] - }, - "put": { - "summary": "Update bucket", - "operationId": "storageUpdateBucket", - "tags": [ - "storage" - ], - "description": "Update a storage bucket by its unique ID.", - "responses": { - "200": { - "description": "Bucket", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/bucket" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "method": "updateBucket", - "group": "buckets", - "cookies": false, - "type": "", - "demo": "storage\/update-bucket.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "buckets.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/storage\/update-bucket.md", - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ + }, { - "name": "bucketId", - "description": "Bucket unique ID.", + "name": "fileId", + "description": "File ID", "required": true, "schema": { "type": "string", - "x-example": "<BUCKET_ID>" + "x-example": "<FILE_ID>" }, "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "name": { - "type": "string", - "description": "Bucket name", - "x-example": "<NAME>" - }, - "permissions": { - "type": "array", - "description": "An array of permission strings. By default, the current permissions are inherited. [Learn more about permissions](https:\/\/appwrite.io\/docs\/permissions).", - "x-example": "[\"read(\"any\")\"]", - "items": { - "type": "string" - }, - "x-nullable": true - }, - "fileSecurity": { - "type": "boolean", - "description": "Enables configuring permissions for individual file. A user needs one of file or bucket level permissions to access a file. [Learn more about permissions](https:\/\/appwrite.io\/docs\/permissions).", - "default": false, - "x-example": false - }, - "enabled": { - "type": "boolean", - "description": "Is bucket enabled? When set to 'disabled', users cannot access the files in this bucket but Server SDKs with and API key can still access the bucket. No files are lost when this is toggled.", - "default": true, - "x-example": false - }, - "maximumFileSize": { - "type": "integer", - "description": "Maximum file size allowed in bytes. Maximum allowed value is 5GB.", - "default": {}, - "x-example": 1, - "format": "int32" - }, - "allowedFileExtensions": { - "type": "array", - "description": "Allowed file extensions. Maximum of 100 extensions are allowed, each 64 characters long.", - "default": [], - "x-example": null, - "items": { - "type": "string" - } - }, - "compression": { - "type": "string", - "description": "Compression algorithm chosen for compression. Can be one of none, [gzip](https:\/\/en.wikipedia.org\/wiki\/Gzip), or [zstd](https:\/\/en.wikipedia.org\/wiki\/Zstd), For file size above 20MB compression is skipped even if it's enabled", - "default": "none", - "x-example": "none", - "enum": [ - "none", - "gzip", - "zstd" - ], - "x-enum-name": "Compression", - "x-enum-keys": [ - "none", - "gzip", - "zstd" - ] - }, - "encryption": { - "type": "boolean", - "description": "Is encryption enabled? For file size above 20MB encryption is skipped even if it's enabled", - "default": true, - "x-example": false - }, - "antivirus": { - "type": "boolean", - "description": "Is virus scanning enabled? For file size above 20MB AntiVirus scanning is skipped even if it's enabled", - "default": true, - "x-example": false - }, - "transformations": { - "type": "boolean", - "description": "Are image transformations enabled?", - "default": true, - "x-example": false - } - }, - "required": [ - "name" - ] - } - } - } - } - }, - "delete": { - "summary": "Delete bucket", - "operationId": "storageDeleteBucket", + }, + { + "name": "width", + "description": "Resize preview image width, Pass an integer between 0 to 4000.", + "required": false, + "schema": { + "type": "integer", + "format": "int32", + "x-example": 0, + "default": 0 + }, + "in": "query" + }, + { + "name": "height", + "description": "Resize preview image height, Pass an integer between 0 to 4000.", + "required": false, + "schema": { + "type": "integer", + "format": "int32", + "x-example": 0, + "default": 0 + }, + "in": "query" + }, + { + "name": "gravity", + "description": "Image crop gravity. Can be one of center,top-left,top,top-right,left,right,bottom-left,bottom,bottom-right", + "required": false, + "schema": { + "type": "string", + "x-example": "center", + "enum": [ + "center", + "top-left", + "top", + "top-right", + "left", + "right", + "bottom-left", + "bottom", + "bottom-right" + ], + "x-enum-name": "ImageGravity", + "x-enum-keys": [ + "center", + "top-left", + "top", + "top-right", + "left", + "right", + "bottom-left", + "bottom", + "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", + "x-example": -1, + "default": -1 + }, + "in": "query" + }, + { + "name": "borderWidth", + "description": "Preview image border in pixels. Pass an integer between 0 to 100. Defaults to 0.", + "required": false, + "schema": { + "type": "integer", + "format": "int32", + "x-example": 0, + "default": 0 + }, + "in": "query" + }, + { + "name": "borderColor", + "description": "Preview image border color. Use a valid HEX color, no # is needed for prefix.", + "required": false, + "schema": { + "type": "string", + "default": "" + }, + "in": "query" + }, + { + "name": "borderRadius", + "description": "Preview image border radius in pixels. Pass an integer between 0 to 4000.", + "required": false, + "schema": { + "type": "integer", + "format": "int32", + "x-example": 0, + "default": 0 + }, + "in": "query" + }, + { + "name": "opacity", + "description": "Preview image opacity. Only works with images having an alpha channel (like png). Pass a number between 0 to 1.", + "required": false, + "schema": { + "type": "number", + "format": "float", + "x-example": 0, + "default": 1 + }, + "in": "query" + }, + { + "name": "rotation", + "description": "Preview image rotation in degrees. Pass an integer between -360 and 360.", + "required": false, + "schema": { + "type": "integer", + "format": "int32", + "x-example": -360, + "default": 0 + }, + "in": "query" + }, + { + "name": "background", + "description": "Preview image background color. Only works with transparent images (png). Use a valid HEX color, no # is needed for prefix.", + "required": false, + "schema": { + "type": "string", + "default": "" + }, + "in": "query" + }, + { + "name": "output", + "description": "Output format type (jpeg, jpg, png, gif and webp).", + "required": false, + "schema": { + "type": "string", + "x-example": "jpg", + "enum": [ + "jpg", + "jpeg", + "png", + "webp", + "heic", + "avif", + "gif" + ], + "x-enum-name": "ImageFormat", + "x-enum-keys": [ + "jpg", + "jpeg", + "png", + "webp", + "heic", + "avif", + "gif" + ] + }, + "in": "query" + }, + { + "name": "token", + "description": "File token for accessing this file.", + "required": false, + "schema": { + "type": "string", + "x-example": "<TOKEN>", + "default": "" + }, + "in": "query" + } + ] + } + }, + "\/storage\/buckets\/{bucketId}\/files\/{fileId}\/view": { + "get": { + "summary": "Get file for view", + "operationId": "storageGetFileView", "tags": [ "storage" ], - "description": "Delete a storage bucket by its unique ID.", + "description": "Get a file content by its unique ID. This endpoint is similar to the download method but returns with no 'Content-Disposition: attachment' header.", "responses": { - "204": { - "description": "No content" + "200": { + "description": "File", + "content": { + "*\/*": { + "schema": { + "type": "string", + "format": "binary" + } + } + } } }, "deprecated": false, "x-appwrite": { - "method": "deleteBucket", - "group": "buckets", + "method": "getFileView", + "group": "files", "cookies": false, - "type": "", - "demo": "storage\/delete-bucket.md", + "type": "location", + "demo": "storage\/get-file-view.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "buckets.write", + "scope": "files.read", "platforms": [ "console", + "client", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/storage\/delete-bucket.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/storage\/get-file-view.md", "auth": { - "Project": [] + "Project": [], + "ImpersonateUserId": [] } }, "security": [ { "Project": [], - "Key": [] + "Session": [], + "Key": [], + "JWT": [], + "ImpersonateUserId": [] } ], "parameters": [ { "name": "bucketId", - "description": "Bucket unique ID.", + "description": "Storage bucket unique ID. You can create a new storage bucket using the Storage service [server integration](https:\/\/appwrite.io\/docs\/server\/storage#createBucket).", "required": true, "schema": { "type": "string", "x-example": "<BUCKET_ID>" }, "in": "path" + }, + { + "name": "fileId", + "description": "File ID.", + "required": true, + "schema": { + "type": "string", + "x-example": "<FILE_ID>" + }, + "in": "path" + }, + { + "name": "token", + "description": "File token for accessing this file.", + "required": false, + "schema": { + "type": "string", + "x-example": "<TOKEN>", + "default": "" + }, + "in": "query" } ] } }, - "\/storage\/buckets\/{bucketId}\/files": { + "\/tablesdb": { "get": { - "summary": "List files", - "operationId": "storageListFiles", + "summary": "List databases", + "operationId": "tablesDBList", "tags": [ - "storage" + "tablesDB" ], - "description": "Get a list of all the user files. You can use the query params to filter your results.", + "description": "Get a list of all databases from the current Appwrite project. You can use the search parameter to filter your results.", "responses": { "200": { - "description": "Files List", + "description": "Databases List", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/fileList" + "$ref": "#\/components\/schemas\/databaseList" } } } @@ -71948,23 +71748,22 @@ }, "deprecated": false, "x-appwrite": { - "method": "listFiles", - "group": "files", + "method": "list", + "group": "tablesdb", "cookies": false, "type": "", - "demo": "storage\/list-files.md", + "demo": "tablesdb\/list.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "files.read", + "scope": "databases.read", "platforms": [ "console", - "client", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/storage\/list-files.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/list.md", "auth": { "Project": [] } @@ -71972,25 +71771,13 @@ "security": [ { "Project": [], - "Session": [], - "Key": [], - "JWT": [] + "Key": [] } ], "parameters": [ - { - "name": "bucketId", - "description": "Storage bucket unique ID. You can create a new storage bucket using the Storage service [server integration](https:\/\/appwrite.io\/docs\/server\/storage#createBucket).", - "required": true, - "schema": { - "type": "string", - "x-example": "<BUCKET_ID>" - }, - "in": "path" - }, { "name": "queries", - "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/queries). Maximum of 100 queries are allowed, each 4096 characters long. You may filter on the following attributes: name, signature, mimeType, sizeOriginal, chunksTotal, chunksUploaded", + "description": "Array of query strings generated using the Query class provided by the SDK. [Learn 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", @@ -72026,19 +71813,19 @@ ] }, "post": { - "summary": "Create file", - "operationId": "storageCreateFile", + "summary": "Create database", + "operationId": "tablesDBCreate", "tags": [ - "storage" + "tablesDB" ], - "description": "Create a new file. Before using this route, you should create a new bucket resource using either a [server integration](https:\/\/appwrite.io\/docs\/server\/storage#storageCreateBucket) API or directly from your Appwrite console.\n\nLarger files should be uploaded using multiple requests with the [content-range](https:\/\/developer.mozilla.org\/en-US\/docs\/Web\/HTTP\/Headers\/Content-Range) header to send a partial request with a maximum supported chunk of `5MB`. The `content-range` header values should always be in bytes.\n\nWhen the first request is sent, the server will return the **File** object, and the subsequent part request must include the file's **id** in `x-appwrite-id` header to allow the server to know that the partial upload is for the existing file and not for a new one.\n\nIf you're creating a new file using one of the Appwrite SDKs, all the chunking logic will be managed by the SDK internally.\n", + "description": "Create a new Database.\n", "responses": { "201": { - "description": "File", + "description": "Database", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/file" + "$ref": "#\/components\/schemas\/database" } } } @@ -72046,23 +71833,22 @@ }, "deprecated": false, "x-appwrite": { - "method": "createFile", - "group": "files", + "method": "create", + "group": "tablesdb", "cookies": false, - "type": "upload", - "demo": "storage\/create-file.md", - "rate-limit": 60, - "rate-time": 60, - "rate-key": "ip:{ip},method:{method},url:{url},userId:{userId},chunkId:{chunkId}", - "scope": "files.write", + "type": "", + "demo": "tablesdb\/create.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "databases.write", "platforms": [ "console", - "client", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/storage\/create-file.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/create.md", "auth": { "Project": [] } @@ -72070,57 +71856,51 @@ "security": [ { "Project": [], - "Session": [], - "Key": [], - "JWT": [] - } - ], - "parameters": [ - { - "name": "bucketId", - "description": "Storage bucket unique ID. You can create a new storage bucket using the Storage service [server integration](https:\/\/appwrite.io\/docs\/server\/storage#createBucket).", - "required": true, - "schema": { - "type": "string", - "x-example": "<BUCKET_ID>" - }, - "in": "path" + "Key": [] } ], "requestBody": { "content": { - "multipart\/form-data": { + "application\/json": { "schema": { "type": "object", "properties": { - "fileId": { + "databaseId": { "type": "string", - "description": "File ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.", - "x-example": "<FILE_ID>", - "x-upload-id": true, + "description": "Unique Id. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.", + "x-example": "<DATABASE_ID>", "x-appwrite": { "idGenerator": "ID.unique" } }, - "file": { + "name": { "type": "string", - "description": "Binary file. Appwrite SDKs provide helpers to handle file input. [Learn about file input](https:\/\/appwrite.io\/docs\/products\/storage\/upload-download#input-file).", - "x-example": null, - "format": "binary" + "description": "Database name. Max length: 128 chars.", + "x-example": "<NAME>" }, - "permissions": { - "type": "array", - "description": "An array of permission strings. By default, only the current user is granted all permissions. [Learn more about permissions](https:\/\/appwrite.io\/docs\/permissions).", - "x-example": "[\"read(\"any\")\"]", - "items": { - "type": "string" - }, - "x-nullable": true + "enabled": { + "type": "boolean", + "description": "Is the database enabled? When set to 'disabled', users cannot access the database but Server SDKs with an API key can still read and write to the database. No data is lost when this is toggled.", + "default": true, + "x-example": false + }, + "specification": { + "type": "string", + "description": "Database specification. Defaults to `serverless`, which creates the database on the shared pool. Any other value provisions a dedicated database on that specification.", + "default": "serverless", + "x-example": "serverless" + }, + "replicas": { + "type": "integer", + "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.", + "default": 0, + "x-example": 0, + "format": "int32" } }, "required": [ - "fileId", - "file" + "databaseId", + "name" ] } } @@ -72128,21 +71908,21 @@ } } }, - "\/storage\/buckets\/{bucketId}\/files\/{fileId}": { + "\/tablesdb\/specifications": { "get": { - "summary": "Get file", - "operationId": "storageGetFile", + "summary": "List dedicated database specifications.", + "operationId": "tablesDBListSpecifications", "tags": [ - "storage" + "tablesDB" ], - "description": "Get a file by its unique ID. This endpoint response returns a JSON object with the file metadata.", + "description": "List the dedicated database specifications available on the current plan. Each specification reports its resource limits, pricing, and whether it is enabled for the organization.", "responses": { "200": { - "description": "File", + "description": "SpecificationList", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/file" + "$ref": "#\/components\/schemas\/dedicatedDatabaseSpecificationList" } } } @@ -72150,23 +71930,21 @@ }, "deprecated": false, "x-appwrite": { - "method": "getFile", - "group": "files", + "method": "listSpecifications", + "group": "databases", "cookies": false, "type": "", - "demo": "storage\/get-file.md", + "demo": "tablesdb\/list-specifications.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "files.read", + "scope": "databases.read", "platforms": [ "console", - "client", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/storage\/get-file.md", "auth": { "Project": [] } @@ -72174,48 +71952,26 @@ "security": [ { "Project": [], - "Session": [], - "Key": [], - "JWT": [] - } - ], - "parameters": [ - { - "name": "bucketId", - "description": "Storage bucket unique ID. You can create a new storage bucket using the Storage service [server integration](https:\/\/appwrite.io\/docs\/server\/storage#createBucket).", - "required": true, - "schema": { - "type": "string", - "x-example": "<BUCKET_ID>" - }, - "in": "path" - }, - { - "name": "fileId", - "description": "File ID.", - "required": true, - "schema": { - "type": "string", - "x-example": "<FILE_ID>" - }, - "in": "path" + "Key": [] } ] - }, - "put": { - "summary": "Update file", - "operationId": "storageUpdateFile", + } + }, + "\/tablesdb\/transactions": { + "get": { + "summary": "List transactions", + "operationId": "tablesDBListTransactions", "tags": [ - "storage" + "tablesDB" ], - "description": "Update a file by its unique ID. Only users with write permissions have access to update this resource.", + "description": "List transactions across all databases.", "responses": { "200": { - "description": "File", + "description": "Transaction List", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/file" + "$ref": "#\/components\/schemas\/transactionList" } } } @@ -72223,23 +71979,26 @@ }, "deprecated": false, "x-appwrite": { - "method": "updateFile", - "group": "files", + "method": "listTransactions", + "group": "transactions", "cookies": false, "type": "", - "demo": "storage\/update-file.md", + "demo": "tablesdb\/list-transactions.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "files.write", + "scope": [ + "documents.read", + "rows.read" + ], "platforms": [ "console", - "client", - "server" + "server", + "client" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/storage\/update-file.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/list-transactions.md", "auth": { "Project": [] } @@ -72247,90 +72006,68 @@ "security": [ { "Project": [], - "Session": [], "Key": [], + "Session": [], "JWT": [] } ], "parameters": [ { - "name": "bucketId", - "description": "Bucket unique ID.", - "required": true, - "schema": { - "type": "string", - "x-example": "<BUCKET_ID>" - }, - "in": "path" - }, - { - "name": "fileId", - "description": "File ID.", - "required": true, + "name": "queries", + "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/queries).", + "required": false, "schema": { - "type": "string", - "x-example": "<FILE_ID>" + "type": "array", + "items": { + "type": "string" + }, + "default": [] }, - "in": "path" + "in": "query" } + ] + }, + "post": { + "summary": "Create transaction", + "operationId": "tablesDBCreateTransaction", + "tags": [ + "tablesDB" ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "name": { - "type": "string", - "description": "File name.", - "x-example": "<NAME>" - }, - "permissions": { - "type": "array", - "description": "An array of permission strings. By default, the current permissions are inherited. [Learn more about permissions](https:\/\/appwrite.io\/docs\/permissions).", - "x-example": "[\"read(\"any\")\"]", - "items": { - "type": "string" - }, - "x-nullable": true - } + "description": "Create a new transaction.", + "responses": { + "201": { + "description": "Transaction", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/transaction" } } } } - } - }, - "delete": { - "summary": "Delete file", - "operationId": "storageDeleteFile", - "tags": [ - "storage" - ], - "description": "Delete a file by its unique ID. Only users with write permissions have access to delete this resource.", - "responses": { - "204": { - "description": "No content" - } }, "deprecated": false, "x-appwrite": { - "method": "deleteFile", - "group": "files", + "method": "createTransaction", + "group": "transactions", "cookies": false, "type": "", - "demo": "storage\/delete-file.md", - "rate-limit": 60, - "rate-time": 60, - "rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}", - "scope": "files.write", + "demo": "tablesdb\/create-transaction.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": [ + "documents.write", + "rows.write" + ], "platforms": [ "console", - "client", - "server" + "server", + "client" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/storage\/delete-file.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/create-transaction.md", "auth": { "Project": [] } @@ -72338,51 +72075,46 @@ "security": [ { "Project": [], - "Session": [], "Key": [], + "Session": [], "JWT": [] } ], - "parameters": [ - { - "name": "bucketId", - "description": "Storage bucket unique ID. You can create a new storage bucket using the Storage service [server integration](https:\/\/appwrite.io\/docs\/server\/storage#createBucket).", - "required": true, - "schema": { - "type": "string", - "x-example": "<BUCKET_ID>" - }, - "in": "path" - }, - { - "name": "fileId", - "description": "File ID.", - "required": true, - "schema": { - "type": "string", - "x-example": "<FILE_ID>" - }, - "in": "path" + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "ttl": { + "type": "integer", + "description": "Seconds before the transaction expires.", + "default": 300, + "x-example": 60, + "format": "int32" + } + } + } + } } - ] + } } }, - "\/storage\/buckets\/{bucketId}\/files\/{fileId}\/download": { + "\/tablesdb\/transactions\/{transactionId}": { "get": { - "summary": "Get file for download", - "operationId": "storageGetFileDownload", + "summary": "Get transaction", + "operationId": "tablesDBGetTransaction", "tags": [ - "storage" + "tablesDB" ], - "description": "Get a file content by its unique ID. The endpoint response return with a 'Content-Disposition: attachment' header that tells the browser to start downloading the file to user downloads directory.", + "description": "Get a transaction by its unique ID.", "responses": { "200": { - "description": "File", + "description": "Transaction", "content": { - "*\/*": { + "application\/json": { "schema": { - "type": "string", - "format": "binary" + "$ref": "#\/components\/schemas\/transaction" } } } @@ -72390,88 +72122,65 @@ }, "deprecated": false, "x-appwrite": { - "method": "getFileDownload", - "group": "files", + "method": "getTransaction", + "group": "transactions", "cookies": false, - "type": "location", - "demo": "storage\/get-file-download.md", + "type": "", + "demo": "tablesdb\/get-transaction.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "files.read", + "scope": [ + "documents.read", + "rows.read" + ], "platforms": [ "console", - "client", - "server" + "server", + "client" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/storage\/get-file-download.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/get-transaction.md", "auth": { - "Project": [], - "ImpersonateUserId": [] + "Project": [] } }, "security": [ { "Project": [], - "Session": [], "Key": [], - "JWT": [], - "ImpersonateUserId": [] + "Session": [], + "JWT": [] } ], "parameters": [ { - "name": "bucketId", - "description": "Storage bucket ID. You can create a new storage bucket using the Storage service [server integration](https:\/\/appwrite.io\/docs\/server\/storage#createBucket).", - "required": true, - "schema": { - "type": "string", - "x-example": "<BUCKET_ID>" - }, - "in": "path" - }, - { - "name": "fileId", - "description": "File ID.", + "name": "transactionId", + "description": "Transaction ID.", "required": true, "schema": { "type": "string", - "x-example": "<FILE_ID>" + "x-example": "<TRANSACTION_ID>" }, "in": "path" - }, - { - "name": "token", - "description": "File token for accessing this file.", - "required": false, - "schema": { - "type": "string", - "x-example": "<TOKEN>", - "default": "" - }, - "in": "query" } ] - } - }, - "\/storage\/buckets\/{bucketId}\/files\/{fileId}\/preview": { - "get": { - "summary": "Get file preview", - "operationId": "storageGetFilePreview", + }, + "patch": { + "summary": "Update transaction", + "operationId": "tablesDBUpdateTransaction", "tags": [ - "storage" + "tablesDB" ], - "description": "Get a file preview image. Currently, this method supports preview for image files (jpg, png, and gif), other supported formats, like pdf, docs, slides, and spreadsheets, will return the file icon image. You can also pass query string arguments for cutting and resizing your preview image. Preview is supported only for image files smaller than 10MB.", + "description": "Update a transaction, to either commit or roll back its operations.", "responses": { "200": { - "description": "Image", + "description": "Transaction", "content": { - "image\/*": { + "application\/json": { "schema": { - "type": "string", - "format": "binary" + "$ref": "#\/components\/schemas\/transaction" } } } @@ -72479,343 +72188,149 @@ }, "deprecated": false, "x-appwrite": { - "method": "getFilePreview", - "group": "files", + "method": "updateTransaction", + "group": "transactions", "cookies": false, - "type": "location", - "demo": "storage\/get-file-preview.md", + "type": "", + "demo": "tablesdb\/update-transaction.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "files.read", + "scope": [ + "documents.write", + "rows.write" + ], "platforms": [ "console", - "client", - "server" + "server", + "client" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/storage\/get-file-preview.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/update-transaction.md", "auth": { - "Project": [], - "ImpersonateUserId": [] + "Project": [] } }, "security": [ { "Project": [], - "Session": [], "Key": [], - "JWT": [], - "ImpersonateUserId": [] + "Session": [], + "JWT": [] } ], "parameters": [ { - "name": "bucketId", - "description": "Storage bucket unique ID. You can create a new storage bucket using the Storage service [server integration](https:\/\/appwrite.io\/docs\/server\/storage#createBucket).", - "required": true, - "schema": { - "type": "string", - "x-example": "<BUCKET_ID>" - }, - "in": "path" - }, - { - "name": "fileId", - "description": "File ID", + "name": "transactionId", + "description": "Transaction ID.", "required": true, "schema": { "type": "string", - "x-example": "<FILE_ID>" + "x-example": "<TRANSACTION_ID>" }, "in": "path" - }, - { - "name": "width", - "description": "Resize preview image width, Pass an integer between 0 to 4000.", - "required": false, - "schema": { - "type": "integer", - "format": "int32", - "x-example": 0, - "default": 0 - }, - "in": "query" - }, - { - "name": "height", - "description": "Resize preview image height, Pass an integer between 0 to 4000.", - "required": false, - "schema": { - "type": "integer", - "format": "int32", - "x-example": 0, - "default": 0 - }, - "in": "query" - }, - { - "name": "gravity", - "description": "Image crop gravity. Can be one of center,top-left,top,top-right,left,right,bottom-left,bottom,bottom-right", - "required": false, - "schema": { - "type": "string", - "x-example": "center", - "enum": [ - "center", - "top-left", - "top", - "top-right", - "left", - "right", - "bottom-left", - "bottom", - "bottom-right" - ], - "x-enum-name": "ImageGravity", - "x-enum-keys": [ - "center", - "top-left", - "top", - "top-right", - "left", - "right", - "bottom-left", - "bottom", - "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", - "x-example": -1, - "default": -1 - }, - "in": "query" - }, - { - "name": "borderWidth", - "description": "Preview image border in pixels. Pass an integer between 0 to 100. Defaults to 0.", - "required": false, - "schema": { - "type": "integer", - "format": "int32", - "x-example": 0, - "default": 0 - }, - "in": "query" - }, - { - "name": "borderColor", - "description": "Preview image border color. Use a valid HEX color, no # is needed for prefix.", - "required": false, - "schema": { - "type": "string", - "default": "" - }, - "in": "query" - }, - { - "name": "borderRadius", - "description": "Preview image border radius in pixels. Pass an integer between 0 to 4000.", - "required": false, - "schema": { - "type": "integer", - "format": "int32", - "x-example": 0, - "default": 0 - }, - "in": "query" - }, - { - "name": "opacity", - "description": "Preview image opacity. Only works with images having an alpha channel (like png). Pass a number between 0 to 1.", - "required": false, - "schema": { - "type": "number", - "format": "float", - "x-example": 0, - "default": 1 - }, - "in": "query" - }, - { - "name": "rotation", - "description": "Preview image rotation in degrees. Pass an integer between -360 and 360.", - "required": false, - "schema": { - "type": "integer", - "format": "int32", - "x-example": -360, - "default": 0 - }, - "in": "query" - }, - { - "name": "background", - "description": "Preview image background color. Only works with transparent images (png). Use a valid HEX color, no # is needed for prefix.", - "required": false, - "schema": { - "type": "string", - "default": "" - }, - "in": "query" - }, - { - "name": "output", - "description": "Output format type (jpeg, jpg, png, gif and webp).", - "required": false, - "schema": { - "type": "string", - "x-example": "jpg", - "enum": [ - "jpg", - "jpeg", - "png", - "webp", - "heic", - "avif", - "gif" - ], - "x-enum-name": "ImageFormat", - "x-enum-keys": [ - "jpg", - "jpeg", - "png", - "webp", - "heic", - "avif", - "gif" - ] - }, - "in": "query" - }, - { - "name": "token", - "description": "File token for accessing this file.", - "required": false, - "schema": { - "type": "string", - "x-example": "<TOKEN>", - "default": "" - }, - "in": "query" } - ] - } - }, - "\/storage\/buckets\/{bucketId}\/files\/{fileId}\/view": { - "get": { - "summary": "Get file for view", - "operationId": "storageGetFileView", - "tags": [ - "storage" ], - "description": "Get a file content by its unique ID. This endpoint is similar to the download method but returns with no 'Content-Disposition: attachment' header.", - "responses": { - "200": { - "description": "File", - "content": { - "*\/*": { - "schema": { - "type": "string", - "format": "binary" + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "commit": { + "type": "boolean", + "description": "Commit transaction?", + "default": false, + "x-example": false + }, + "rollback": { + "type": "boolean", + "description": "Rollback transaction?", + "default": false, + "x-example": false + } } } } } + } + }, + "delete": { + "summary": "Delete transaction", + "operationId": "tablesDBDeleteTransaction", + "tags": [ + "tablesDB" + ], + "description": "Delete a transaction by its unique ID.", + "responses": { + "204": { + "description": "No content" + } }, "deprecated": false, "x-appwrite": { - "method": "getFileView", - "group": "files", + "method": "deleteTransaction", + "group": "transactions", "cookies": false, - "type": "location", - "demo": "storage\/get-file-view.md", + "type": "", + "demo": "tablesdb\/delete-transaction.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "files.read", + "scope": [ + "documents.write", + "rows.write" + ], "platforms": [ "console", - "client", - "server" + "server", + "client" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/storage\/get-file-view.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/delete-transaction.md", "auth": { - "Project": [], - "ImpersonateUserId": [] + "Project": [] } }, "security": [ { "Project": [], - "Session": [], "Key": [], - "JWT": [], - "ImpersonateUserId": [] + "Session": [], + "JWT": [] } ], "parameters": [ { - "name": "bucketId", - "description": "Storage bucket unique ID. You can create a new storage bucket using the Storage service [server integration](https:\/\/appwrite.io\/docs\/server\/storage#createBucket).", - "required": true, - "schema": { - "type": "string", - "x-example": "<BUCKET_ID>" - }, - "in": "path" - }, - { - "name": "fileId", - "description": "File ID.", + "name": "transactionId", + "description": "Transaction ID.", "required": true, "schema": { "type": "string", - "x-example": "<FILE_ID>" + "x-example": "<TRANSACTION_ID>" }, "in": "path" - }, - { - "name": "token", - "description": "File token for accessing this file.", - "required": false, - "schema": { - "type": "string", - "x-example": "<TOKEN>", - "default": "" - }, - "in": "query" } ] } }, - "\/storage\/usage": { - "get": { - "summary": "Get storage usage stats", - "operationId": "storageGetUsage", + "\/tablesdb\/transactions\/{transactionId}\/operations": { + "post": { + "summary": "Create operations", + "operationId": "tablesDBCreateOperations", "tags": [ - "storage" + "tablesDB" ], - "description": "Get usage metrics and statistics for all buckets in the project. You can view the total number of buckets, files, storage usage. The response includes both current totals and historical data over time. Use the optional range parameter to specify the time window for historical data: 24h (last 24 hours), 30d (last 30 days), or 90d (last 90 days). If not specified, range defaults to 30 days.\n", + "description": "Create multiple operations in a single transaction.", "responses": { - "200": { - "description": "StorageUsage", - "content": { + "201": { + "description": "Transaction", + "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/usageStorage" + "$ref": "#\/components\/schemas\/transaction" } } } @@ -72823,153 +72338,87 @@ }, "deprecated": false, "x-appwrite": { - "method": "getUsage", - "group": null, + "method": "createOperations", + "group": "transactions", "cookies": false, "type": "", - "demo": "storage\/get-usage.md", + "demo": "tablesdb\/create-operations.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "files.read", + "scope": [ + "documents.write", + "rows.write" + ], "platforms": [ - "console" + "console", + "server", + "client" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/storage\/get-usage.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/create-operations.md", "auth": { "Project": [] } }, "security": [ { - "Project": [] + "Project": [], + "Key": [], + "Session": [], + "JWT": [] } ], "parameters": [ { - "name": "range", - "description": "Date range.", - "required": false, + "name": "transactionId", + "description": "Transaction ID.", + "required": true, "schema": { "type": "string", - "x-example": "24h", - "enum": [ - "24h", - "30d", - "90d" - ], - "x-enum-name": "UsageRange", - "x-enum-keys": [ - "Twenty Four Hours", - "Thirty Days", - "Ninety Days" - ], - "default": "30d" + "x-example": "<TRANSACTION_ID>" }, - "in": "query" + "in": "path" } - ] - } - }, - "\/storage\/{bucketId}\/usage": { - "get": { - "summary": "Get bucket usage stats", - "operationId": "storageGetBucketUsage", - "tags": [ - "storage" ], - "description": "Get usage metrics and statistics a specific bucket in the project. You can view the total number of files, storage usage. The response includes both current totals and historical data over time. Use the optional range parameter to specify the time window for historical data: 24h (last 24 hours), 30d (last 30 days), or 90d (last 90 days). If not specified, range defaults to 30 days.\n", - "responses": { - "200": { - "description": "UsageBuckets", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/usageBuckets" + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "operations": { + "type": "array", + "description": "Array of staged operations.", + "default": [], + "x-example": "[\n\t {\n\t \"action\": \"create\",\n\t \"databaseId\": \"<DATABASE_ID>\",\n\t \"tableId\": \"<TABLE_ID>\",\n\t \"rowId\": \"<ROW_ID>\",\n\t \"data\": {\n\t \"name\": \"Walter O'Brien\"\n\t }\n\t }\n\t]", + "items": { + "type": "object" + } + } } } } } - }, - "deprecated": false, - "x-appwrite": { - "method": "getBucketUsage", - "group": null, - "cookies": false, - "type": "", - "demo": "storage\/get-bucket-usage.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "files.read", - "platforms": [ - "console" - ], - "packaging": false, - "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/storage\/get-bucket-usage.md", - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [] - } - ], - "parameters": [ - { - "name": "bucketId", - "description": "Bucket ID.", - "required": true, - "schema": { - "type": "string", - "x-example": "<BUCKET_ID>" - }, - "in": "path" - }, - { - "name": "range", - "description": "Date range.", - "required": false, - "schema": { - "type": "string", - "x-example": "24h", - "enum": [ - "24h", - "30d", - "90d" - ], - "x-enum-name": "UsageRange", - "x-enum-keys": [ - "Twenty Four Hours", - "Thirty Days", - "Ninety Days" - ], - "default": "30d" - }, - "in": "query" - } - ] + } } }, - "\/tablesdb": { + "\/tablesdb\/{databaseId}": { "get": { - "summary": "List databases", - "operationId": "tablesDBList", + "summary": "Get database", + "operationId": "tablesDBGet", "tags": [ "tablesDB" ], - "description": "Get a list of all databases from the current Appwrite project. You can use the search parameter to filter your results.", + "description": "Get a database by its unique ID. This endpoint response returns a JSON object with the database metadata.", "responses": { "200": { - "description": "Databases List", + "description": "Database", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/databaseList" + "$ref": "#\/components\/schemas\/database" } } } @@ -72977,11 +72426,11 @@ }, "deprecated": false, "x-appwrite": { - "method": "list", + "method": "get", "group": "tablesdb", "cookies": false, "type": "", - "demo": "tablesdb\/list.md", + "demo": "tablesdb\/get.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", @@ -72992,7 +72441,7 @@ ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/list.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/get.md", "auth": { "Project": [] } @@ -73005,51 +72454,26 @@ ], "parameters": [ { - "name": "queries", - "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/queries). Maximum of 100 queries are allowed, each 4096 characters long. You may filter on the following columns: name", - "required": false, - "schema": { - "type": "array", - "items": { - "type": "string" - }, - "default": [] - }, - "in": "query" - }, - { - "name": "search", - "description": "Search term to filter your list results. Max length: 256 chars.", - "required": false, + "name": "databaseId", + "description": "Database ID.", + "required": true, "schema": { "type": "string", - "x-example": "<SEARCH>", - "default": "" - }, - "in": "query" - }, - { - "name": "total", - "description": "When set to false, the total count returned will be 0 and will not be calculated.", - "required": false, - "schema": { - "type": "boolean", - "x-example": false, - "default": true + "x-example": "<DATABASE_ID>" }, - "in": "query" + "in": "path" } ] }, - "post": { - "summary": "Create database", - "operationId": "tablesDBCreate", + "put": { + "summary": "Update database", + "operationId": "tablesDBUpdate", "tags": [ "tablesDB" ], - "description": "Create a new Database.\n", + "description": "Update a database by its unique ID.", "responses": { - "201": { + "200": { "description": "Database", "content": { "application\/json": { @@ -73062,11 +72486,11 @@ }, "deprecated": false, "x-appwrite": { - "method": "create", + "method": "update", "group": "tablesdb", "cookies": false, "type": "", - "demo": "tablesdb\/create.md", + "demo": "tablesdb\/update.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", @@ -73077,7 +72501,7 @@ ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/create.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/update.md", "auth": { "Project": [] } @@ -73088,20 +72512,24 @@ "Key": [] } ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "x-example": "<DATABASE_ID>" + }, + "in": "path" + } + ], "requestBody": { "content": { "application\/json": { "schema": { "type": "object", "properties": { - "databaseId": { - "type": "string", - "description": "Unique Id. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.", - "x-example": "<DATABASE_ID>", - "x-appwrite": { - "idGenerator": "ID.unique" - } - }, "name": { "type": "string", "description": "Database name. Max length: 128 chars.", @@ -73109,69 +72537,53 @@ }, "enabled": { "type": "boolean", - "description": "Is the database enabled? When set to 'disabled', users cannot access the database but Server SDKs with an API key can still read and write to the database. No data is lost when this is toggled.", + "description": "Is database enabled? When set to 'disabled', users cannot access the database but Server SDKs with an API key can still read and write to the database. No data is lost when this is toggled.", "default": true, "x-example": false }, - "specification": { - "type": "string", - "description": "Database specification. Defaults to `serverless`, which creates the database on the shared pool. Any other value provisions a dedicated database on that specification.", - "default": "serverless", - "x-example": "serverless" + "replicas": { + "type": "integer", + "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.", + "x-example": 0, + "format": "int32", + "x-nullable": true } - }, - "required": [ - "databaseId", - "name" - ] + } } } } } - } - }, - "\/tablesdb\/transactions": { - "get": { - "summary": "List transactions", - "operationId": "tablesDBListTransactions", + }, + "delete": { + "summary": "Delete database", + "operationId": "tablesDBDelete", "tags": [ "tablesDB" ], - "description": "List transactions across all databases.", + "description": "Delete a database by its unique ID. Only API keys with with databases.write scope can delete a database.", "responses": { - "200": { - "description": "Transaction List", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/transactionList" - } - } - } + "204": { + "description": "No content" } }, "deprecated": false, "x-appwrite": { - "method": "listTransactions", - "group": "transactions", + "method": "delete", + "group": "tablesdb", "cookies": false, "type": "", - "demo": "tablesdb\/list-transactions.md", + "demo": "tablesdb\/delete.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": [ - "documents.read", - "rows.read" - ], + "scope": "databases.write", "platforms": [ "console", - "server", - "client" + "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/list-transactions.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/delete.md", "auth": { "Project": [] } @@ -73179,41 +72591,38 @@ "security": [ { "Project": [], - "Key": [], - "Session": [], - "JWT": [] + "Key": [] } ], "parameters": [ { - "name": "queries", - "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/queries).", - "required": false, + "name": "databaseId", + "description": "Database ID.", + "required": true, "schema": { - "type": "array", - "items": { - "type": "string" - }, - "default": [] + "type": "string", + "x-example": "<DATABASE_ID>" }, - "in": "query" + "in": "path" } ] - }, + } + }, + "\/tablesdb\/{databaseId}\/failovers": { "post": { - "summary": "Create transaction", - "operationId": "tablesDBCreateTransaction", + "summary": "Trigger manual failover.", + "operationId": "tablesDBCreateFailover", "tags": [ "tablesDB" ], - "description": "Create a new transaction.", + "description": "Trigger a manual failover for a dedicated database with high availability enabled. Promotes a replica to primary. The failover runs asynchronously; poll the database document for status updates.", "responses": { - "201": { - "description": "Transaction", + "202": { + "description": "DedicatedDatabase", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/transaction" + "$ref": "#\/components\/schemas\/dedicatedDatabase" } } } @@ -73221,26 +72630,21 @@ }, "deprecated": false, "x-appwrite": { - "method": "createTransaction", - "group": "transactions", + "method": "createFailover", + "group": "databases", "cookies": false, "type": "", - "demo": "tablesdb\/create-transaction.md", + "demo": "tablesdb\/create-failover.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": [ - "documents.write", - "rows.write" - ], + "scope": "databases.write", "platforms": [ "console", - "server", - "client" + "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/create-transaction.md", "auth": { "Project": [] } @@ -73248,9 +72652,19 @@ "security": [ { "Project": [], - "Key": [], - "Session": [], - "JWT": [] + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "x-example": "<DATABASE_ID>" + }, + "in": "path" } ], "requestBody": { @@ -73259,12 +72673,11 @@ "schema": { "type": "object", "properties": { - "ttl": { - "type": "integer", - "description": "Seconds before the transaction expires.", - "default": 300, - "x-example": 60, - "format": "int32" + "targetReplicaId": { + "type": "string", + "description": "Target replica ID to promote. If not specified, the healthiest replica is selected.", + "x-example": "<TARGET_REPLICA_ID>", + "x-nullable": true } } } @@ -73273,21 +72686,21 @@ } } }, - "\/tablesdb\/transactions\/{transactionId}": { + "\/tablesdb\/{databaseId}\/migrations": { "get": { - "summary": "Get transaction", - "operationId": "tablesDBGetTransaction", + "summary": "List TablesDB dedicated migrations.", + "operationId": "tablesDBListMigrations", "tags": [ "tablesDB" ], - "description": "Get a transaction by its unique ID.", + "description": "List the dedicated migrations for a TablesDB database. A database has at most one in-flight migration.", "responses": { "200": { - "description": "Transaction", + "description": "Database Migrations List", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/transaction" + "$ref": "#\/components\/schemas\/databaseMigrationList" } } } @@ -73295,65 +72708,56 @@ }, "deprecated": false, "x-appwrite": { - "method": "getTransaction", - "group": "transactions", + "method": "listMigrations", + "group": "databases", "cookies": false, "type": "", - "demo": "tablesdb\/get-transaction.md", + "demo": "tablesdb\/list-migrations.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": [ - "documents.read", - "rows.read" - ], + "scope": "databases.read", "platforms": [ - "console", - "server", - "client" + "console" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/get-transaction.md", "auth": { "Project": [] } }, "security": [ { - "Project": [], - "Key": [], - "Session": [], - "JWT": [] + "Project": [] } ], "parameters": [ { - "name": "transactionId", - "description": "Transaction ID.", + "name": "databaseId", + "description": "Database ID.", "required": true, "schema": { "type": "string", - "x-example": "<TRANSACTION_ID>" + "x-example": "<DATABASE_ID>" }, "in": "path" } ] }, - "patch": { - "summary": "Update transaction", - "operationId": "tablesDBUpdateTransaction", + "post": { + "summary": "Start a TablesDB dedicated migration.", + "operationId": "tablesDBCreateMigration", "tags": [ "tablesDB" ], - "description": "Update a transaction, to either commit or roll back its operations.", + "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": { - "200": { - "description": "Transaction", + "201": { + "description": "Database Migration", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/transaction" + "$ref": "#\/components\/schemas\/databaseMigration" } } } @@ -73361,46 +72765,37 @@ }, "deprecated": false, "x-appwrite": { - "method": "updateTransaction", - "group": "transactions", + "method": "createMigration", + "group": "databases", "cookies": false, "type": "", - "demo": "tablesdb\/update-transaction.md", + "demo": "tablesdb\/create-migration.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": [ - "documents.write", - "rows.write" - ], + "scope": "databases.write", "platforms": [ - "console", - "server", - "client" + "console" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/update-transaction.md", "auth": { "Project": [] } }, "security": [ { - "Project": [], - "Key": [], - "Session": [], - "JWT": [] + "Project": [] } ], "parameters": [ { - "name": "transactionId", - "description": "Transaction ID.", + "name": "databaseId", + "description": "Database ID.", "required": true, "schema": { "type": "string", - "x-example": "<TRANSACTION_ID>" + "x-example": "<DATABASE_ID>" }, "in": "path" } @@ -73411,187 +72806,168 @@ "schema": { "type": "object", "properties": { - "commit": { - "type": "boolean", - "description": "Commit transaction?", - "default": false, - "x-example": false - }, - "rollback": { - "type": "boolean", - "description": "Rollback transaction?", - "default": false, - "x-example": false + "specification": { + "type": "string", + "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.", + "x-example": "s-1vcpu-1gb" } - } + }, + "required": [ + "specification" + ] } } } } - }, - "delete": { - "summary": "Delete transaction", - "operationId": "tablesDBDeleteTransaction", + } + }, + "\/tablesdb\/{databaseId}\/migrations\/{migrationId}": { + "get": { + "summary": "Get a TablesDB dedicated migration.", + "operationId": "tablesDBGetMigration", "tags": [ "tablesDB" ], - "description": "Delete a transaction by its unique ID.", + "description": "Get a single dedicated migration for a TablesDB database by its ID.", "responses": { - "204": { - "description": "No content" + "200": { + "description": "Database Migration", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/databaseMigration" + } + } + } } }, "deprecated": false, "x-appwrite": { - "method": "deleteTransaction", - "group": "transactions", + "method": "getMigration", + "group": "databases", "cookies": false, "type": "", - "demo": "tablesdb\/delete-transaction.md", + "demo": "tablesdb\/get-migration.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": [ - "documents.write", - "rows.write" - ], + "scope": "databases.read", "platforms": [ - "console", - "server", - "client" + "console" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/delete-transaction.md", "auth": { "Project": [] } }, "security": [ { - "Project": [], - "Key": [], - "Session": [], - "JWT": [] + "Project": [] } ], "parameters": [ { - "name": "transactionId", - "description": "Transaction ID.", + "name": "databaseId", + "description": "Database ID.", "required": true, "schema": { "type": "string", - "x-example": "<TRANSACTION_ID>" + "x-example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "migrationId", + "description": "Migration ID.", + "required": true, + "schema": { + "type": "string", + "x-example": "<MIGRATION_ID>" }, "in": "path" } ] - } - }, - "\/tablesdb\/transactions\/{transactionId}\/operations": { - "post": { - "summary": "Create operations", - "operationId": "tablesDBCreateOperations", + }, + "delete": { + "summary": "Abort a TablesDB dedicated migration.", + "operationId": "tablesDBDeleteMigration", "tags": [ "tablesDB" ], - "description": "Create multiple operations in a single transaction.", + "description": "Abort an in-flight TablesDB dedicated migration. Only allowed before cutover; once the migration has cut over it cannot be aborted.", "responses": { - "201": { - "description": "Transaction", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/transaction" - } - } - } + "204": { + "description": "No content" } }, "deprecated": false, "x-appwrite": { - "method": "createOperations", - "group": "transactions", + "method": "deleteMigration", + "group": "databases", "cookies": false, "type": "", - "demo": "tablesdb\/create-operations.md", + "demo": "tablesdb\/delete-migration.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": [ - "documents.write", - "rows.write" - ], + "scope": "databases.write", "platforms": [ - "console", - "server", - "client" + "console" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/create-operations.md", + "produces": [ + "application\/json" + ], "auth": { "Project": [] } }, "security": [ { - "Project": [], - "Key": [], - "Session": [], - "JWT": [] + "Project": [] } ], "parameters": [ { - "name": "transactionId", - "description": "Transaction ID.", + "name": "databaseId", + "description": "Database ID.", "required": true, "schema": { "type": "string", - "x-example": "<TRANSACTION_ID>" + "x-example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "migrationId", + "description": "Migration ID.", + "required": true, + "schema": { + "type": "string", + "x-example": "<MIGRATION_ID>" }, "in": "path" } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "operations": { - "type": "array", - "description": "Array of staged operations.", - "default": [], - "x-example": "[\n\t {\n\t \"action\": \"create\",\n\t \"databaseId\": \"<DATABASE_ID>\",\n\t \"tableId\": \"<TABLE_ID>\",\n\t \"rowId\": \"<ROW_ID>\",\n\t \"data\": {\n\t \"name\": \"Walter O'Brien\"\n\t }\n\t }\n\t]", - "items": { - "type": "object" - } - } - } - } - } - } - } + ] } }, - "\/tablesdb\/usage": { + "\/tablesdb\/{databaseId}\/replicas": { "get": { - "summary": "Get TablesDB usage stats", - "operationId": "tablesDBListUsage", + "summary": "Get replica status.", + "operationId": "tablesDBGetReplicas", "tags": [ "tablesDB" ], - "description": "List usage metrics and statistics for all databases in the project. You can view the total number of databases, tables, rows, and storage usage. The response includes both current totals and historical data over time. Use the optional range parameter to specify the time window for historical data: 24h (last 24 hours), 30d (last 30 days), or 90d (last 90 days). If not specified, range defaults to 30 days.", + "description": "Get high availability status for a dedicated database. Returns replica statuses, replication lag, and sync mode.", "responses": { "200": { - "description": "UsageDatabases", + "description": "Replicas", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/usageDatabases" + "$ref": "#\/components\/schemas\/dedicatedDatabaseReplicas" } } } @@ -73599,97 +72975,60 @@ }, "deprecated": false, "x-appwrite": { - "method": "listUsage", - "group": null, + "method": "getReplicas", + "group": "databases", "cookies": false, "type": "", - "demo": "tablesdb\/list-usage.md", + "demo": "tablesdb\/get-replicas.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": [ - "tables.read", - "collections.read" - ], + "scope": "databases.read", "platforms": [ - "console" + "console", + "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/list-usage.md", - "methods": [ - { - "name": "listUsage", - "namespace": "tablesDB", - "desc": "", - "auth": { - "Project": [] - }, - "parameters": [ - "range" - ], - "required": [], - "responses": [ - { - "code": 200, - "model": "#\/components\/schemas\/usageDatabases" - } - ], - "description": "List usage metrics and statistics for all databases in the project. You can view the total number of databases, tables, rows, and storage usage. The response includes both current totals and historical data over time. Use the optional range parameter to specify the time window for historical data: 24h (last 24 hours), 30d (last 30 days), or 90d (last 90 days). If not specified, range defaults to 30 days.", - "demo": "tablesdb\/list-usage.md", - "public": true - } - ], "auth": { "Project": [] } }, "security": [ { - "Project": [] + "Project": [], + "Key": [] } ], "parameters": [ { - "name": "range", - "description": "Date range.", - "required": false, + "name": "databaseId", + "description": "Database ID.", + "required": true, "schema": { "type": "string", - "x-example": "24h", - "enum": [ - "24h", - "30d", - "90d" - ], - "x-enum-name": "UsageRange", - "x-enum-keys": [ - "Twenty Four Hours", - "Thirty Days", - "Ninety Days" - ], - "default": "30d" + "x-example": "<DATABASE_ID>" }, - "in": "query" + "in": "path" } ] } }, - "\/tablesdb\/{databaseId}": { + "\/tablesdb\/{databaseId}\/status": { "get": { - "summary": "Get database", - "operationId": "tablesDBGet", + "summary": "Get database status.", + "operationId": "tablesDBGetStatus", "tags": [ "tablesDB" ], - "description": "Get a database by its unique ID. This endpoint response returns a JSON object with the database metadata.", + "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": "Database", + "description": "Status", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/database" + "$ref": "#\/components\/schemas\/databaseStatus" } } } @@ -73697,11 +73036,11 @@ }, "deprecated": false, "x-appwrite": { - "method": "get", - "group": "tablesdb", + "method": "getStatus", + "group": "databases", "cookies": false, "type": "", - "demo": "tablesdb\/get.md", + "demo": "tablesdb\/get-status.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", @@ -73712,7 +73051,6 @@ ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/get.md", "auth": { "Project": [] } @@ -73735,21 +73073,23 @@ "in": "path" } ] - }, - "put": { - "summary": "Update database", - "operationId": "tablesDBUpdate", + } + }, + "\/tablesdb\/{databaseId}\/tables": { + "get": { + "summary": "List tables", + "operationId": "tablesDBListTables", "tags": [ "tablesDB" ], - "description": "Update a database by its unique ID.", + "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": "Database", + "description": "Tables List", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/database" + "$ref": "#\/components\/schemas\/tableList" } } } @@ -73757,22 +73097,25 @@ }, "deprecated": false, "x-appwrite": { - "method": "update", - "group": "tablesdb", + "method": "listTables", + "group": "tables", "cookies": false, "type": "", - "demo": "tablesdb\/update.md", + "demo": "tablesdb\/list-tables.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "databases.write", + "scope": [ + "tables.read", + "collections.read" + ], "platforms": [ "console", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/update.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/list-tables.md", "auth": { "Project": [] } @@ -73793,61 +73136,84 @@ "x-example": "<DATABASE_ID>" }, "in": "path" + }, + { + "name": "queries", + "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/queries). Maximum of 100 queries are allowed, each 4096 characters long. You may filter on the following columns: name, 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", + "x-example": "<SEARCH>", + "default": "" + }, + "in": "query" + }, + { + "name": "total", + "description": "When set to false, the total count returned will be 0 and will not be calculated.", + "required": false, + "schema": { + "type": "boolean", + "x-example": false, + "default": true + }, + "in": "query" } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "name": { - "type": "string", - "description": "Database name. Max length: 128 chars.", - "x-example": "<NAME>" - }, - "enabled": { - "type": "boolean", - "description": "Is database enabled? When set to 'disabled', users cannot access the database but Server SDKs with an API key can still read and write to the database. No data is lost when this is toggled.", - "default": true, - "x-example": false - } - } - } - } - } - } + ] }, - "delete": { - "summary": "Delete database", - "operationId": "tablesDBDelete", + "post": { + "summary": "Create table", + "operationId": "tablesDBCreateTable", "tags": [ "tablesDB" ], - "description": "Delete a database by its unique ID. Only API keys with with databases.write scope can delete a database.", + "description": "Create a 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": { - "204": { - "description": "No content" + "201": { + "description": "Table", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/table" + } + } + } } }, "deprecated": false, "x-appwrite": { - "method": "delete", - "group": "tablesdb", + "method": "createTable", + "group": "tables", "cookies": false, "type": "", - "demo": "tablesdb\/delete.md", + "demo": "tablesdb\/create-table.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "databases.write", + "scope": [ + "tables.write", + "collections.write" + ], "platforms": [ "console", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/delete.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/create-table.md", "auth": { "Project": [] } @@ -73869,24 +73235,91 @@ }, "in": "path" } - ] + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "tableId": { + "type": "string", + "description": "Unique Id. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.", + "x-example": "<TABLE_ID>", + "x-appwrite": { + "idGenerator": "ID.unique" + } + }, + "name": { + "type": "string", + "description": "Table name. Max length: 128 chars.", + "x-example": "<NAME>" + }, + "permissions": { + "type": "array", + "description": "An array of permissions strings. By default, no user is granted with any permissions. [Learn more about permissions](https:\/\/appwrite.io\/docs\/permissions).", + "x-example": "[\"read(\"any\")\"]", + "items": { + "type": "string" + }, + "x-nullable": true + }, + "rowSecurity": { + "type": "boolean", + "description": "Enables configuring permissions for individual rows. A user needs one of row or table level permissions to access a row. [Learn more about permissions](https:\/\/appwrite.io\/docs\/permissions).", + "default": false, + "x-example": false + }, + "enabled": { + "type": "boolean", + "description": "Is table enabled? When set to 'disabled', users cannot access the table but Server SDKs with and API key can still read and write to the table. No data is lost when this is toggled.", + "default": true, + "x-example": false + }, + "columns": { + "type": "array", + "description": "Array of column definitions to create. Each column should contain: key (string), type (string: string, integer, float, boolean, datetime, relationship), size (integer, required for string type), required (boolean, optional), default (mixed, optional), array (boolean, optional), and type-specific options.", + "default": [], + "x-example": null, + "items": { + "type": "object" + } + }, + "indexes": { + "type": "array", + "description": "Array of index definitions to create. Each index should contain: key (string), type (string: key, fulltext, unique, spatial), attributes (array of column keys), orders (array of ASC\/DESC, optional), and lengths (array of integers, optional).", + "default": [], + "x-example": null, + "items": { + "type": "object" + } + } + }, + "required": [ + "tableId", + "name" + ] + } + } + } + } } }, - "\/tablesdb\/{databaseId}\/migrations": { + "\/tablesdb\/{databaseId}\/tables\/{tableId}": { "get": { - "summary": "List TablesDB dedicated migrations.", - "operationId": "tablesDBListMigrations", + "summary": "Get table", + "operationId": "tablesDBGetTable", "tags": [ "tablesDB" ], - "description": "List the dedicated migrations for a TablesDB database. A database has at most one in-flight migration.", + "description": "Get a table by its unique ID. This endpoint response returns a JSON object with the table metadata.", "responses": { "200": { - "description": "Database Migrations List", + "description": "Table", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/databaseMigrationList" + "$ref": "#\/components\/schemas\/table" } } } @@ -73894,27 +73327,33 @@ }, "deprecated": false, "x-appwrite": { - "method": "listMigrations", - "group": "databases", + "method": "getTable", + "group": "tables", "cookies": false, "type": "", - "demo": "tablesdb\/list-migrations.md", + "demo": "tablesdb\/get-table.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "databases.read", + "scope": [ + "tables.read", + "collections.read" + ], "platforms": [ - "console" + "console", + "server" ], "packaging": false, "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/get-table.md", "auth": { "Project": [] } }, "security": [ { - "Project": [] + "Project": [], + "Key": [] } ], "parameters": [ @@ -73927,23 +73366,33 @@ "x-example": "<DATABASE_ID>" }, "in": "path" + }, + { + "name": "tableId", + "description": "Table ID.", + "required": true, + "schema": { + "type": "string", + "x-example": "<TABLE_ID>" + }, + "in": "path" } ] }, - "post": { - "summary": "Start a TablesDB dedicated migration.", - "operationId": "tablesDBCreateMigration", + "put": { + "summary": "Update table", + "operationId": "tablesDBUpdateTable", "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.", + "description": "Update a table by its unique ID.", "responses": { - "201": { - "description": "Database Migration", + "200": { + "description": "Table", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/databaseMigration" + "$ref": "#\/components\/schemas\/table" } } } @@ -73951,27 +73400,33 @@ }, "deprecated": false, "x-appwrite": { - "method": "createMigration", - "group": "databases", + "method": "updateTable", + "group": "tables", "cookies": false, "type": "", - "demo": "tablesdb\/create-migration.md", + "demo": "tablesdb\/update-table.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "databases.write", + "scope": [ + "tables.write", + "collections.write" + ], "platforms": [ - "console" + "console", + "server" ], "packaging": false, "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/update-table.md", "auth": { "Project": [] } }, "security": [ { - "Project": [] + "Project": [], + "Key": [] } ], "parameters": [ @@ -73984,6 +73439,16 @@ "x-example": "<DATABASE_ID>" }, "in": "path" + }, + { + "name": "tableId", + "description": "Table ID.", + "required": true, + "schema": { + "type": "string", + "x-example": "<TABLE_ID>" + }, + "in": "path" } ], "requestBody": { @@ -73992,64 +73457,85 @@ "schema": { "type": "object", "properties": { - "specification": { + "name": { "type": "string", - "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.", - "x-example": "s-1vcpu-1gb" + "description": "Table name. Max length: 128 chars.", + "x-example": "<NAME>" + }, + "permissions": { + "type": "array", + "description": "An array of permission strings. By default, the current permissions are inherited. [Learn more about permissions](https:\/\/appwrite.io\/docs\/permissions).", + "x-example": "[\"read(\"any\")\"]", + "items": { + "type": "string" + }, + "x-nullable": true + }, + "rowSecurity": { + "type": "boolean", + "description": "Enables configuring permissions for individual rows. A user needs one of row or table-level permissions to access a row. [Learn more about permissions](https:\/\/appwrite.io\/docs\/permissions).", + "default": false, + "x-example": false + }, + "enabled": { + "type": "boolean", + "description": "Is table enabled? When set to 'disabled', users cannot access the table but Server SDKs with and API key can still read and write to the table. No data is lost when this is toggled.", + "default": true, + "x-example": false + }, + "purge": { + "type": "boolean", + "description": "When true, purge all cached list responses for this table as part of the update. Use this to force readers to see fresh data immediately instead of waiting for the cache TTL to expire.", + "default": false, + "x-example": false } - }, - "required": [ - "specification" - ] + } } } } } - } - }, - "\/tablesdb\/{databaseId}\/migrations\/{migrationId}": { - "get": { - "summary": "Get a TablesDB dedicated migration.", - "operationId": "tablesDBGetMigration", + }, + "delete": { + "summary": "Delete table", + "operationId": "tablesDBDeleteTable", "tags": [ "tablesDB" ], - "description": "Get a single dedicated migration for a TablesDB database by its ID.", + "description": "Delete a table by its unique ID. Only users with write permissions have access to delete this resource.", "responses": { - "200": { - "description": "Database Migration", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/databaseMigration" - } - } - } + "204": { + "description": "No content" } }, "deprecated": false, "x-appwrite": { - "method": "getMigration", - "group": "databases", + "method": "deleteTable", + "group": "tables", "cookies": false, "type": "", - "demo": "tablesdb\/get-migration.md", + "demo": "tablesdb\/delete-table.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "databases.read", + "scope": [ + "tables.write", + "collections.write" + ], "platforms": [ - "console" + "console", + "server" ], "packaging": false, "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/delete-table.md", "auth": { "Project": [] } }, "security": [ { - "Project": [] + "Project": [], + "Key": [] } ], "parameters": [ @@ -74064,96 +73550,33 @@ "in": "path" }, { - "name": "migrationId", - "description": "Migration ID.", + "name": "tableId", + "description": "Table ID.", "required": true, "schema": { "type": "string", - "x-example": "<MIGRATION_ID>" - }, - "in": "path" - } - ] - }, - "delete": { - "summary": "Abort a TablesDB dedicated 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": { - "method": "deleteMigration", - "group": "databases", - "cookies": false, - "type": "", - "demo": "tablesdb\/delete-migration.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "databases.write", - "platforms": [ - "console" - ], - "packaging": false, - "public": true, - "produces": [ - "application\/json" - ], - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [] - } - ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "x-example": "<DATABASE_ID>" - }, - "in": "path" - }, - { - "name": "migrationId", - "description": "Migration ID.", - "required": true, - "schema": { - "type": "string", - "x-example": "<MIGRATION_ID>" + "x-example": "<TABLE_ID>" }, "in": "path" } ] } }, - "\/tablesdb\/{databaseId}\/tables": { + "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns": { "get": { - "summary": "List tables", - "operationId": "tablesDBListTables", + "summary": "List columns", + "operationId": "tablesDBListColumns", "tags": [ "tablesDB" ], - "description": "Get a list of all tables that belong to the provided databaseId. You can use the search parameter to filter your results.", + "description": "List columns in the table.", "responses": { "200": { - "description": "Tables List", + "description": "Columns List", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/tableList" + "$ref": "#\/components\/schemas\/columnList" } } } @@ -74161,17 +73584,19 @@ }, "deprecated": false, "x-appwrite": { - "method": "listTables", - "group": "tables", + "method": "listColumns", + "group": "columns", "cookies": false, "type": "", - "demo": "tablesdb\/list-tables.md", + "demo": "tablesdb\/list-columns.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", "scope": [ "tables.read", - "collections.read" + "collections.read", + "columns.read", + "attributes.read" ], "platforms": [ "console", @@ -74179,7 +73604,7 @@ ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/list-tables.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/list-columns.md", "auth": { "Project": [] } @@ -74201,9 +73626,19 @@ }, "in": "path" }, + { + "name": "tableId", + "description": "Table ID.", + "required": true, + "schema": { + "type": "string", + "x-example": "<TABLE_ID>" + }, + "in": "path" + }, { "name": "queries", - "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/queries). Maximum of 100 queries are allowed, each 4096 characters long. You may filter on the following columns: name, enabled, rowSecurity", + "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/queries). Maximum of 100 queries are allowed, each 4096 characters long. You may filter on the following columns: key, type, size, required, array, status, error", "required": false, "schema": { "type": "array", @@ -74214,17 +73649,6 @@ }, "in": "query" }, - { - "name": "search", - "description": "Search term to filter your list results. Max length: 256 chars.", - "required": false, - "schema": { - "type": "string", - "x-example": "<SEARCH>", - "default": "" - }, - "in": "query" - }, { "name": "total", "description": "When set to false, the total count returned will be 0 and will not be calculated.", @@ -74237,21 +73661,23 @@ "in": "query" } ] - }, + } + }, + "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns\/bigint": { "post": { - "summary": "Create table", - "operationId": "tablesDBCreateTable", + "summary": "Create bigint column", + "operationId": "tablesDBCreateBigIntColumn", "tags": [ "tablesDB" ], - "description": "Create a new Table. Before using this route, you should create a new database resource using either a [server integration](https:\/\/appwrite.io\/docs\/references\/cloud\/server-dart\/tablesDB#createTable) API or directly from your database console.", + "description": "Create a bigint column. Optionally, minimum and maximum values can be provided.\n", "responses": { - "201": { - "description": "Table", + "202": { + "description": "ColumnBigInt", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/table" + "$ref": "#\/components\/schemas\/columnBigint" } } } @@ -74259,17 +73685,19 @@ }, "deprecated": false, "x-appwrite": { - "method": "createTable", - "group": "tables", + "method": "createBigIntColumn", + "group": "columns", "cookies": false, "type": "", - "demo": "tablesdb\/create-table.md", + "demo": "tablesdb\/create-big-int-column.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", "scope": [ "tables.write", - "collections.write" + "collections.write", + "columns.write", + "attributes.write" ], "platforms": [ "console", @@ -74277,7 +73705,7 @@ ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/create-table.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/create-bigint-column.md", "auth": { "Project": [] } @@ -74298,6 +73726,16 @@ "x-example": "<DATABASE_ID>" }, "in": "path" + }, + { + "name": "tableId", + "description": "Table ID.", + "required": true, + "schema": { + "type": "string", + "x-example": "<TABLE_ID>" + }, + "in": "path" } ], "requestBody": { @@ -74306,62 +73744,47 @@ "schema": { "type": "object", "properties": { - "tableId": { - "type": "string", - "description": "Unique Id. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.", - "x-example": "<TABLE_ID>", - "x-appwrite": { - "idGenerator": "ID.unique" - } - }, - "name": { + "key": { "type": "string", - "description": "Table name. Max length: 128 chars.", - "x-example": "<NAME>" - }, - "permissions": { - "type": "array", - "description": "An array of permissions strings. By default, no user is granted with any permissions. [Learn more about permissions](https:\/\/appwrite.io\/docs\/permissions).", - "x-example": "[\"read(\"any\")\"]", - "items": { - "type": "string" - }, - "x-nullable": true + "description": "Column Key.", + "x-example": null }, - "rowSecurity": { + "required": { "type": "boolean", - "description": "Enables configuring permissions for individual rows. A user needs one of row or table level permissions to access a row. [Learn more about permissions](https:\/\/appwrite.io\/docs\/permissions).", - "default": false, + "description": "Is column required?", "x-example": false }, - "enabled": { - "type": "boolean", - "description": "Is table enabled? When set to 'disabled', users cannot access the table but Server SDKs with and API key can still read and write to the table. No data is lost when this is toggled.", - "default": true, - "x-example": false + "min": { + "type": "integer", + "description": "Minimum value", + "x-example": null, + "format": "int64", + "x-nullable": true }, - "columns": { - "type": "array", - "description": "Array of column definitions to create. Each column should contain: key (string), type (string: string, integer, float, boolean, datetime, relationship), size (integer, required for string type), required (boolean, optional), default (mixed, optional), array (boolean, optional), and type-specific options.", - "default": [], + "max": { + "type": "integer", + "description": "Maximum value", "x-example": null, - "items": { - "type": "object" - } + "format": "int64", + "x-nullable": true }, - "indexes": { - "type": "array", - "description": "Array of index definitions to create. Each index should contain: key (string), type (string: key, fulltext, unique, spatial), attributes (array of column keys), orders (array of ASC\/DESC, optional), and lengths (array of integers, optional).", - "default": [], + "default": { + "type": "integer", + "description": "Default value. Cannot be set when column is required.", "x-example": null, - "items": { - "type": "object" - } + "format": "int64", + "x-nullable": true + }, + "array": { + "type": "boolean", + "description": "Is column an array?", + "default": false, + "x-example": false } }, "required": [ - "tableId", - "name" + "key", + "required" ] } } @@ -74369,21 +73792,21 @@ } } }, - "\/tablesdb\/{databaseId}\/tables\/{tableId}": { - "get": { - "summary": "Get table", - "operationId": "tablesDBGetTable", + "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns\/bigint\/{key}": { + "patch": { + "summary": "Update bigint column", + "operationId": "tablesDBUpdateBigIntColumn", "tags": [ "tablesDB" ], - "description": "Get a table by its unique ID. This endpoint response returns a JSON object with the table metadata.", + "description": "Update a bigint column. Changing the `default` value will not update already existing rows.\n", "responses": { "200": { - "description": "Table", + "description": "ColumnBigInt", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/table" + "$ref": "#\/components\/schemas\/columnBigint" } } } @@ -74391,17 +73814,19 @@ }, "deprecated": false, "x-appwrite": { - "method": "getTable", - "group": "tables", + "method": "updateBigIntColumn", + "group": "columns", "cookies": false, "type": "", - "demo": "tablesdb\/get-table.md", + "demo": "tablesdb\/update-big-int-column.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", "scope": [ - "tables.read", - "collections.read" + "tables.write", + "collections.write", + "columns.write", + "attributes.write" ], "platforms": [ "console", @@ -74409,7 +73834,7 @@ ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/get-table.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/update-bigint-column.md", "auth": { "Project": [] } @@ -74440,23 +73865,81 @@ "x-example": "<TABLE_ID>" }, "in": "path" + }, + { + "name": "key", + "description": "Column Key.", + "required": true, + "schema": { + "type": "string" + }, + "in": "path" } - ] - }, - "put": { - "summary": "Update table", - "operationId": "tablesDBUpdateTable", + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "required": { + "type": "boolean", + "description": "Is column required?", + "x-example": false + }, + "min": { + "type": "integer", + "description": "Minimum value", + "x-example": null, + "format": "int64", + "x-nullable": true + }, + "max": { + "type": "integer", + "description": "Maximum value", + "x-example": null, + "format": "int64", + "x-nullable": true + }, + "default": { + "type": "integer", + "description": "Default value. Cannot be set when column is required.", + "x-example": null, + "format": "int64", + "x-nullable": true + }, + "newKey": { + "type": "string", + "description": "New Column Key.", + "x-example": null, + "x-nullable": true + } + }, + "required": [ + "required", + "default" + ] + } + } + } + } + } + }, + "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns\/boolean": { + "post": { + "summary": "Create boolean column", + "operationId": "tablesDBCreateBooleanColumn", "tags": [ "tablesDB" ], - "description": "Update a table by its unique ID.", + "description": "Create a boolean column.\n", "responses": { - "200": { - "description": "Table", + "202": { + "description": "ColumnBoolean", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/table" + "$ref": "#\/components\/schemas\/columnBoolean" } } } @@ -74464,17 +73947,19 @@ }, "deprecated": false, "x-appwrite": { - "method": "updateTable", - "group": "tables", + "method": "createBooleanColumn", + "group": "columns", "cookies": false, "type": "", - "demo": "tablesdb\/update-table.md", + "demo": "tablesdb\/create-boolean-column.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", "scope": [ "tables.write", - "collections.write" + "collections.write", + "columns.write", + "attributes.write" ], "platforms": [ "console", @@ -74482,7 +73967,7 @@ ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/update-table.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/create-boolean-column.md", "auth": { "Project": [] } @@ -74506,7 +73991,7 @@ }, { "name": "tableId", - "description": "Table ID.", + "description": "Table ID. You can create a new table using the Database service [server integration](https:\/\/appwrite.io\/docs\/references\/cloud\/server-dart\/tablesDB#createTable).", "required": true, "schema": { "type": "string", @@ -74521,69 +74006,74 @@ "schema": { "type": "object", "properties": { - "name": { + "key": { "type": "string", - "description": "Table name. Max length: 128 chars.", - "x-example": "<NAME>" - }, - "permissions": { - "type": "array", - "description": "An array of permission strings. By default, the current permissions are inherited. [Learn more about permissions](https:\/\/appwrite.io\/docs\/permissions).", - "x-example": "[\"read(\"any\")\"]", - "items": { - "type": "string" - }, - "x-nullable": true + "description": "Column Key.", + "x-example": null }, - "rowSecurity": { + "required": { "type": "boolean", - "description": "Enables configuring permissions for individual rows. A user needs one of row or table-level permissions to access a row. [Learn more about permissions](https:\/\/appwrite.io\/docs\/permissions).", - "default": false, + "description": "Is column required?", "x-example": false }, - "enabled": { + "default": { "type": "boolean", - "description": "Is table enabled? When set to 'disabled', users cannot access the table but Server SDKs with and API key can still read and write to the table. No data is lost when this is toggled.", - "default": true, - "x-example": false + "description": "Default value for column when not provided. Cannot be set when column is required.", + "x-example": false, + "x-nullable": true }, - "purge": { + "array": { "type": "boolean", - "description": "When true, purge all cached list responses for this table as part of the update. Use this to force readers to see fresh data immediately instead of waiting for the cache TTL to expire.", + "description": "Is column an array?", "default": false, "x-example": false } - } + }, + "required": [ + "key", + "required" + ] } } } } - }, - "delete": { - "summary": "Delete table", - "operationId": "tablesDBDeleteTable", + } + }, + "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns\/boolean\/{key}": { + "patch": { + "summary": "Update boolean column", + "operationId": "tablesDBUpdateBooleanColumn", "tags": [ "tablesDB" ], - "description": "Delete a table by its unique ID. Only users with write permissions have access to delete this resource.", + "description": "Update a boolean column. Changing the `default` value will not update already existing rows.", "responses": { - "204": { - "description": "No content" + "200": { + "description": "ColumnBoolean", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/columnBoolean" + } + } + } } }, "deprecated": false, "x-appwrite": { - "method": "deleteTable", - "group": "tables", + "method": "updateBooleanColumn", + "group": "columns", "cookies": false, "type": "", - "demo": "tablesdb\/delete-table.md", + "demo": "tablesdb\/update-boolean-column.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", "scope": [ "tables.write", - "collections.write" + "collections.write", + "columns.write", + "attributes.write" ], "platforms": [ "console", @@ -74591,7 +74081,7 @@ ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/delete-table.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/update-boolean-column.md", "auth": { "Project": [] } @@ -74615,32 +74105,73 @@ }, { "name": "tableId", - "description": "Table ID.", + "description": "Table ID. You can create a new table using the Database service [server integration](https:\/\/appwrite.io\/docs\/references\/cloud\/server-dart\/tablesDB#createTable).", "required": true, "schema": { "type": "string", "x-example": "<TABLE_ID>" }, "in": "path" + }, + { + "name": "key", + "description": "Column Key.", + "required": true, + "schema": { + "type": "string" + }, + "in": "path" } - ] + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "required": { + "type": "boolean", + "description": "Is column required?", + "x-example": false + }, + "default": { + "type": "boolean", + "description": "Default value for column when not provided. Cannot be set when column is required.", + "x-example": false, + "x-nullable": true + }, + "newKey": { + "type": "string", + "description": "New Column Key.", + "x-example": null, + "x-nullable": true + } + }, + "required": [ + "required", + "default" + ] + } + } + } + } } }, - "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns": { - "get": { - "summary": "List columns", - "operationId": "tablesDBListColumns", + "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns\/datetime": { + "post": { + "summary": "Create datetime column", + "operationId": "tablesDBCreateDatetimeColumn", "tags": [ "tablesDB" ], - "description": "List columns in the table.", + "description": "Create a date time column according to the ISO 8601 standard.", "responses": { - "200": { - "description": "Columns List", + "202": { + "description": "ColumnDatetime", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/columnList" + "$ref": "#\/components\/schemas\/columnDatetime" } } } @@ -74648,19 +74179,19 @@ }, "deprecated": false, "x-appwrite": { - "method": "listColumns", + "method": "createDatetimeColumn", "group": "columns", "cookies": false, "type": "", - "demo": "tablesdb\/list-columns.md", + "demo": "tablesdb\/create-datetime-column.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", "scope": [ - "tables.read", - "collections.read", - "columns.read", - "attributes.read" + "tables.write", + "collections.write", + "columns.write", + "attributes.write" ], "platforms": [ "console", @@ -74668,108 +74199,7 @@ ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/list-columns.md", - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "x-example": "<DATABASE_ID>" - }, - "in": "path" - }, - { - "name": "tableId", - "description": "Table ID.", - "required": true, - "schema": { - "type": "string", - "x-example": "<TABLE_ID>" - }, - "in": "path" - }, - { - "name": "queries", - "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/queries). Maximum of 100 queries are allowed, each 4096 characters long. You may filter on the following columns: key, type, size, required, array, status, error", - "required": false, - "schema": { - "type": "array", - "items": { - "type": "string" - }, - "default": [] - }, - "in": "query" - }, - { - "name": "total", - "description": "When set to false, the total count returned will be 0 and will not be calculated.", - "required": false, - "schema": { - "type": "boolean", - "x-example": false, - "default": true - }, - "in": "query" - } - ] - } - }, - "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns\/bigint": { - "post": { - "summary": "Create bigint column", - "operationId": "tablesDBCreateBigIntColumn", - "tags": [ - "tablesDB" - ], - "description": "Create a bigint column. Optionally, minimum and maximum values can be provided.\n", - "responses": { - "202": { - "description": "ColumnBigInt", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/columnBigint" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "method": "createBigIntColumn", - "group": "columns", - "cookies": false, - "type": "", - "demo": "tablesdb\/create-big-int-column.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": [ - "tables.write", - "collections.write", - "columns.write", - "attributes.write" - ], - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/create-bigint-column.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/create-datetime-column.md", "auth": { "Project": [] } @@ -74818,25 +74248,11 @@ "description": "Is column required?", "x-example": false }, - "min": { - "type": "integer", - "description": "Minimum value", - "x-example": null, - "format": "int64", - "x-nullable": true - }, - "max": { - "type": "integer", - "description": "Maximum value", - "x-example": null, - "format": "int64", - "x-nullable": true - }, "default": { - "type": "integer", - "description": "Default value. Cannot be set when column is required.", - "x-example": null, - "format": "int64", + "type": "string", + "description": "Default value for the column in [ISO 8601](https:\/\/www.iso.org\/iso-8601-date-and-time-format.html) format. Cannot be set when column is required.", + "x-example": "2020-10-15T06:38:00.000+00:00", + "format": "datetime", "x-nullable": true }, "array": { @@ -74856,21 +74272,21 @@ } } }, - "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns\/bigint\/{key}": { + "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns\/datetime\/{key}": { "patch": { - "summary": "Update bigint column", - "operationId": "tablesDBUpdateBigIntColumn", + "summary": "Update datetime column", + "operationId": "tablesDBUpdateDatetimeColumn", "tags": [ "tablesDB" ], - "description": "Update a bigint column. Changing the `default` value will not update already existing rows.\n", + "description": "Update a date time column. Changing the `default` value will not update already existing rows.", "responses": { "200": { - "description": "ColumnBigInt", + "description": "ColumnDatetime", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/columnBigint" + "$ref": "#\/components\/schemas\/columnDatetime" } } } @@ -74878,11 +74294,11 @@ }, "deprecated": false, "x-appwrite": { - "method": "updateBigIntColumn", + "method": "updateDatetimeColumn", "group": "columns", "cookies": false, "type": "", - "demo": "tablesdb\/update-big-int-column.md", + "demo": "tablesdb\/update-datetime-column.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", @@ -74898,7 +74314,7 @@ ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/update-bigint-column.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/update-datetime-column.md", "auth": { "Project": [] } @@ -74951,25 +74367,11 @@ "description": "Is column required?", "x-example": false }, - "min": { - "type": "integer", - "description": "Minimum value", - "x-example": null, - "format": "int64", - "x-nullable": true - }, - "max": { - "type": "integer", - "description": "Maximum value", - "x-example": null, - "format": "int64", - "x-nullable": true - }, "default": { - "type": "integer", - "description": "Default value. Cannot be set when column is required.", - "x-example": null, - "format": "int64", + "type": "string", + "description": "Default value for column when not provided. Cannot be set when column is required.", + "x-example": "2020-10-15T06:38:00.000+00:00", + "format": "datetime", "x-nullable": true }, "newKey": { @@ -74989,21 +74391,21 @@ } } }, - "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns\/boolean": { + "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns\/email": { "post": { - "summary": "Create boolean column", - "operationId": "tablesDBCreateBooleanColumn", + "summary": "Create email column", + "operationId": "tablesDBCreateEmailColumn", "tags": [ "tablesDB" ], - "description": "Create a boolean column.\n", + "description": "Create an email column.\n", "responses": { "202": { - "description": "ColumnBoolean", + "description": "ColumnEmail", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/columnBoolean" + "$ref": "#\/components\/schemas\/columnEmail" } } } @@ -75011,11 +74413,11 @@ }, "deprecated": false, "x-appwrite": { - "method": "createBooleanColumn", + "method": "createEmailColumn", "group": "columns", "cookies": false, "type": "", - "demo": "tablesdb\/create-boolean-column.md", + "demo": "tablesdb\/create-email-column.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", @@ -75031,7 +74433,7 @@ ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/create-boolean-column.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/create-email-column.md", "auth": { "Project": [] } @@ -75055,7 +74457,7 @@ }, { "name": "tableId", - "description": "Table ID. You can create a new table using the Database service [server integration](https:\/\/appwrite.io\/docs\/references\/cloud\/server-dart\/tablesDB#createTable).", + "description": "Table ID.", "required": true, "schema": { "type": "string", @@ -75081,9 +74483,10 @@ "x-example": false }, "default": { - "type": "boolean", + "type": "string", "description": "Default value for column when not provided. Cannot be set when column is required.", - "x-example": false, + "x-example": "email@example.com", + "format": "email", "x-nullable": true }, "array": { @@ -75103,21 +74506,21 @@ } } }, - "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns\/boolean\/{key}": { + "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns\/email\/{key}": { "patch": { - "summary": "Update boolean column", - "operationId": "tablesDBUpdateBooleanColumn", + "summary": "Update email column", + "operationId": "tablesDBUpdateEmailColumn", "tags": [ "tablesDB" ], - "description": "Update a boolean column. Changing the `default` value will not update already existing rows.", + "description": "Update an email column. Changing the `default` value will not update already existing rows.\n", "responses": { "200": { - "description": "ColumnBoolean", + "description": "ColumnEmail", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/columnBoolean" + "$ref": "#\/components\/schemas\/columnEmail" } } } @@ -75125,11 +74528,11 @@ }, "deprecated": false, "x-appwrite": { - "method": "updateBooleanColumn", + "method": "updateEmailColumn", "group": "columns", "cookies": false, "type": "", - "demo": "tablesdb\/update-boolean-column.md", + "demo": "tablesdb\/update-email-column.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", @@ -75145,7 +74548,7 @@ ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/update-boolean-column.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/update-email-column.md", "auth": { "Project": [] } @@ -75169,7 +74572,7 @@ }, { "name": "tableId", - "description": "Table ID. You can create a new table using the Database service [server integration](https:\/\/appwrite.io\/docs\/references\/cloud\/server-dart\/tablesDB#createTable).", + "description": "Table ID.", "required": true, "schema": { "type": "string", @@ -75199,9 +74602,10 @@ "x-example": false }, "default": { - "type": "boolean", + "type": "string", "description": "Default value for column when not provided. Cannot be set when column is required.", - "x-example": false, + "x-example": "email@example.com", + "format": "email", "x-nullable": true }, "newKey": { @@ -75221,21 +74625,21 @@ } } }, - "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns\/datetime": { + "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns\/enum": { "post": { - "summary": "Create datetime column", - "operationId": "tablesDBCreateDatetimeColumn", + "summary": "Create enum column", + "operationId": "tablesDBCreateEnumColumn", "tags": [ "tablesDB" ], - "description": "Create a date time column according to the ISO 8601 standard.", + "description": "Create an enumeration column. The `elements` param acts as a white-list of accepted values for this column.", "responses": { "202": { - "description": "ColumnDatetime", + "description": "ColumnEnum", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/columnDatetime" + "$ref": "#\/components\/schemas\/columnEnum" } } } @@ -75243,11 +74647,11 @@ }, "deprecated": false, "x-appwrite": { - "method": "createDatetimeColumn", + "method": "createEnumColumn", "group": "columns", "cookies": false, "type": "", - "demo": "tablesdb\/create-datetime-column.md", + "demo": "tablesdb\/create-enum-column.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", @@ -75263,7 +74667,7 @@ ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/create-datetime-column.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/create-enum-column.md", "auth": { "Project": [] } @@ -75307,6 +74711,14 @@ "description": "Column Key.", "x-example": null }, + "elements": { + "type": "array", + "description": "Array of enum values.", + "x-example": null, + "items": { + "type": "string" + } + }, "required": { "type": "boolean", "description": "Is column required?", @@ -75314,9 +74726,8 @@ }, "default": { "type": "string", - "description": "Default value for the column in [ISO 8601](https:\/\/www.iso.org\/iso-8601-date-and-time-format.html) format. Cannot be set when column is required.", - "x-example": "2020-10-15T06:38:00.000+00:00", - "format": "datetime", + "description": "Default value for column when not provided. Cannot be set when column is required.", + "x-example": "<DEFAULT>", "x-nullable": true }, "array": { @@ -75328,6 +74739,7 @@ }, "required": [ "key", + "elements", "required" ] } @@ -75336,21 +74748,21 @@ } } }, - "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns\/datetime\/{key}": { + "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns\/enum\/{key}": { "patch": { - "summary": "Update datetime column", - "operationId": "tablesDBUpdateDatetimeColumn", + "summary": "Update enum column", + "operationId": "tablesDBUpdateEnumColumn", "tags": [ "tablesDB" ], - "description": "Update a date time column. Changing the `default` value will not update already existing rows.", + "description": "Update an enum column. Changing the `default` value will not update already existing rows.\n", "responses": { "200": { - "description": "ColumnDatetime", + "description": "ColumnEnum", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/columnDatetime" + "$ref": "#\/components\/schemas\/columnEnum" } } } @@ -75358,11 +74770,11 @@ }, "deprecated": false, "x-appwrite": { - "method": "updateDatetimeColumn", + "method": "updateEnumColumn", "group": "columns", "cookies": false, "type": "", - "demo": "tablesdb\/update-datetime-column.md", + "demo": "tablesdb\/update-enum-column.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", @@ -75378,7 +74790,7 @@ ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/update-datetime-column.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/update-enum-column.md", "auth": { "Project": [] } @@ -75426,6 +74838,14 @@ "schema": { "type": "object", "properties": { + "elements": { + "type": "array", + "description": "Updated list of enum values.", + "x-example": null, + "items": { + "type": "string" + } + }, "required": { "type": "boolean", "description": "Is column required?", @@ -75434,8 +74854,7 @@ "default": { "type": "string", "description": "Default value for column when not provided. Cannot be set when column is required.", - "x-example": "2020-10-15T06:38:00.000+00:00", - "format": "datetime", + "x-example": "<DEFAULT>", "x-nullable": true }, "newKey": { @@ -75446,6 +74865,7 @@ } }, "required": [ + "elements", "required", "default" ] @@ -75455,21 +74875,21 @@ } } }, - "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns\/email": { + "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns\/float": { "post": { - "summary": "Create email column", - "operationId": "tablesDBCreateEmailColumn", + "summary": "Create float column", + "operationId": "tablesDBCreateFloatColumn", "tags": [ "tablesDB" ], - "description": "Create an email column.\n", + "description": "Create a float column. Optionally, minimum and maximum values can be provided.\n", "responses": { "202": { - "description": "ColumnEmail", + "description": "ColumnFloat", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/columnEmail" + "$ref": "#\/components\/schemas\/columnFloat" } } } @@ -75477,11 +74897,11 @@ }, "deprecated": false, "x-appwrite": { - "method": "createEmailColumn", + "method": "createFloatColumn", "group": "columns", "cookies": false, "type": "", - "demo": "tablesdb\/create-email-column.md", + "demo": "tablesdb\/create-float-column.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", @@ -75497,7 +74917,7 @@ ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/create-email-column.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/create-float-column.md", "auth": { "Project": [] } @@ -75546,11 +74966,25 @@ "description": "Is column required?", "x-example": false }, + "min": { + "type": "number", + "description": "Minimum value", + "x-example": null, + "format": "float", + "x-nullable": true + }, + "max": { + "type": "number", + "description": "Maximum value", + "x-example": null, + "format": "float", + "x-nullable": true + }, "default": { - "type": "string", - "description": "Default value for column when not provided. Cannot be set when column is required.", - "x-example": "email@example.com", - "format": "email", + "type": "number", + "description": "Default value. Cannot be set when required.", + "x-example": null, + "format": "float", "x-nullable": true }, "array": { @@ -75570,21 +75004,21 @@ } } }, - "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns\/email\/{key}": { + "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns\/float\/{key}": { "patch": { - "summary": "Update email column", - "operationId": "tablesDBUpdateEmailColumn", + "summary": "Update float column", + "operationId": "tablesDBUpdateFloatColumn", "tags": [ "tablesDB" ], - "description": "Update an email column. Changing the `default` value will not update already existing rows.\n", + "description": "Update a float column. Changing the `default` value will not update already existing rows.\n", "responses": { "200": { - "description": "ColumnEmail", + "description": "ColumnFloat", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/columnEmail" + "$ref": "#\/components\/schemas\/columnFloat" } } } @@ -75592,11 +75026,11 @@ }, "deprecated": false, "x-appwrite": { - "method": "updateEmailColumn", + "method": "updateFloatColumn", "group": "columns", "cookies": false, "type": "", - "demo": "tablesdb\/update-email-column.md", + "demo": "tablesdb\/update-float-column.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", @@ -75612,7 +75046,7 @@ ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/update-email-column.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/update-float-column.md", "auth": { "Project": [] } @@ -75665,11 +75099,25 @@ "description": "Is column required?", "x-example": false }, + "min": { + "type": "number", + "description": "Minimum value", + "x-example": null, + "format": "float", + "x-nullable": true + }, + "max": { + "type": "number", + "description": "Maximum value", + "x-example": null, + "format": "float", + "x-nullable": true + }, "default": { - "type": "string", - "description": "Default value for column when not provided. Cannot be set when column is required.", - "x-example": "email@example.com", - "format": "email", + "type": "number", + "description": "Default value. Cannot be set when required.", + "x-example": null, + "format": "float", "x-nullable": true }, "newKey": { @@ -75689,21 +75137,21 @@ } } }, - "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns\/enum": { + "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns\/integer": { "post": { - "summary": "Create enum column", - "operationId": "tablesDBCreateEnumColumn", + "summary": "Create integer column", + "operationId": "tablesDBCreateIntegerColumn", "tags": [ "tablesDB" ], - "description": "Create an enumeration column. The `elements` param acts as a white-list of accepted values for this column.", + "description": "Create an integer column. Optionally, minimum and maximum values can be provided.\n", "responses": { "202": { - "description": "ColumnEnum", + "description": "ColumnInteger", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/columnEnum" + "$ref": "#\/components\/schemas\/columnInteger" } } } @@ -75711,11 +75159,11 @@ }, "deprecated": false, "x-appwrite": { - "method": "createEnumColumn", + "method": "createIntegerColumn", "group": "columns", "cookies": false, "type": "", - "demo": "tablesdb\/create-enum-column.md", + "demo": "tablesdb\/create-integer-column.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", @@ -75731,7 +75179,7 @@ ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/create-enum-column.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/create-integer-column.md", "auth": { "Project": [] } @@ -75775,23 +75223,30 @@ "description": "Column Key.", "x-example": null }, - "elements": { - "type": "array", - "description": "Array of enum values.", - "x-example": null, - "items": { - "type": "string" - } - }, "required": { "type": "boolean", "description": "Is column required?", "x-example": false }, + "min": { + "type": "integer", + "description": "Minimum value", + "x-example": null, + "format": "int64", + "x-nullable": true + }, + "max": { + "type": "integer", + "description": "Maximum value", + "x-example": null, + "format": "int64", + "x-nullable": true + }, "default": { - "type": "string", - "description": "Default value for column when not provided. Cannot be set when column is required.", - "x-example": "<DEFAULT>", + "type": "integer", + "description": "Default value. Cannot be set when column is required.", + "x-example": null, + "format": "int64", "x-nullable": true }, "array": { @@ -75803,7 +75258,6 @@ }, "required": [ "key", - "elements", "required" ] } @@ -75812,21 +75266,21 @@ } } }, - "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns\/enum\/{key}": { + "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns\/integer\/{key}": { "patch": { - "summary": "Update enum column", - "operationId": "tablesDBUpdateEnumColumn", + "summary": "Update integer column", + "operationId": "tablesDBUpdateIntegerColumn", "tags": [ "tablesDB" ], - "description": "Update an enum column. Changing the `default` value will not update already existing rows.\n", + "description": "Update an integer column. Changing the `default` value will not update already existing rows.\n", "responses": { "200": { - "description": "ColumnEnum", + "description": "ColumnInteger", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/columnEnum" + "$ref": "#\/components\/schemas\/columnInteger" } } } @@ -75834,11 +75288,11 @@ }, "deprecated": false, "x-appwrite": { - "method": "updateEnumColumn", + "method": "updateIntegerColumn", "group": "columns", "cookies": false, "type": "", - "demo": "tablesdb\/update-enum-column.md", + "demo": "tablesdb\/update-integer-column.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", @@ -75854,7 +75308,7 @@ ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/update-enum-column.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/update-integer-column.md", "auth": { "Project": [] } @@ -75902,23 +75356,30 @@ "schema": { "type": "object", "properties": { - "elements": { - "type": "array", - "description": "Updated list of enum values.", - "x-example": null, - "items": { - "type": "string" - } - }, "required": { "type": "boolean", "description": "Is column required?", "x-example": false }, + "min": { + "type": "integer", + "description": "Minimum value", + "x-example": null, + "format": "int64", + "x-nullable": true + }, + "max": { + "type": "integer", + "description": "Maximum value", + "x-example": null, + "format": "int64", + "x-nullable": true + }, "default": { - "type": "string", - "description": "Default value for column when not provided. Cannot be set when column is required.", - "x-example": "<DEFAULT>", + "type": "integer", + "description": "Default value. Cannot be set when column is required.", + "x-example": null, + "format": "int64", "x-nullable": true }, "newKey": { @@ -75929,7 +75390,6 @@ } }, "required": [ - "elements", "required", "default" ] @@ -75939,21 +75399,21 @@ } } }, - "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns\/float": { + "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns\/ip": { "post": { - "summary": "Create float column", - "operationId": "tablesDBCreateFloatColumn", + "summary": "Create IP address column", + "operationId": "tablesDBCreateIpColumn", "tags": [ "tablesDB" ], - "description": "Create a float column. Optionally, minimum and maximum values can be provided.\n", + "description": "Create IP address column.\n", "responses": { "202": { - "description": "ColumnFloat", + "description": "ColumnIP", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/columnFloat" + "$ref": "#\/components\/schemas\/columnIp" } } } @@ -75961,11 +75421,11 @@ }, "deprecated": false, "x-appwrite": { - "method": "createFloatColumn", + "method": "createIpColumn", "group": "columns", "cookies": false, "type": "", - "demo": "tablesdb\/create-float-column.md", + "demo": "tablesdb\/create-ip-column.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", @@ -75981,7 +75441,7 @@ ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/create-float-column.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/create-ip-column.md", "auth": { "Project": [] } @@ -76030,25 +75490,10 @@ "description": "Is column required?", "x-example": false }, - "min": { - "type": "number", - "description": "Minimum value", - "x-example": null, - "format": "float", - "x-nullable": true - }, - "max": { - "type": "number", - "description": "Maximum value", - "x-example": null, - "format": "float", - "x-nullable": true - }, "default": { - "type": "number", - "description": "Default value. Cannot be set when required.", + "type": "string", + "description": "Default value. Cannot be set when column is required.", "x-example": null, - "format": "float", "x-nullable": true }, "array": { @@ -76068,21 +75513,21 @@ } } }, - "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns\/float\/{key}": { + "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns\/ip\/{key}": { "patch": { - "summary": "Update float column", - "operationId": "tablesDBUpdateFloatColumn", + "summary": "Update IP address column", + "operationId": "tablesDBUpdateIpColumn", "tags": [ "tablesDB" ], - "description": "Update a float column. Changing the `default` value will not update already existing rows.\n", + "description": "Update an ip column. Changing the `default` value will not update already existing rows.\n", "responses": { "200": { - "description": "ColumnFloat", + "description": "ColumnIP", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/columnFloat" + "$ref": "#\/components\/schemas\/columnIp" } } } @@ -76090,11 +75535,11 @@ }, "deprecated": false, "x-appwrite": { - "method": "updateFloatColumn", + "method": "updateIpColumn", "group": "columns", "cookies": false, "type": "", - "demo": "tablesdb\/update-float-column.md", + "demo": "tablesdb\/update-ip-column.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", @@ -76110,7 +75555,7 @@ ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/update-float-column.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/update-ip-column.md", "auth": { "Project": [] } @@ -76163,25 +75608,10 @@ "description": "Is column required?", "x-example": false }, - "min": { - "type": "number", - "description": "Minimum value", - "x-example": null, - "format": "float", - "x-nullable": true - }, - "max": { - "type": "number", - "description": "Maximum value", - "x-example": null, - "format": "float", - "x-nullable": true - }, "default": { - "type": "number", - "description": "Default value. Cannot be set when required.", + "type": "string", + "description": "Default value. Cannot be set when column is required.", "x-example": null, - "format": "float", "x-nullable": true }, "newKey": { @@ -76201,21 +75631,21 @@ } } }, - "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns\/integer": { + "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns\/line": { "post": { - "summary": "Create integer column", - "operationId": "tablesDBCreateIntegerColumn", + "summary": "Create line column", + "operationId": "tablesDBCreateLineColumn", "tags": [ "tablesDB" ], - "description": "Create an integer column. Optionally, minimum and maximum values can be provided.\n", + "description": "Create a geometric line column.", "responses": { "202": { - "description": "ColumnInteger", + "description": "ColumnLine", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/columnInteger" + "$ref": "#\/components\/schemas\/columnLine" } } } @@ -76223,11 +75653,11 @@ }, "deprecated": false, "x-appwrite": { - "method": "createIntegerColumn", + "method": "createLineColumn", "group": "columns", "cookies": false, "type": "", - "demo": "tablesdb\/create-integer-column.md", + "demo": "tablesdb\/create-line-column.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", @@ -76243,7 +75673,7 @@ ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/create-integer-column.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/create-line-column.md", "auth": { "Project": [] } @@ -76267,7 +75697,7 @@ }, { "name": "tableId", - "description": "Table ID.", + "description": "Table ID. You can create a new table using the TablesDB service [server integration](https:\/\/appwrite.io\/docs\/references\/cloud\/server-dart\/tablesDB#createTable).", "required": true, "schema": { "type": "string", @@ -76292,32 +75722,18 @@ "description": "Is column required?", "x-example": false }, - "min": { - "type": "integer", - "description": "Minimum value", - "x-example": null, - "format": "int64", - "x-nullable": true - }, - "max": { - "type": "integer", - "description": "Maximum value", - "x-example": null, - "format": "int64", - "x-nullable": true - }, "default": { - "type": "integer", - "description": "Default value. Cannot be set when column is required.", - "x-example": null, - "format": "int64", + "type": "array", + "description": "Default value for column when not provided, two-dimensional array of coordinate pairs, [[longitude, latitude], [longitude, latitude], \u2026], listing the vertices of the line in order. Cannot be set when column is required.", + "x-example": "[[1, 2], [3, 4], [5, 6]]", + "items": { + "type": "array", + "items": { + "type": "number", + "format": "double" + } + }, "x-nullable": true - }, - "array": { - "type": "boolean", - "description": "Is column an array?", - "default": false, - "x-example": false } }, "required": [ @@ -76330,21 +75746,21 @@ } } }, - "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns\/integer\/{key}": { + "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns\/line\/{key}": { "patch": { - "summary": "Update integer column", - "operationId": "tablesDBUpdateIntegerColumn", + "summary": "Update line column", + "operationId": "tablesDBUpdateLineColumn", "tags": [ "tablesDB" ], - "description": "Update an integer column. Changing the `default` value will not update already existing rows.\n", + "description": "Update a line column. Changing the `default` value will not update already existing rows.", "responses": { "200": { - "description": "ColumnInteger", + "description": "ColumnLine", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/columnInteger" + "$ref": "#\/components\/schemas\/columnLine" } } } @@ -76352,11 +75768,11 @@ }, "deprecated": false, "x-appwrite": { - "method": "updateIntegerColumn", + "method": "updateLineColumn", "group": "columns", "cookies": false, "type": "", - "demo": "tablesdb\/update-integer-column.md", + "demo": "tablesdb\/update-line-column.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", @@ -76372,7 +75788,7 @@ ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/update-integer-column.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/update-line-column.md", "auth": { "Project": [] } @@ -76396,7 +75812,7 @@ }, { "name": "tableId", - "description": "Table ID.", + "description": "Table ID. You can create a new table using the TablesDB service [server integration](https:\/\/appwrite.io\/docs\/references\/cloud\/server-dart\/tablesDB#createTable).", "required": true, "schema": { "type": "string", @@ -76425,25 +75841,17 @@ "description": "Is column required?", "x-example": false }, - "min": { - "type": "integer", - "description": "Minimum value", - "x-example": null, - "format": "int64", - "x-nullable": true - }, - "max": { - "type": "integer", - "description": "Maximum value", - "x-example": null, - "format": "int64", - "x-nullable": true - }, "default": { - "type": "integer", - "description": "Default value. Cannot be set when column is required.", - "x-example": null, - "format": "int64", + "type": "array", + "description": "Default value for column when not provided, two-dimensional array of coordinate pairs, [[longitude, latitude], [longitude, latitude], \u2026], listing the vertices of the line in order. Cannot be set when column is required.", + "x-example": "[[1, 2], [3, 4], [5, 6]]", + "items": { + "type": "array", + "items": { + "type": "number", + "format": "double" + } + }, "x-nullable": true }, "newKey": { @@ -76454,8 +75862,7 @@ } }, "required": [ - "required", - "default" + "required" ] } } @@ -76463,21 +75870,21 @@ } } }, - "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns\/ip": { + "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns\/longtext": { "post": { - "summary": "Create IP address column", - "operationId": "tablesDBCreateIpColumn", + "summary": "Create longtext column", + "operationId": "tablesDBCreateLongtextColumn", "tags": [ "tablesDB" ], - "description": "Create IP address column.\n", + "description": "Create a longtext column.\n", "responses": { "202": { - "description": "ColumnIP", + "description": "ColumnLongtext", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/columnIp" + "$ref": "#\/components\/schemas\/columnLongtext" } } } @@ -76485,11 +75892,11 @@ }, "deprecated": false, "x-appwrite": { - "method": "createIpColumn", + "method": "createLongtextColumn", "group": "columns", "cookies": false, "type": "", - "demo": "tablesdb\/create-ip-column.md", + "demo": "tablesdb\/create-longtext-column.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", @@ -76505,7 +75912,7 @@ ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/create-ip-column.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/create-longtext-column.md", "auth": { "Project": [] } @@ -76529,7 +75936,7 @@ }, { "name": "tableId", - "description": "Table ID.", + "description": "Table ID. You can create a new table using the Database service [server integration](https:\/\/appwrite.io\/docs\/references\/cloud\/server-dart\/tablesDB#createTable).", "required": true, "schema": { "type": "string", @@ -76556,8 +75963,8 @@ }, "default": { "type": "string", - "description": "Default value. Cannot be set when column is required.", - "x-example": null, + "description": "Default value for column when not provided. Cannot be set when column is required.", + "x-example": "<DEFAULT>", "x-nullable": true }, "array": { @@ -76565,6 +75972,12 @@ "description": "Is column an array?", "default": false, "x-example": false + }, + "encrypt": { + "type": "boolean", + "description": "Toggle encryption for the column. Encryption enhances security by not storing any plain text values in the database. However, encrypted columns cannot be queried.", + "default": false, + "x-example": false } }, "required": [ @@ -76577,21 +75990,21 @@ } } }, - "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns\/ip\/{key}": { + "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns\/longtext\/{key}": { "patch": { - "summary": "Update IP address column", - "operationId": "tablesDBUpdateIpColumn", + "summary": "Update longtext column", + "operationId": "tablesDBUpdateLongtextColumn", "tags": [ "tablesDB" ], - "description": "Update an ip column. Changing the `default` value will not update already existing rows.\n", + "description": "Update a longtext column. Changing the `default` value will not update already existing rows.\n", "responses": { "200": { - "description": "ColumnIP", + "description": "ColumnLongtext", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/columnIp" + "$ref": "#\/components\/schemas\/columnLongtext" } } } @@ -76599,11 +76012,11 @@ }, "deprecated": false, "x-appwrite": { - "method": "updateIpColumn", + "method": "updateLongtextColumn", "group": "columns", "cookies": false, "type": "", - "demo": "tablesdb\/update-ip-column.md", + "demo": "tablesdb\/update-longtext-column.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", @@ -76619,7 +76032,7 @@ ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/update-ip-column.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/update-longtext-column.md", "auth": { "Project": [] } @@ -76643,7 +76056,7 @@ }, { "name": "tableId", - "description": "Table ID.", + "description": "Table ID. You can create a new table using the Database service [server integration](https:\/\/appwrite.io\/docs\/references\/cloud\/server-dart\/tablesDB#createTable).", "required": true, "schema": { "type": "string", @@ -76674,8 +76087,8 @@ }, "default": { "type": "string", - "description": "Default value. Cannot be set when column is required.", - "x-example": null, + "description": "Default value for column when not provided. Cannot be set when column is required.", + "x-example": "<DEFAULT>", "x-nullable": true }, "newKey": { @@ -76695,21 +76108,21 @@ } } }, - "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns\/line": { + "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns\/mediumtext": { "post": { - "summary": "Create line column", - "operationId": "tablesDBCreateLineColumn", + "summary": "Create mediumtext column", + "operationId": "tablesDBCreateMediumtextColumn", "tags": [ "tablesDB" ], - "description": "Create a geometric line column.", + "description": "Create a mediumtext column.\n", "responses": { "202": { - "description": "ColumnLine", + "description": "ColumnMediumtext", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/columnLine" + "$ref": "#\/components\/schemas\/columnMediumtext" } } } @@ -76717,11 +76130,11 @@ }, "deprecated": false, "x-appwrite": { - "method": "createLineColumn", + "method": "createMediumtextColumn", "group": "columns", "cookies": false, "type": "", - "demo": "tablesdb\/create-line-column.md", + "demo": "tablesdb\/create-mediumtext-column.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", @@ -76737,7 +76150,7 @@ ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/create-line-column.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/create-mediumtext-column.md", "auth": { "Project": [] } @@ -76761,7 +76174,7 @@ }, { "name": "tableId", - "description": "Table ID. You can create a new table using the TablesDB service [server integration](https:\/\/appwrite.io\/docs\/references\/cloud\/server-dart\/tablesDB#createTable).", + "description": "Table ID. You can create a new table using the Database service [server integration](https:\/\/appwrite.io\/docs\/references\/cloud\/server-dart\/tablesDB#createTable).", "required": true, "schema": { "type": "string", @@ -76787,17 +76200,22 @@ "x-example": false }, "default": { - "type": "array", - "description": "Default value for column when not provided, two-dimensional array of coordinate pairs, [[longitude, latitude], [longitude, latitude], \u2026], listing the vertices of the line in order. Cannot be set when column is required.", - "x-example": "[[1, 2], [3, 4], [5, 6]]", - "items": { - "type": "array", - "items": { - "type": "number", - "format": "double" - } - }, + "type": "string", + "description": "Default value for column when not provided. Cannot be set when column is required.", + "x-example": "<DEFAULT>", "x-nullable": true + }, + "array": { + "type": "boolean", + "description": "Is column an array?", + "default": false, + "x-example": false + }, + "encrypt": { + "type": "boolean", + "description": "Toggle encryption for the column. Encryption enhances security by not storing any plain text values in the database. However, encrypted columns cannot be queried.", + "default": false, + "x-example": false } }, "required": [ @@ -76810,21 +76228,21 @@ } } }, - "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns\/line\/{key}": { + "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns\/mediumtext\/{key}": { "patch": { - "summary": "Update line column", - "operationId": "tablesDBUpdateLineColumn", + "summary": "Update mediumtext column", + "operationId": "tablesDBUpdateMediumtextColumn", "tags": [ "tablesDB" ], - "description": "Update a line column. Changing the `default` value will not update already existing rows.", + "description": "Update a mediumtext column. Changing the `default` value will not update already existing rows.\n", "responses": { "200": { - "description": "ColumnLine", + "description": "ColumnMediumtext", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/columnLine" + "$ref": "#\/components\/schemas\/columnMediumtext" } } } @@ -76832,11 +76250,11 @@ }, "deprecated": false, "x-appwrite": { - "method": "updateLineColumn", + "method": "updateMediumtextColumn", "group": "columns", "cookies": false, "type": "", - "demo": "tablesdb\/update-line-column.md", + "demo": "tablesdb\/update-mediumtext-column.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", @@ -76852,7 +76270,7 @@ ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/update-line-column.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/update-mediumtext-column.md", "auth": { "Project": [] } @@ -76876,7 +76294,7 @@ }, { "name": "tableId", - "description": "Table ID. You can create a new table using the TablesDB service [server integration](https:\/\/appwrite.io\/docs\/references\/cloud\/server-dart\/tablesDB#createTable).", + "description": "Table ID. You can create a new table using the Database service [server integration](https:\/\/appwrite.io\/docs\/references\/cloud\/server-dart\/tablesDB#createTable).", "required": true, "schema": { "type": "string", @@ -76906,16 +76324,9 @@ "x-example": false }, "default": { - "type": "array", - "description": "Default value for column when not provided, two-dimensional array of coordinate pairs, [[longitude, latitude], [longitude, latitude], \u2026], listing the vertices of the line in order. Cannot be set when column is required.", - "x-example": "[[1, 2], [3, 4], [5, 6]]", - "items": { - "type": "array", - "items": { - "type": "number", - "format": "double" - } - }, + "type": "string", + "description": "Default value for column when not provided. Cannot be set when column is required.", + "x-example": "<DEFAULT>", "x-nullable": true }, "newKey": { @@ -76926,7 +76337,8 @@ } }, "required": [ - "required" + "required", + "default" ] } } @@ -76934,21 +76346,21 @@ } } }, - "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns\/longtext": { + "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns\/point": { "post": { - "summary": "Create longtext column", - "operationId": "tablesDBCreateLongtextColumn", + "summary": "Create point column", + "operationId": "tablesDBCreatePointColumn", "tags": [ "tablesDB" ], - "description": "Create a longtext column.\n", + "description": "Create a geometric point column.", "responses": { "202": { - "description": "ColumnLongtext", + "description": "ColumnPoint", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/columnLongtext" + "$ref": "#\/components\/schemas\/columnPoint" } } } @@ -76956,11 +76368,11 @@ }, "deprecated": false, "x-appwrite": { - "method": "createLongtextColumn", + "method": "createPointColumn", "group": "columns", "cookies": false, "type": "", - "demo": "tablesdb\/create-longtext-column.md", + "demo": "tablesdb\/create-point-column.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", @@ -76976,7 +76388,7 @@ ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/create-longtext-column.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/create-point-column.md", "auth": { "Project": [] } @@ -77000,7 +76412,7 @@ }, { "name": "tableId", - "description": "Table ID. You can create a new table using the Database service [server integration](https:\/\/appwrite.io\/docs\/references\/cloud\/server-dart\/tablesDB#createTable).", + "description": "Table ID. You can create a new table using the TablesDB service [server integration](https:\/\/appwrite.io\/docs\/references\/cloud\/server-dart\/tablesDB#createTable).", "required": true, "schema": { "type": "string", @@ -77026,22 +76438,14 @@ "x-example": false }, "default": { - "type": "string", - "description": "Default value for column when not provided. Cannot be set when column is required.", - "x-example": "<DEFAULT>", + "type": "array", + "description": "Default value for column when not provided, array of two numbers [longitude, latitude], representing a single coordinate. Cannot be set when column is required.", + "x-example": "[1, 2]", + "items": { + "type": "number", + "format": "double" + }, "x-nullable": true - }, - "array": { - "type": "boolean", - "description": "Is column an array?", - "default": false, - "x-example": false - }, - "encrypt": { - "type": "boolean", - "description": "Toggle encryption for the column. Encryption enhances security by not storing any plain text values in the database. However, encrypted columns cannot be queried.", - "default": false, - "x-example": false } }, "required": [ @@ -77054,21 +76458,21 @@ } } }, - "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns\/longtext\/{key}": { + "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns\/point\/{key}": { "patch": { - "summary": "Update longtext column", - "operationId": "tablesDBUpdateLongtextColumn", + "summary": "Update point column", + "operationId": "tablesDBUpdatePointColumn", "tags": [ "tablesDB" ], - "description": "Update a longtext column. Changing the `default` value will not update already existing rows.\n", + "description": "Update a point column. Changing the `default` value will not update already existing rows.", "responses": { "200": { - "description": "ColumnLongtext", + "description": "ColumnPoint", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/columnLongtext" + "$ref": "#\/components\/schemas\/columnPoint" } } } @@ -77076,11 +76480,11 @@ }, "deprecated": false, "x-appwrite": { - "method": "updateLongtextColumn", + "method": "updatePointColumn", "group": "columns", "cookies": false, "type": "", - "demo": "tablesdb\/update-longtext-column.md", + "demo": "tablesdb\/update-point-column.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", @@ -77096,7 +76500,7 @@ ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/update-longtext-column.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/update-point-column.md", "auth": { "Project": [] } @@ -77120,7 +76524,7 @@ }, { "name": "tableId", - "description": "Table ID. You can create a new table using the Database service [server integration](https:\/\/appwrite.io\/docs\/references\/cloud\/server-dart\/tablesDB#createTable).", + "description": "Table ID. You can create a new table using the TablesDB service [server integration](https:\/\/appwrite.io\/docs\/references\/cloud\/server-dart\/tablesDB#createTable).", "required": true, "schema": { "type": "string", @@ -77150,9 +76554,13 @@ "x-example": false }, "default": { - "type": "string", - "description": "Default value for column when not provided. Cannot be set when column is required.", - "x-example": "<DEFAULT>", + "type": "array", + "description": "Default value for column when not provided, array of two numbers [longitude, latitude], representing a single coordinate. Cannot be set when column is required.", + "x-example": "[1, 2]", + "items": { + "type": "number", + "format": "double" + }, "x-nullable": true }, "newKey": { @@ -77163,8 +76571,7 @@ } }, "required": [ - "required", - "default" + "required" ] } } @@ -77172,21 +76579,21 @@ } } }, - "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns\/mediumtext": { + "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns\/polygon": { "post": { - "summary": "Create mediumtext column", - "operationId": "tablesDBCreateMediumtextColumn", + "summary": "Create polygon column", + "operationId": "tablesDBCreatePolygonColumn", "tags": [ "tablesDB" ], - "description": "Create a mediumtext column.\n", + "description": "Create a geometric polygon column.", "responses": { "202": { - "description": "ColumnMediumtext", + "description": "ColumnPolygon", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/columnMediumtext" + "$ref": "#\/components\/schemas\/columnPolygon" } } } @@ -77194,11 +76601,11 @@ }, "deprecated": false, "x-appwrite": { - "method": "createMediumtextColumn", + "method": "createPolygonColumn", "group": "columns", "cookies": false, "type": "", - "demo": "tablesdb\/create-mediumtext-column.md", + "demo": "tablesdb\/create-polygon-column.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", @@ -77214,478 +76621,7 @@ ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/create-mediumtext-column.md", - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "x-example": "<DATABASE_ID>" - }, - "in": "path" - }, - { - "name": "tableId", - "description": "Table ID. You can create a new table using the Database service [server integration](https:\/\/appwrite.io\/docs\/references\/cloud\/server-dart\/tablesDB#createTable).", - "required": true, - "schema": { - "type": "string", - "x-example": "<TABLE_ID>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "key": { - "type": "string", - "description": "Column Key.", - "x-example": null - }, - "required": { - "type": "boolean", - "description": "Is column required?", - "x-example": false - }, - "default": { - "type": "string", - "description": "Default value for column when not provided. Cannot be set when column is required.", - "x-example": "<DEFAULT>", - "x-nullable": true - }, - "array": { - "type": "boolean", - "description": "Is column an array?", - "default": false, - "x-example": false - }, - "encrypt": { - "type": "boolean", - "description": "Toggle encryption for the column. Encryption enhances security by not storing any plain text values in the database. However, encrypted columns cannot be queried.", - "default": false, - "x-example": false - } - }, - "required": [ - "key", - "required" - ] - } - } - } - } - } - }, - "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns\/mediumtext\/{key}": { - "patch": { - "summary": "Update mediumtext column", - "operationId": "tablesDBUpdateMediumtextColumn", - "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": { - "method": "updateMediumtextColumn", - "group": "columns", - "cookies": false, - "type": "", - "demo": "tablesdb\/update-mediumtext-column.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": [ - "tables.write", - "collections.write", - "columns.write", - "attributes.write" - ], - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/update-mediumtext-column.md", - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "x-example": "<DATABASE_ID>" - }, - "in": "path" - }, - { - "name": "tableId", - "description": "Table ID. You can create a new table using the Database service [server integration](https:\/\/appwrite.io\/docs\/references\/cloud\/server-dart\/tablesDB#createTable).", - "required": true, - "schema": { - "type": "string", - "x-example": "<TABLE_ID>" - }, - "in": "path" - }, - { - "name": "key", - "description": "Column Key.", - "required": true, - "schema": { - "type": "string" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "required": { - "type": "boolean", - "description": "Is column required?", - "x-example": false - }, - "default": { - "type": "string", - "description": "Default value for column when not provided. Cannot be set when column is required.", - "x-example": "<DEFAULT>", - "x-nullable": true - }, - "newKey": { - "type": "string", - "description": "New Column Key.", - "x-example": null, - "x-nullable": true - } - }, - "required": [ - "required", - "default" - ] - } - } - } - } - } - }, - "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns\/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": { - "method": "createPointColumn", - "group": "columns", - "cookies": false, - "type": "", - "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, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/create-point-column.md", - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "x-example": "<DATABASE_ID>" - }, - "in": "path" - }, - { - "name": "tableId", - "description": "Table ID. You can create a new table using the TablesDB service [server integration](https:\/\/appwrite.io\/docs\/references\/cloud\/server-dart\/tablesDB#createTable).", - "required": true, - "schema": { - "type": "string", - "x-example": "<TABLE_ID>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "key": { - "type": "string", - "description": "Column Key.", - "x-example": null - }, - "required": { - "type": "boolean", - "description": "Is column required?", - "x-example": false - }, - "default": { - "type": "array", - "description": "Default value for column when not provided, array of two numbers [longitude, latitude], representing a single coordinate. Cannot be set when column is required.", - "x-example": "[1, 2]", - "items": { - "type": "number", - "format": "double" - }, - "x-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": { - "method": "updatePointColumn", - "group": "columns", - "cookies": false, - "type": "", - "demo": "tablesdb\/update-point-column.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": [ - "tables.write", - "collections.write", - "columns.write", - "attributes.write" - ], - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/update-point-column.md", - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "x-example": "<DATABASE_ID>" - }, - "in": "path" - }, - { - "name": "tableId", - "description": "Table ID. You can create a new table using the TablesDB service [server integration](https:\/\/appwrite.io\/docs\/references\/cloud\/server-dart\/tablesDB#createTable).", - "required": true, - "schema": { - "type": "string", - "x-example": "<TABLE_ID>" - }, - "in": "path" - }, - { - "name": "key", - "description": "Column Key.", - "required": true, - "schema": { - "type": "string" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "required": { - "type": "boolean", - "description": "Is column required?", - "x-example": false - }, - "default": { - "type": "array", - "description": "Default value for column when not provided, array of two numbers [longitude, latitude], representing a single coordinate. Cannot be set when column is required.", - "x-example": "[1, 2]", - "items": { - "type": "number", - "format": "double" - }, - "x-nullable": true - }, - "newKey": { - "type": "string", - "description": "New Column Key.", - "x-example": null, - "x-nullable": true - } - }, - "required": [ - "required" - ] - } - } - } - } - } - }, - "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns\/polygon": { - "post": { - "summary": "Create polygon column", - "operationId": "tablesDBCreatePolygonColumn", - "tags": [ - "tablesDB" - ], - "description": "Create a geometric polygon column.", - "responses": { - "202": { - "description": "ColumnPolygon", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/columnPolygon" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "method": "createPolygonColumn", - "group": "columns", - "cookies": false, - "type": "", - "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, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/create-polygon-column.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/create-polygon-column.md", "auth": { "Project": [] } @@ -80064,7 +79000,6 @@ "rowId": { "type": "string", "description": "Row ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.", - "default": "", "x-example": "<ROW_ID>", "x-appwrite": { "idGenerator": "ID.unique" @@ -80073,7 +79008,7 @@ "data": { "type": "object", "description": "Row data as JSON object.", - "default": [], + "default": {}, "x-example": "{\"username\":\"walter.obrien\",\"email\":\"walter.obrien@example.com\",\"fullName\":\"Walter O'Brien\",\"age\":30,\"isAdmin\":false}" }, "permissions": { @@ -80100,7 +79035,11 @@ "x-example": "<TRANSACTION_ID>", "x-nullable": true } - } + }, + "required": [ + "rowId", + "data" + ] } } } @@ -81163,21 +80102,21 @@ } } }, - "\/tablesdb\/{databaseId}\/tables\/{tableId}\/usage": { + "\/teams": { "get": { - "summary": "Get table usage stats", - "operationId": "tablesDBGetTableUsage", + "summary": "List teams", + "operationId": "teamsList", "tags": [ - "tablesDB" + "teams" ], - "description": "Get usage metrics and statistics for a table. Returning the total number of rows. The response includes both current totals and historical data over time. Use the optional range parameter to specify the time window for historical data: 24h (last 24 hours), 30d (last 30 days), or 90d (last 90 days). If not specified, range defaults to 30 days.", + "description": "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": "UsageTable", + "description": "Teams List", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/usageTable" + "$ref": "#\/components\/schemas\/teamList" } } } @@ -81185,94 +80124,87 @@ }, "deprecated": false, "x-appwrite": { - "method": "getTableUsage", - "group": null, + "method": "list", + "group": "teams", "cookies": false, "type": "", - "demo": "tablesdb\/get-table-usage.md", + "demo": "teams\/list.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": [ - "tables.read", - "collections.read" - ], + "scope": "teams.read", "platforms": [ - "console" + "console", + "client", + "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/get-table-usage.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/teams\/list-teams.md", "auth": { "Project": [] } }, "security": [ { - "Project": [] + "Project": [], + "Session": [], + "Key": [], + "JWT": [] } ], "parameters": [ { - "name": "databaseId", - "description": "Database ID.", - "required": true, + "name": "queries", + "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/queries). Maximum of 100 queries are allowed, each 4096 characters long. You may filter on the following attributes: name, total, billingPlan", + "required": false, "schema": { - "type": "string", - "x-example": "<DATABASE_ID>" + "type": "array", + "items": { + "type": "string" + }, + "default": [] }, - "in": "path" + "in": "query" }, { - "name": "range", - "description": "Date range.", + "name": "search", + "description": "Search term to filter your list results. Max length: 256 chars.", "required": false, "schema": { "type": "string", - "x-example": "24h", - "enum": [ - "24h", - "30d", - "90d" - ], - "x-enum-name": "UsageRange", - "x-enum-keys": [ - "Twenty Four Hours", - "Thirty Days", - "Ninety Days" - ], - "default": "30d" + "x-example": "<SEARCH>", + "default": "" }, "in": "query" }, { - "name": "tableId", - "description": "Table ID.", - "required": true, + "name": "total", + "description": "When set to false, the total count returned will be 0 and will not be calculated.", + "required": false, "schema": { - "type": "string", - "x-example": "<TABLE_ID>" + "type": "boolean", + "x-example": false, + "default": true }, - "in": "path" + "in": "query" } ] - } - }, - "\/tablesdb\/{databaseId}\/usage": { - "get": { - "summary": "Get TablesDB usage stats", - "operationId": "tablesDBGetUsage", + }, + "post": { + "summary": "Create team", + "operationId": "teamsCreate", "tags": [ - "tablesDB" + "teams" ], - "description": "Get usage metrics and statistics for a database. You can view the total number of tables, rows, and storage usage. The response includes both current totals and historical data over time. Use the optional range parameter to specify the time window for historical data: 24h (last 24 hours), 30d (last 30 days), or 90d (last 90 days). If not specified, range defaults to 30 days.", + "description": "Create a new team. The user who creates the team will automatically be assigned as the owner of the team. Only the users with the owner role can invite new members, add new owners and delete or update the team.", "responses": { - "200": { - "description": "UsageDatabase", + "201": { + "description": "Team", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/usageDatabase" + "$ref": "#\/components\/schemas\/team" } } } @@ -81280,110 +80212,91 @@ }, "deprecated": false, "x-appwrite": { - "method": "getUsage", - "group": null, + "method": "create", + "group": "teams", "cookies": false, "type": "", - "demo": "tablesdb\/get-usage.md", + "demo": "teams\/create.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": [ - "tables.read", - "collections.read" - ], + "scope": "teams.write", "platforms": [ - "console" + "console", + "client", + "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/get-database-usage.md", - "methods": [ - { - "name": "getUsage", - "namespace": "tablesDB", - "desc": "", - "auth": { - "Project": [] - }, - "parameters": [ - "databaseId", - "range" - ], - "required": [ - "databaseId" - ], - "responses": [ - { - "code": 200, - "model": "#\/components\/schemas\/usageDatabase" - } - ], - "description": "Get usage metrics and statistics for a database. You can view the total number of tables, rows, and storage usage. The response includes both current totals and historical data over time. Use the optional range parameter to specify the time window for historical data: 24h (last 24 hours), 30d (last 30 days), or 90d (last 90 days). If not specified, range defaults to 30 days.", - "demo": "tablesdb\/get-usage.md", - "public": true - } - ], + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/teams\/create-team.md", "auth": { "Project": [] } }, "security": [ { - "Project": [] + "Project": [], + "Session": [], + "Key": [], + "JWT": [] } ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "x-example": "<DATABASE_ID>" - }, - "in": "path" - }, - { - "name": "range", - "description": "Date range.", - "required": false, - "schema": { - "type": "string", - "x-example": "24h", - "enum": [ - "24h", - "30d", - "90d" - ], - "x-enum-name": "UsageRange", - "x-enum-keys": [ - "Twenty Four Hours", - "Thirty Days", - "Ninety Days" - ], - "default": "30d" - }, - "in": "query" + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "teamId": { + "type": "string", + "description": "Team ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.", + "x-example": "<TEAM_ID>", + "x-appwrite": { + "idGenerator": "ID.unique" + } + }, + "name": { + "type": "string", + "description": "Team name. Max length: 128 chars.", + "x-example": "<NAME>" + }, + "roles": { + "type": "array", + "description": "Array of strings. Use this param to set the roles in the team for the user who created it. The default role is **owner**. A role can be any string. Learn more about [roles and permissions](https:\/\/appwrite.io\/docs\/permissions). Maximum of 100 roles are allowed, each 32 characters long.", + "default": [ + "owner" + ], + "x-example": null, + "items": { + "type": "string" + } + } + }, + "required": [ + "teamId", + "name" + ] + } + } } - ] + } } }, - "\/teams": { + "\/teams\/{teamId}": { "get": { - "summary": "List teams", - "operationId": "teamsList", + "summary": "Get team", + "operationId": "teamsGet", "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.", + "description": "Get a team by its ID. All team members have read access for this resource.", "responses": { "200": { - "description": "Teams List", + "description": "Team", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/teamList" + "$ref": "#\/components\/schemas\/team" } } } @@ -81391,11 +80304,11 @@ }, "deprecated": false, "x-appwrite": { - "method": "list", + "method": "get", "group": "teams", "cookies": false, "type": "", - "demo": "teams\/list.md", + "demo": "teams\/get.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", @@ -81407,7 +80320,7 @@ ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/teams\/list-teams.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/teams\/get-team.md", "auth": { "Project": [] } @@ -81422,51 +80335,26 @@ ], "parameters": [ { - "name": "queries", - "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/queries). Maximum of 100 queries are allowed, each 4096 characters long. You may filter on the following attributes: name, total, billingPlan", - "required": false, - "schema": { - "type": "array", - "items": { - "type": "string" - }, - "default": [] - }, - "in": "query" - }, - { - "name": "search", - "description": "Search term to filter your list results. Max length: 256 chars.", - "required": false, + "name": "teamId", + "description": "Team ID.", + "required": true, "schema": { "type": "string", - "x-example": "<SEARCH>", - "default": "" - }, - "in": "query" - }, - { - "name": "total", - "description": "When set to false, the total count returned will be 0 and will not be calculated.", - "required": false, - "schema": { - "type": "boolean", - "x-example": false, - "default": true + "x-example": "<TEAM_ID>" }, - "in": "query" + "in": "path" } ] }, - "post": { - "summary": "Create team", - "operationId": "teamsCreate", + "put": { + "summary": "Update name", + "operationId": "teamsUpdateName", "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.", + "description": "Update the team's name by its unique ID.", "responses": { - "201": { + "200": { "description": "Team", "content": { "application\/json": { @@ -81479,11 +80367,11 @@ }, "deprecated": false, "x-appwrite": { - "method": "create", + "method": "updateName", "group": "teams", "cookies": false, "type": "", - "demo": "teams\/create.md", + "demo": "teams\/update-name.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", @@ -81495,7 +80383,7 @@ ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/teams\/create-team.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/teams\/update-team-name.md", "auth": { "Project": [] } @@ -81508,62 +80396,110 @@ "JWT": [] } ], + "parameters": [ + { + "name": "teamId", + "description": "Team ID.", + "required": true, + "schema": { + "type": "string", + "x-example": "<TEAM_ID>" + }, + "in": "path" + } + ], "requestBody": { "content": { "application\/json": { "schema": { "type": "object", "properties": { - "teamId": { - "type": "string", - "description": "Team ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.", - "x-example": "<TEAM_ID>", - "x-appwrite": { - "idGenerator": "ID.unique" - } - }, "name": { "type": "string", - "description": "Team name. Max length: 128 chars.", + "description": "New team name. Max length: 128 chars.", "x-example": "<NAME>" - }, - "roles": { - "type": "array", - "description": "Array of strings. Use this param to set the roles in the team for the user who created it. The default role is **owner**. A role can be any string. Learn more about [roles and permissions](https:\/\/appwrite.io\/docs\/permissions). Maximum of 100 roles are allowed, each 32 characters long.", - "default": [ - "owner" - ], - "x-example": null, - "items": { - "type": "string" - } } }, "required": [ - "teamId", "name" ] } } } } + }, + "delete": { + "summary": "Delete team", + "operationId": "teamsDelete", + "tags": [ + "teams" + ], + "description": "Delete a team using its ID. Only team members with the owner role can delete the team.", + "responses": { + "204": { + "description": "No content" + } + }, + "deprecated": false, + "x-appwrite": { + "method": "delete", + "group": "teams", + "cookies": false, + "type": "", + "demo": "teams\/delete.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "teams.write", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/teams\/delete-team.md", + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "Key": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "teamId", + "description": "Team ID.", + "required": true, + "schema": { + "type": "string", + "x-example": "<TEAM_ID>" + }, + "in": "path" + } + ] } }, - "\/teams\/{teamId}": { + "\/teams\/{teamId}\/logs": { "get": { - "summary": "Get team", - "operationId": "teamsGet", + "summary": "List team logs", + "operationId": "teamsListLogs", "tags": [ "teams" ], - "description": "Get a team by its ID. All team members have read access for this resource.", + "description": "Get the team activity logs list by its unique ID.", "responses": { "200": { - "description": "Team", + "description": "Logs List", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/team" + "$ref": "#\/components\/schemas\/logList" } } } @@ -81571,11 +80507,95 @@ }, "deprecated": false, "x-appwrite": { - "method": "get", - "group": "teams", + "method": "listLogs", + "group": "logs", "cookies": false, "type": "", - "demo": "teams\/get.md", + "demo": "teams\/list-logs.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "teams.read", + "platforms": [ + "console" + ], + "packaging": false, + "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/teams\/get-team-logs.md", + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [] + } + ], + "parameters": [ + { + "name": "teamId", + "description": "Team ID.", + "required": true, + "schema": { + "type": "string", + "x-example": "<TEAM_ID>" + }, + "in": "path" + }, + { + "name": "queries", + "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/queries). Only supported methods are limit and offset", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string" + }, + "default": [] + }, + "in": "query" + }, + { + "name": "total", + "description": "When set to false, the total count returned will be 0 and will not be calculated.", + "required": false, + "schema": { + "type": "boolean", + "x-example": false, + "default": true + }, + "in": "query" + } + ] + } + }, + "\/teams\/{teamId}\/memberships": { + "get": { + "summary": "List team memberships", + "operationId": "teamsListMemberships", + "tags": [ + "teams" + ], + "description": "Use this endpoint to list a team's members using the team's ID. All team members have read access to this endpoint. Hide sensitive attributes from the response by toggling membership privacy in the Console.", + "responses": { + "200": { + "description": "Memberships List", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/membershipList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "method": "listMemberships", + "group": "memberships", + "cookies": false, + "type": "", + "demo": "teams\/list-memberships.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", @@ -81587,294 +80607,7 @@ ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/teams\/get-team.md", - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Session": [], - "Key": [], - "JWT": [] - } - ], - "parameters": [ - { - "name": "teamId", - "description": "Team ID.", - "required": true, - "schema": { - "type": "string", - "x-example": "<TEAM_ID>" - }, - "in": "path" - } - ] - }, - "put": { - "summary": "Update name", - "operationId": "teamsUpdateName", - "tags": [ - "teams" - ], - "description": "Update the team's name by its unique ID.", - "responses": { - "200": { - "description": "Team", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/team" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "method": "updateName", - "group": "teams", - "cookies": false, - "type": "", - "demo": "teams\/update-name.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "teams.write", - "platforms": [ - "console", - "client", - "server" - ], - "packaging": false, - "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/teams\/update-team-name.md", - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Session": [], - "Key": [], - "JWT": [] - } - ], - "parameters": [ - { - "name": "teamId", - "description": "Team ID.", - "required": true, - "schema": { - "type": "string", - "x-example": "<TEAM_ID>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "name": { - "type": "string", - "description": "New team name. Max length: 128 chars.", - "x-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": { - "method": "delete", - "group": "teams", - "cookies": false, - "type": "", - "demo": "teams\/delete.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "teams.write", - "platforms": [ - "console", - "client", - "server" - ], - "packaging": false, - "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/teams\/delete-team.md", - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Session": [], - "Key": [], - "JWT": [] - } - ], - "parameters": [ - { - "name": "teamId", - "description": "Team ID.", - "required": true, - "schema": { - "type": "string", - "x-example": "<TEAM_ID>" - }, - "in": "path" - } - ] - } - }, - "\/teams\/{teamId}\/logs": { - "get": { - "summary": "List team logs", - "operationId": "teamsListLogs", - "tags": [ - "teams" - ], - "description": "Get the team activity logs list by its unique ID.", - "responses": { - "200": { - "description": "Logs List", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/logList" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "method": "listLogs", - "group": "logs", - "cookies": false, - "type": "", - "demo": "teams\/list-logs.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "teams.read", - "platforms": [ - "console" - ], - "packaging": false, - "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/teams\/get-team-logs.md", - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [] - } - ], - "parameters": [ - { - "name": "teamId", - "description": "Team ID.", - "required": true, - "schema": { - "type": "string", - "x-example": "<TEAM_ID>" - }, - "in": "path" - }, - { - "name": "queries", - "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/queries). Only supported methods are limit and offset", - "required": false, - "schema": { - "type": "array", - "items": { - "type": "string" - }, - "default": [] - }, - "in": "query" - }, - { - "name": "total", - "description": "When set to false, the total count returned will be 0 and will not be calculated.", - "required": false, - "schema": { - "type": "boolean", - "x-example": false, - "default": true - }, - "in": "query" - } - ] - } - }, - "\/teams\/{teamId}\/memberships": { - "get": { - "summary": "List team memberships", - "operationId": "teamsListMemberships", - "tags": [ - "teams" - ], - "description": "Use this endpoint to list a team's members using the team's ID. All team members have read access to this endpoint. Hide sensitive attributes from the response by toggling membership privacy in the Console.", - "responses": { - "200": { - "description": "Memberships List", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/membershipList" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "method": "listMemberships", - "group": "memberships", - "cookies": false, - "type": "", - "demo": "teams\/list-memberships.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "teams.read", - "platforms": [ - "console", - "client", - "server" - ], - "packaging": false, - "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/teams\/list-team-members.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/teams\/list-team-members.md", "auth": { "Project": [] } @@ -82969,7 +81702,7 @@ }, { "name": "queries", - "description": "Up to 10 filter queries in Utopia syntax. Allowed attributes: path, method, status, service, resourceType, resourceId, teamId, country, region, hostname, ip, osName, clientType, clientName, deviceName. 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: path, method, status, service, resourceType, resourceId, teamId, country, continentCode, city, region, hostname, ip, osName, clientType, clientName, deviceName, sdk, sdkVersion. Allowed methods: equal, notEqual, contains, startsWith, endsWith, isNull, isNotNull. Example: `queries[]=equal(\"resourceType\", [\"bucket\"])`.", "required": false, "schema": { "type": "array", @@ -82992,7 +81725,7 @@ }, { "name": "dimensions", - "description": "Break-down dimensions (max 10). Allowed: path, method, status, service, resourceType, country, region, hostname, ip, osName, clientType, clientName, deviceName, teamId, resourceId.", + "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.", "required": false, "schema": { "type": "array", @@ -83083,7 +81816,7 @@ "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\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`. `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`). `queries[]` filters the underlying rows using the standard Utopia query syntax \u2014 `equal(\"resourceType\", [\"bucket\"])`, `equal(\"resourceId\", [\"abc123\"])`, `equal(\"teamId\", [\"team_x\"])`, `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).", + "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\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 (0 is the primary; 1+ are replicas). `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).", "responses": { "200": { "description": "usageGaugeList", @@ -83138,7 +81871,7 @@ }, { "name": "queries", - "description": "Up to 10 filter queries in Utopia syntax. Allowed attributes: service, resourceType, resourceId, teamId. Allowed methods: equal, notEqual, isNull, isNotNull. Example: `queries[]=equal(\"resourceType\", [\"bucket\"])`.", + "description": "Up to 10 filter queries in Utopia syntax. Allowed attributes: service, resourceType, resourceId, teamId, ordinal. Allowed methods: equal, notEqual, isNull, isNotNull. Example: `queries[]=equal(\"resourceType\", [\"bucket\"])`.", "required": false, "schema": { "type": "array", @@ -83161,7 +81894,7 @@ }, { "name": "dimensions", - "description": "Break-down dimensions. Allowed: resourceId, teamId, service, resourceType.", + "description": "Break-down dimensions. Allowed: resourceId, teamId, service, resourceType, ordinal.", "required": false, "schema": { "type": "array", @@ -88164,6 +86897,13 @@ "description": "Database specification. Defaults to `serverless`, which creates the database on the shared pool. Any other value provisions a dedicated database on that specification.", "default": "serverless", "x-example": "serverless" + }, + "replicas": { + "type": "integer", + "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.", + "default": 0, + "x-example": 0, + "format": "int32" } }, "required": [ @@ -88294,6 +87034,55 @@ } } }, + "\/vectorsdb\/specifications": { + "get": { + "summary": "List dedicated database specifications.", + "operationId": "vectorsDBListSpecifications", + "tags": [ + "vectorsDB" + ], + "description": "List the dedicated database specifications available on the current plan. Each specification reports its resource limits, pricing, and whether it is enabled for the organization.", + "responses": { + "200": { + "description": "SpecificationList", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/dedicatedDatabaseSpecificationList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "method": "listSpecifications", + "group": "databases", + "cookies": false, + "type": "", + "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", @@ -88859,6 +87648,13 @@ "description": "Is database enabled? When set to 'disabled', users cannot access the database but Server SDKs with an API key can still read and write to the database. No data is lost when this is toggled.", "default": true, "x-example": false + }, + "replicas": { + "type": "integer", + "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.", + "x-example": 0, + "format": "int32", + "x-nullable": true } }, "required": [ @@ -89645,7 +88441,6 @@ "documentId": { "type": "string", "description": "Document ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.", - "default": "", "x-example": "<DOCUMENT_ID>", "x-appwrite": { "idGenerator": "ID.unique" @@ -89654,7 +88449,7 @@ "data": { "type": "object", "description": "Document data as JSON object.", - "default": [], + "default": {}, "x-example": "{\"embeddings\": [0.12, -0.55, 0.88, 1.02], \"metadata\": {\"key\":\"value\"} }" }, "permissions": { @@ -89679,7 +88474,11 @@ "description": "Transaction ID for staging the operation.", "x-example": "<TRANSACTION_ID>" } - } + }, + "required": [ + "documentId", + "data" + ] } } } @@ -90859,21 +89658,99 @@ ] } }, - "\/webhooks": { + "\/vectorsdb\/{databaseId}\/failovers": { + "post": { + "summary": "Trigger manual 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.", + "responses": { + "202": { + "description": "DedicatedDatabase", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/dedicatedDatabase" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "method": "createFailover", + "group": "databases", + "cookies": false, + "type": "", + "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", + "x-example": "<DATABASE_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "targetReplicaId": { + "type": "string", + "description": "Target replica ID to promote. If not specified, the healthiest replica is selected.", + "x-example": "<TARGET_REPLICA_ID>", + "x-nullable": true + } + } + } + } + } + } + } + }, + "\/vectorsdb\/{databaseId}\/replicas": { "get": { - "summary": "List webhooks", - "operationId": "webhooksList", + "summary": "Get replica status.", + "operationId": "vectorsDBGetReplicas", "tags": [ - "webhooks" + "vectorsDB" ], - "description": "Get a list of all webhooks belonging to the project. You can use the query params to filter your results.", + "description": "Get high availability status for a dedicated database. Returns replica statuses, replication lag, and sync mode.", "responses": { "200": { - "description": "Webhooks List", + "description": "Replicas", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/webhookList" + "$ref": "#\/components\/schemas\/dedicatedDatabaseReplicas" } } } @@ -90881,21 +89758,144 @@ }, "deprecated": false, "x-appwrite": { - "method": "list", - "group": null, + "method": "getReplicas", + "group": "databases", "cookies": false, "type": "", - "demo": "webhooks\/list.md", + "demo": "vectorsdb\/get-replicas.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "webhooks.read", + "scope": "databases.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "x-example": "<DATABASE_ID>" + }, + "in": "path" + } + ] + } + }, + "\/vectorsdb\/{databaseId}\/status": { + "get": { + "summary": "Get database 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": { + "method": "getStatus", + "group": "databases", + "cookies": false, + "type": "", + "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", + "x-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": { + "method": "listRules", + "group": "rules", + "cookies": false, + "type": "", + "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, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/waf\/list-rules.md", "auth": { "Project": [] } @@ -90909,7 +89909,7 @@ "parameters": [ { "name": "queries", - "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/queries). Maximum of 100 queries are allowed, each 4096 characters long. You may filter on the following attributes: name, url, authUsername, tls, events, enabled, logs, attempts", + "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/queries). Maximum of 100 queries are allowed, each 4096 characters long.", "required": false, "schema": { "type": "array", @@ -90920,6 +89920,17 @@ }, "in": "query" }, + { + "name": "search", + "description": "Search term to filter your list results. Max length: 256 chars.", + "required": false, + "schema": { + "type": "string", + "x-example": "<SEARCH>", + "default": "" + }, + "in": "query" + }, { "name": "total", "description": "When set to false, the total count returned will be 0 and will not be calculated.", @@ -90932,21 +89943,23 @@ "in": "query" } ] - }, + } + }, + "\/waf\/rules\/bypass": { "post": { - "summary": "Create webhook", - "operationId": "webhooksCreate", + "summary": "Create a bypass WAF rule.", + "operationId": "wafCreateBypassRule", "tags": [ - "webhooks" + "waf" ], - "description": "Create a new webhook. Use this endpoint to configure a URL that will receive events from Appwrite when specific events occur.", + "description": "Create a bypass WAF rule.\n", "responses": { "201": { - "description": "Webhook", + "description": "WafRuleBypass", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/webhook" + "$ref": "#\/components\/schemas\/wafRuleBypass" } } } @@ -90954,21 +89967,22 @@ }, "deprecated": false, "x-appwrite": { - "method": "create", - "group": null, + "method": "createBypassRule", + "group": "rules", "cookies": false, "type": "", - "demo": "webhooks\/create.md", + "demo": "waf\/create-bypass-rule.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "webhooks.write", + "scope": "wafRules.write", "platforms": [ "console", "server" ], "packaging": false, "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/waf\/create-bypass-rule.md", "auth": { "Project": [] } @@ -90985,69 +89999,60 @@ "schema": { "type": "object", "properties": { - "webhookId": { + "ruleId": { "type": "string", - "description": "Webhook ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.", - "x-example": "<WEBHOOK_ID>", + "description": "Rule ID. Choose a custom ID or pass `ID.unique()` to generate a unique one.", + "x-example": "<RULE_ID>", "x-appwrite": { "idGenerator": "ID.unique" } }, - "url": { + "resourceType": { "type": "string", - "description": "Webhook URL.", - "x-example": null + "description": "Resource type the rule applies to.", + "x-example": "api" + }, + "resourceId": { + "type": "string", + "description": "Resource identifier. Leave empty for the API resource type.", + "x-example": "<RESOURCE_ID>", + "x-nullable": true }, "name": { "type": "string", - "description": "Webhook name. Max length: 128 chars.", + "description": "Rule name.", "x-example": "<NAME>" }, - "events": { - "type": "array", - "description": "Events list. Maximum of 100 events are allowed.", - "x-example": null, - "items": { - "type": "string" - } + "description": { + "type": "string", + "description": "Optional description for the rule.", + "default": "", + "x-example": "<DESCRIPTION>" + }, + "priority": { + "type": "integer", + "description": "Evaluation priority. Lower numbers run earlier.", + "default": 0, + "x-example": -100000, + "format": "int32" }, "enabled": { "type": "boolean", - "description": "Enable or disable a webhook.", + "description": "Set to false to create the rule in a disabled state.", "default": true, "x-example": false }, - "tls": { - "type": "boolean", - "description": "Certificate verification, false for disabled or true for enabled.", - "default": false, - "x-example": false - }, - "authUsername": { - "type": "string", - "description": "Webhook HTTP user. Max length: 256 chars.", - "default": "", - "x-example": "<AUTH_USERNAME>" - }, - "authPassword": { - "type": "string", - "description": "Webhook HTTP password. Max length: 256 chars.", - "default": "", - "x-example": "password", - "format": "password" - }, - "secret": { + "conditions": { "type": "string", - "description": "Webhook secret key. If not provided, a new key will be generated automatically. Key must be at least 8 characters long, and at max 256 characters.", - "x-example": "<SECRET>", - "x-nullable": true + "description": "Array of condition strings generated using the WAF Condition builder. Maximum of 100 conditions are allowed, each 4096 characters long.", + "default": [], + "x-example": null } }, "required": [ - "webhookId", - "url", - "name", - "events" + "ruleId", + "resourceType", + "name" ] } } @@ -91055,21 +90060,21 @@ } } }, - "\/webhooks\/{webhookId}": { - "get": { - "summary": "Get webhook", - "operationId": "webhooksGet", + "\/waf\/rules\/bypass\/{ruleId}": { + "patch": { + "summary": "Update a bypass WAF rule.", + "operationId": "wafUpdateBypassRule", "tags": [ - "webhooks" + "waf" ], - "description": "Get a webhook by its unique ID. This endpoint returns details about a specific webhook configured for a project. ", + "description": "Update a bypass WAF rule.\n", "responses": { "200": { - "description": "Webhook", + "description": "WafRuleBypass", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/webhook" + "$ref": "#\/components\/schemas\/wafRuleBypass" } } } @@ -91077,21 +90082,22 @@ }, "deprecated": false, "x-appwrite": { - "method": "get", - "group": null, + "method": "updateBypassRule", + "group": "rules", "cookies": false, "type": "", - "demo": "webhooks\/get.md", + "demo": "waf\/update-bypass-rule.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "webhooks.read", + "scope": "wafRules.write", "platforms": [ "console", "server" ], "packaging": false, "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/waf\/update-bypass-rule.md", "auth": { "Project": [] } @@ -91104,31 +90110,87 @@ ], "parameters": [ { - "name": "webhookId", - "description": "Webhook ID.", + "name": "ruleId", + "description": "Rule ID.", "required": true, "schema": { "type": "string", - "x-example": "<WEBHOOK_ID>" + "x-example": "<RULE_ID>" }, "in": "path" } - ] - }, - "put": { - "summary": "Update webhook", - "operationId": "webhooksUpdate", + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "resourceType": { + "type": "string", + "description": "Resource type the rule applies to.", + "x-example": "api", + "x-nullable": true + }, + "resourceId": { + "type": "string", + "description": "Resource identifier. Required for functions and sites.", + "x-example": "<RESOURCE_ID>", + "x-nullable": true + }, + "name": { + "type": "string", + "description": "Rule name.", + "x-example": "<NAME>", + "x-nullable": true + }, + "description": { + "type": "string", + "description": "Optional description for the rule.", + "x-example": "<DESCRIPTION>", + "x-nullable": true + }, + "priority": { + "type": "integer", + "description": "Evaluation priority. Lower numbers run earlier.", + "x-example": -100000, + "format": "int32", + "x-nullable": true + }, + "enabled": { + "type": "boolean", + "description": "Set to false to disable the rule.", + "x-example": false, + "x-nullable": true + }, + "conditions": { + "type": "string", + "description": "Array of condition strings generated using the WAF Condition builder. Maximum of 100 conditions are allowed, each 4096 characters long.", + "x-example": null, + "x-nullable": true + } + } + } + } + } + } + } + }, + "\/waf\/rules\/deny": { + "post": { + "summary": "Create a deny WAF rule.", + "operationId": "wafCreateDenyRule", "tags": [ - "webhooks" + "waf" ], - "description": "Update a webhook by its unique ID. Use this endpoint to update the URL, events, or status of an existing webhook.", + "description": "Create a deny WAF rule.\n", "responses": { - "200": { - "description": "Webhook", + "201": { + "description": "WafRuleDeny", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/webhook" + "$ref": "#\/components\/schemas\/wafRuleDeny" } } } @@ -91136,21 +90198,22 @@ }, "deprecated": false, "x-appwrite": { - "method": "update", - "group": null, + "method": "createDenyRule", + "group": "rules", "cookies": false, "type": "", - "demo": "webhooks\/update.md", + "demo": "waf\/create-deny-rule.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "webhooks.write", + "scope": "wafRules.write", "platforms": [ "console", "server" ], "packaging": false, "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/waf\/create-deny-rule.md", "auth": { "Project": [] } @@ -91161,107 +90224,111 @@ "Key": [] } ], - "parameters": [ - { - "name": "webhookId", - "description": "Webhook ID.", - "required": true, - "schema": { - "type": "string", - "x-example": "<WEBHOOK_ID>" - }, - "in": "path" - } - ], "requestBody": { "content": { "application\/json": { "schema": { "type": "object", "properties": { + "ruleId": { + "type": "string", + "description": "Rule ID. Choose a custom ID or pass `ID.unique()` to generate a unique one.", + "x-example": "<RULE_ID>", + "x-appwrite": { + "idGenerator": "ID.unique" + } + }, + "resourceType": { + "type": "string", + "description": "Resource type the rule applies to.", + "x-example": "api" + }, + "resourceId": { + "type": "string", + "description": "Resource identifier. Required for functions and sites.", + "x-example": "<RESOURCE_ID>", + "x-nullable": true + }, "name": { "type": "string", - "description": "Webhook name. Max length: 128 chars.", + "description": "Rule name.", "x-example": "<NAME>" }, - "url": { + "description": { "type": "string", - "description": "Webhook URL.", - "x-example": null + "description": "Optional description for the rule.", + "default": "", + "x-example": "<DESCRIPTION>" }, - "events": { - "type": "array", - "description": "Events list. Maximum of 100 events are allowed.", - "x-example": null, - "items": { - "type": "string" - } + "priority": { + "type": "integer", + "description": "Evaluation priority. Lower numbers run earlier.", + "default": 0, + "x-example": -100000, + "format": "int32" }, "enabled": { "type": "boolean", - "description": "Enable or disable a webhook.", + "description": "Set to false to create the rule in a disabled state.", "default": true, "x-example": false }, - "tls": { - "type": "boolean", - "description": "Certificate verification, false for disabled or true for enabled.", - "default": false, - "x-example": false - }, - "authUsername": { - "type": "string", - "description": "Webhook HTTP user. Max length: 256 chars.", - "default": "", - "x-example": "<AUTH_USERNAME>" - }, - "authPassword": { + "conditions": { "type": "string", - "description": "Webhook HTTP password. Max length: 256 chars.", - "default": "", - "x-example": "password", - "format": "password" + "description": "Array of condition strings generated using the WAF Condition builder. Maximum of 100 conditions are allowed, each 4096 characters long.", + "default": [], + "x-example": null } }, "required": [ - "name", - "url", - "events" + "ruleId", + "resourceType", + "name" ] } } } } - }, - "delete": { - "summary": "Delete webhook", - "operationId": "webhooksDelete", + } + }, + "\/waf\/rules\/deny\/{ruleId}": { + "patch": { + "summary": "Update a deny WAF rule.", + "operationId": "wafUpdateDenyRule", "tags": [ - "webhooks" + "waf" ], - "description": "Delete a webhook by its unique ID. Once deleted, the webhook will no longer receive project events. ", + "description": "Update a deny WAF rule.\n", "responses": { - "204": { - "description": "No content" + "200": { + "description": "WafRuleDeny", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/wafRuleDeny" + } + } + } } }, "deprecated": false, "x-appwrite": { - "method": "delete", - "group": null, + "method": "updateDenyRule", + "group": "rules", "cookies": false, "type": "", - "demo": "webhooks\/delete.md", + "demo": "waf\/update-deny-rule.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "webhooks.write", + "scope": "wafRules.write", "platforms": [ "console", "server" ], "packaging": false, "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/waf\/update-deny-rule.md", "auth": { "Project": [] } @@ -91274,33 +90341,216 @@ ], "parameters": [ { - "name": "webhookId", - "description": "Webhook ID.", + "name": "ruleId", + "description": "Rule ID.", "required": true, "schema": { "type": "string", - "x-example": "<WEBHOOK_ID>" + "x-example": "<RULE_ID>" }, "in": "path" } - ] + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "resourceType": { + "type": "string", + "description": "Resource type the rule applies to.", + "x-example": "api", + "x-nullable": true + }, + "resourceId": { + "type": "string", + "description": "Resource identifier. Required for functions and sites.", + "x-example": "<RESOURCE_ID>", + "x-nullable": true + }, + "name": { + "type": "string", + "description": "Rule name.", + "x-example": "<NAME>", + "x-nullable": true + }, + "description": { + "type": "string", + "description": "Optional description for the rule.", + "x-example": "<DESCRIPTION>", + "x-nullable": true + }, + "priority": { + "type": "integer", + "description": "Evaluation priority. Lower numbers run earlier.", + "x-example": -100000, + "format": "int32", + "x-nullable": true + }, + "enabled": { + "type": "boolean", + "description": "Set to false to disable the rule.", + "x-example": false, + "x-nullable": true + }, + "conditions": { + "type": "string", + "description": "Array of condition strings generated using the WAF Condition builder. Maximum of 100 conditions are allowed, each 4096 characters long.", + "x-example": null, + "x-nullable": true + } + } + } + } + } + } } }, - "\/webhooks\/{webhookId}\/secret": { + "\/waf\/rules\/rate-limit": { + "post": { + "summary": "Create a rate-limit WAF rule.", + "operationId": "wafCreateRateLimitRule", + "tags": [ + "waf" + ], + "description": "Create a rate limit WAF rule.\n", + "responses": { + "201": { + "description": "WafRuleRateLimit", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/wafRuleRateLimit" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "method": "createRateLimitRule", + "group": "rules", + "cookies": false, + "type": "", + "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, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/waf\/create-rate-limit-rule.md", + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "ruleId": { + "type": "string", + "description": "Rule ID. Choose a custom ID or pass `ID.unique()` to generate a unique one.", + "x-example": "<RULE_ID>", + "x-appwrite": { + "idGenerator": "ID.unique" + } + }, + "resourceType": { + "type": "string", + "description": "Resource type the rule applies to.", + "x-example": "api" + }, + "resourceId": { + "type": "string", + "description": "Resource identifier. Required for functions and sites.", + "x-example": "<RESOURCE_ID>", + "x-nullable": true + }, + "name": { + "type": "string", + "description": "Rule name.", + "x-example": "<NAME>" + }, + "description": { + "type": "string", + "description": "Optional description for the rule.", + "default": "", + "x-example": "<DESCRIPTION>" + }, + "limit": { + "type": "integer", + "description": "Maximum number of matching requests allowed in the configured interval.", + "x-example": 1, + "format": "int32" + }, + "interval": { + "type": "integer", + "description": "Interval in seconds used for rate limiting.", + "x-example": 1, + "format": "int32" + }, + "priority": { + "type": "integer", + "description": "Evaluation priority. Lower numbers run earlier.", + "default": 0, + "x-example": -100000, + "format": "int32" + }, + "enabled": { + "type": "boolean", + "description": "Set to false to create the rule in a disabled state.", + "default": true, + "x-example": false + }, + "conditions": { + "type": "string", + "description": "Array of condition strings generated using the WAF Condition builder. Maximum of 100 conditions are allowed, each 4096 characters long.", + "default": [], + "x-example": null + } + }, + "required": [ + "ruleId", + "resourceType", + "name", + "limit", + "interval" + ] + } + } + } + } + } + }, + "\/waf\/rules\/rate-limit\/{ruleId}": { "patch": { - "summary": "Update webhook secret key", - "operationId": "webhooksUpdateSecret", + "summary": "Update a rate-limit WAF rule.", + "operationId": "wafUpdateRateLimitRule", "tags": [ - "webhooks" + "waf" ], - "description": "Update the webhook signing key. This endpoint can be used to regenerate the signing key used to sign and validate payload deliveries for a specific webhook.", + "description": "Update a rate limit WAF rule.\n", "responses": { "200": { - "description": "Webhook", + "description": "WafRuleRateLimit", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/webhook" + "$ref": "#\/components\/schemas\/wafRuleRateLimit" } } } @@ -91308,21 +90558,22 @@ }, "deprecated": false, "x-appwrite": { - "method": "updateSecret", - "group": null, + "method": "updateRateLimitRule", + "group": "rules", "cookies": false, "type": "", - "demo": "webhooks\/update-secret.md", + "demo": "waf\/update-rate-limit-rule.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "webhooks.write", + "scope": "wafRules.write", "platforms": [ "console", "server" ], "packaging": false, "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/waf\/update-rate-limit-rule.md", "auth": { "Project": [] } @@ -91335,12 +90586,12 @@ ], "parameters": [ { - "name": "webhookId", - "description": "Webhook ID.", + "name": "ruleId", + "description": "Rule ID.", "required": true, "schema": { "type": "string", - "x-example": "<WEBHOOK_ID>" + "x-example": "<RULE_ID>" }, "in": "path" } @@ -91351,10 +90602,61 @@ "schema": { "type": "object", "properties": { - "secret": { + "resourceType": { "type": "string", - "description": "Webhook secret key. If not provided, a new key will be generated automatically. Key must be at least 8 characters long, and at max 256 characters.", - "x-example": "<SECRET>", + "description": "Resource type the rule applies to.", + "x-example": "api", + "x-nullable": true + }, + "resourceId": { + "type": "string", + "description": "Resource identifier. Required for functions and sites.", + "x-example": "<RESOURCE_ID>", + "x-nullable": true + }, + "name": { + "type": "string", + "description": "Rule name.", + "x-example": "<NAME>", + "x-nullable": true + }, + "description": { + "type": "string", + "description": "Optional description for the rule.", + "x-example": "<DESCRIPTION>", + "x-nullable": true + }, + "limit": { + "type": "integer", + "description": "Maximum number of matching requests allowed in the configured interval.", + "x-example": 1, + "format": "int32", + "x-nullable": true + }, + "interval": { + "type": "integer", + "description": "Interval in seconds used for rate limiting.", + "x-example": 1, + "format": "int32", + "x-nullable": true + }, + "priority": { + "type": "integer", + "description": "Evaluation priority. Lower numbers run earlier.", + "x-example": -100000, + "format": "int32", + "x-nullable": true + }, + "enabled": { + "type": "boolean", + "description": "Set to false to disable the rule.", + "x-example": false, + "x-nullable": true + }, + "conditions": { + "type": "string", + "description": "Array of condition strings generated using the WAF Condition builder. Maximum of 100 conditions are allowed, each 4096 characters long.", + "x-example": null, "x-nullable": true } } @@ -91363,1360 +90665,1572 @@ } } } - } - }, - "tags": [ - { - "name": "account", - "description": "The Account service allows you to authenticate and manage a user account." - }, - { - "name": "avatars", - "description": "The Avatars service aims to help you complete everyday tasks related to your app image, icons, and avatars." - }, - { - "name": "databases", - "description": "The Databases service allows you to create structured collections of documents, query and filter lists of documents" - }, - { - "name": "tablesdb", - "description": "The TablesDB service allows you to create structured tables of columns, query and filter lists of rows" - }, - { - "name": "locale", - "description": "The Locale service allows you to customize your app based on your users' location." - }, - { - "name": "health", - "description": "The Health service allows you to both validate and monitor your Appwrite server's health." - }, - { - "name": "projects", - "description": "The Project service allows you to manage all the projects in your Appwrite server." - }, - { - "name": "project", - "description": "The Project service allows you to manage all the projects in your Appwrite server." - }, - { - "name": "storage", - "description": "The Storage service allows you to manage your project files." - }, - { - "name": "teams", - "description": "The Teams service allows you to group users of your project and to enable them to share read and write access to your project resources" - }, - { - "name": "users", - "description": "The Users service allows you to manage your project users." - }, - { - "name": "sites", - "description": "The Sites Service allows you view, create and manage your web applications." - }, - { - "name": "functions", - "description": "The Functions Service allows you view, create and manage your Cloud Functions." - }, - { - "name": "proxy", - "description": "The Proxy Service allows you to configure actions for your domains beyond DNS configuration." - }, - { - "name": "graphql", - "description": "The GraphQL API allows you to query and mutate your Appwrite server using GraphQL." - }, - { - "name": "console", - "description": "The Console service allows you to interact with console relevant information." - }, - { - "name": "organization", - "description": "The Organization service allows you to manage organization-level projects." }, - { - "name": "migrations", - "description": "The Migrations service allows you to migrate third-party data to your Appwrite project." - }, - { - "name": "messaging", - "description": "The Messaging service allows you to send messages to any provider type (SMTP, push notification, SMS, etc.)." - }, - { - "name": "notifications", - "description": "The Notifications service allows you to read and manage your Appwrite Console notifications." - }, - { - "name": "advisor", - "description": "The Advisor service surfaces actionable reports about your project resources, with CTA descriptors for one-click remediation in the console." - }, - { - "name": "oauth2", - "description": "The OAuth2 service allows you to authorize apps and issue standards-based OAuth2 and OpenID Connect tokens." - } - ], - "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.", - "x-example": 5, - "format": "int32" - }, - "rows": { - "type": "array", - "description": "List of rows.", - "items": { - "$ref": "#\/components\/schemas\/row" - }, - "x-example": "" + "\/waf\/rules\/redirect": { + "post": { + "summary": "Create a redirect WAF rule.", + "operationId": "wafCreateRedirectRule", + "tags": [ + "waf" + ], + "description": "Create a redirect WAF rule.\n", + "responses": { + "201": { + "description": "WafRuleRedirect", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/wafRuleRedirect" + } + } + } } }, - "required": [ - "total", - "rows" - ], - "example": { - "total": 5, - "rows": "" - } - }, - "documentList": { - "description": "Documents List", - "type": "object", - "properties": { - "total": { - "type": "integer", - "description": "Total number of documents that matched your query.", - "x-example": 5, - "format": "int32" - }, - "documents": { - "type": "array", - "description": "List of documents.", - "items": { - "$ref": "#\/components\/schemas\/document" - }, - "x-example": "" + "deprecated": false, + "x-appwrite": { + "method": "createRedirectRule", + "group": "rules", + "cookies": false, + "type": "", + "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, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/waf\/create-redirect-rule.md", + "auth": { + "Project": [] } }, - "required": [ - "total", - "documents" + "security": [ + { + "Project": [], + "Key": [] + } ], - "example": { - "total": 5, - "documents": "" + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "ruleId": { + "type": "string", + "description": "Rule ID. Choose a custom ID or pass `ID.unique()` to generate a unique one.", + "x-example": "<RULE_ID>", + "x-appwrite": { + "idGenerator": "ID.unique" + } + }, + "resourceType": { + "type": "string", + "description": "Resource type the rule applies to.", + "x-example": "api" + }, + "resourceId": { + "type": "string", + "description": "Resource identifier. Required for functions and sites.", + "x-example": "<RESOURCE_ID>", + "x-nullable": true + }, + "name": { + "type": "string", + "description": "Rule name.", + "x-example": "<NAME>" + }, + "description": { + "type": "string", + "description": "Optional description for the rule.", + "default": "", + "x-example": "<DESCRIPTION>" + }, + "location": { + "type": "string", + "description": "Location used for redirect responses.", + "x-example": "<LOCATION>" + }, + "statusCode": { + "type": "integer", + "description": "Integer status code used for redirect responses.", + "x-example": 300, + "format": "int32" + }, + "priority": { + "type": "integer", + "description": "Evaluation priority. Lower numbers run earlier.", + "default": 0, + "x-example": -100000, + "format": "int32" + }, + "enabled": { + "type": "boolean", + "description": "Set to false to create the rule in a disabled state.", + "default": true, + "x-example": false + }, + "conditions": { + "type": "string", + "description": "Array of condition strings generated using the WAF Condition builder. Maximum of 100 conditions are allowed, each 4096 characters long.", + "default": [], + "x-example": null + } + }, + "required": [ + "ruleId", + "resourceType", + "name", + "location", + "statusCode" + ] + } + } + } } - }, - "presenceList": { - "description": "Presences List", - "type": "object", - "properties": { - "total": { - "type": "integer", - "description": "Total number of presences that matched your query.", - "x-example": 5, - "format": "int32" - }, - "presences": { - "type": "array", - "description": "List of presences.", - "items": { - "$ref": "#\/components\/schemas\/presence" - }, - "x-example": "" + } + }, + "\/waf\/rules\/redirect\/{ruleId}": { + "patch": { + "summary": "Update a redirect WAF rule.", + "operationId": "wafUpdateRedirectRule", + "tags": [ + "waf" + ], + "description": "Update a redirect WAF rule.\n", + "responses": { + "200": { + "description": "WafRuleRedirect", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/wafRuleRedirect" + } + } + } } }, - "required": [ - "total", - "presences" + "deprecated": false, + "x-appwrite": { + "method": "updateRedirectRule", + "group": "rules", + "cookies": false, + "type": "", + "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, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/waf\/update-redirect-rule.md", + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } ], - "example": { - "total": 5, - "presences": "" - } - }, - "tableList": { - "description": "Tables List", - "type": "object", - "properties": { - "total": { - "type": "integer", - "description": "Total number of tables that matched your query.", - "x-example": 5, - "format": "int32" - }, - "tables": { - "type": "array", - "description": "List of tables.", - "items": { - "$ref": "#\/components\/schemas\/table" + "parameters": [ + { + "name": "ruleId", + "description": "Rule ID.", + "required": true, + "schema": { + "type": "string", + "x-example": "<RULE_ID>" }, - "x-example": "" + "in": "path" } - }, - "required": [ - "total", - "tables" ], - "example": { - "total": 5, - "tables": "" + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "resourceType": { + "type": "string", + "description": "Resource type the rule applies to.", + "x-example": "api", + "x-nullable": true + }, + "resourceId": { + "type": "string", + "description": "Resource identifier. Required for functions and sites.", + "x-example": "<RESOURCE_ID>", + "x-nullable": true + }, + "name": { + "type": "string", + "description": "Rule name.", + "x-example": "<NAME>", + "x-nullable": true + }, + "description": { + "type": "string", + "description": "Optional description for the rule.", + "x-example": "<DESCRIPTION>", + "x-nullable": true + }, + "location": { + "type": "string", + "description": "Location used for redirect responses.", + "x-example": "<LOCATION>", + "x-nullable": true + }, + "statusCode": { + "type": "integer", + "description": "Integer status code used for redirect responses.", + "x-example": 300, + "format": "int32", + "x-nullable": true + }, + "priority": { + "type": "integer", + "description": "Evaluation priority. Lower numbers run earlier.", + "x-example": -100000, + "format": "int32", + "x-nullable": true + }, + "enabled": { + "type": "boolean", + "description": "Set to false to disable the rule.", + "x-example": false, + "x-nullable": true + }, + "conditions": { + "type": "string", + "description": "Array of condition strings generated using the WAF Condition builder. Maximum of 100 conditions are allowed, each 4096 characters long.", + "x-example": null, + "x-nullable": true + } + } + } + } + } } - }, - "collectionList": { - "description": "Collections List", - "type": "object", - "properties": { - "total": { - "type": "integer", - "description": "Total number of collections that matched your query.", - "x-example": 5, - "format": "int32" - }, - "collections": { - "type": "array", - "description": "List of collections.", - "items": { - "$ref": "#\/components\/schemas\/collection" - }, - "x-example": "" + } + }, + "\/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" + } + } + } } }, - "required": [ - "total", - "collections" + "deprecated": false, + "x-appwrite": { + "method": "getRule", + "group": "rules", + "cookies": false, + "type": "", + "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, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/waf\/get-rule.md", + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } ], - "example": { - "total": 5, - "collections": "" - } - }, - "databaseList": { - "description": "Databases List", - "type": "object", - "properties": { - "total": { - "type": "integer", - "description": "Total number of databases that matched your query.", - "x-example": 5, - "format": "int32" - }, - "databases": { - "type": "array", - "description": "List of databases.", - "items": { - "$ref": "#\/components\/schemas\/database" + "parameters": [ + { + "name": "ruleId", + "description": "Rule ID.", + "required": true, + "schema": { + "type": "string", + "x-example": "<RULE_ID>" }, - "x-example": "" + "in": "path" + } + ] + }, + "delete": { + "summary": "Delete a WAF rule.", + "operationId": "wafDeleteRule", + "tags": [ + "waf" + ], + "description": "Delete a WAF rule.\n", + "responses": { + "204": { + "description": "No content" } }, - "required": [ - "total", - "databases" + "deprecated": false, + "x-appwrite": { + "method": "deleteRule", + "group": "rules", + "cookies": false, + "type": "", + "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, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/waf\/delete-rule.md", + "produces": [ + "application\/json" + ], + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } ], - "example": { - "total": 5, - "databases": "" - } - }, - "indexList": { - "description": "Indexes List", - "type": "object", - "properties": { - "total": { - "type": "integer", - "description": "Total number of indexes that matched your query.", - "x-example": 5, - "format": "int32" - }, - "indexes": { - "type": "array", - "description": "List of indexes.", - "items": { - "$ref": "#\/components\/schemas\/index" + "parameters": [ + { + "name": "ruleId", + "description": "Rule ID.", + "required": true, + "schema": { + "type": "string", + "x-example": "<RULE_ID>" }, - "x-example": "" + "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" + } + } + } } }, - "required": [ - "total", - "indexes" + "deprecated": false, + "x-appwrite": { + "method": "list", + "group": null, + "cookies": false, + "type": "", + "demo": "webhooks\/list.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "webhooks.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } ], - "example": { - "total": 5, - "indexes": "" - } - }, - "columnIndexList": { - "description": "Column Indexes List", - "type": "object", - "properties": { - "total": { - "type": "integer", - "description": "Total number of indexes that matched your query.", - "x-example": 5, - "format": "int32" + "parameters": [ + { + "name": "queries", + "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more 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" }, - "indexes": { - "type": "array", - "description": "List of indexes.", - "items": { - "$ref": "#\/components\/schemas\/columnIndex" + { + "name": "total", + "description": "When set to false, the total count returned will be 0 and will not be calculated.", + "required": false, + "schema": { + "type": "boolean", + "x-example": false, + "default": true }, - "x-example": "" + "in": "query" + } + ] + }, + "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" + } + } + } } }, - "required": [ - "total", - "indexes" + "deprecated": false, + "x-appwrite": { + "method": "create", + "group": null, + "cookies": false, + "type": "", + "demo": "webhooks\/create.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "webhooks.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } ], - "example": { - "total": 5, - "indexes": "" - } - }, - "userList": { - "description": "Users List", - "type": "object", - "properties": { - "total": { - "type": "integer", - "description": "Total number of users that matched your query.", - "x-example": 5, - "format": "int32" - }, - "users": { - "type": "array", - "description": "List of users.", - "items": { - "$ref": "#\/components\/schemas\/user" - }, - "x-example": "" + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "webhookId": { + "type": "string", + "description": "Webhook ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.", + "x-example": "<WEBHOOK_ID>", + "x-appwrite": { + "idGenerator": "ID.unique" + } + }, + "url": { + "type": "string", + "description": "Webhook URL.", + "x-example": null + }, + "name": { + "type": "string", + "description": "Webhook name. Max length: 128 chars.", + "x-example": "<NAME>" + }, + "events": { + "type": "array", + "description": "Events list. Maximum of 100 events are allowed.", + "x-example": null, + "items": { + "type": "string" + } + }, + "enabled": { + "type": "boolean", + "description": "Enable or disable a webhook.", + "default": true, + "x-example": false + }, + "tls": { + "type": "boolean", + "description": "Certificate verification, false for disabled or true for enabled.", + "default": false, + "x-example": false + }, + "authUsername": { + "type": "string", + "description": "Webhook HTTP user. Max length: 256 chars.", + "default": "", + "x-example": "<AUTH_USERNAME>" + }, + "authPassword": { + "type": "string", + "description": "Webhook HTTP password. Max length: 256 chars.", + "default": "", + "x-example": "password", + "format": "password" + }, + "secret": { + "type": "string", + "description": "Webhook secret key. If not provided, a new key will be generated automatically. Key must be at least 8 characters long, and at max 256 characters.", + "x-example": "<SECRET>", + "x-nullable": true + } + }, + "required": [ + "webhookId", + "url", + "name", + "events" + ] + } + } } - }, - "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.", - "x-example": 5, - "format": "int32" - }, - "sessions": { - "type": "array", - "description": "List of sessions.", - "items": { - "$ref": "#\/components\/schemas\/session" - }, - "x-example": "" - } - }, - "required": [ - "total", - "sessions" + } + }, + "\/webhooks\/{webhookId}": { + "get": { + "summary": "Get webhook", + "operationId": "webhooksGet", + "tags": [ + "webhooks" ], - "example": { - "total": 5, - "sessions": "" - } - }, - "identityList": { - "description": "Identities List", - "type": "object", - "properties": { - "total": { - "type": "integer", - "description": "Total number of identities that matched your query.", - "x-example": 5, - "format": "int32" - }, - "identities": { - "type": "array", - "description": "List of identities.", - "items": { - "$ref": "#\/components\/schemas\/identity" - }, - "x-example": "" + "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" + } + } + } } }, - "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.", - "x-example": 5, - "format": "int32" - }, - "notifications": { - "type": "array", - "description": "List of notifications.", - "items": { - "$ref": "#\/components\/schemas\/notification" - }, - "x-example": "" + "deprecated": false, + "x-appwrite": { + "method": "get", + "group": null, + "cookies": false, + "type": "", + "demo": "webhooks\/get.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "webhooks.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] } }, - "required": [ - "total", - "notifications" + "security": [ + { + "Project": [], + "Key": [] + } ], - "example": { - "total": 5, - "notifications": "" - } - }, - "logList": { - "description": "Logs List", - "type": "object", - "properties": { - "total": { - "type": "integer", - "description": "Total number of logs that matched your query.", - "x-example": 5, - "format": "int32" - }, - "logs": { - "type": "array", - "description": "List of logs.", - "items": { - "$ref": "#\/components\/schemas\/log" + "parameters": [ + { + "name": "webhookId", + "description": "Webhook ID.", + "required": true, + "schema": { + "type": "string", + "x-example": "<WEBHOOK_ID>" }, - "x-example": "" + "in": "path" } - }, - "required": [ - "total", - "logs" - ], - "example": { - "total": 5, - "logs": "" - } + ] }, - "fileList": { - "description": "Files List", - "type": "object", - "properties": { - "total": { - "type": "integer", - "description": "Total number of files that matched your query.", - "x-example": 5, - "format": "int32" - }, - "files": { - "type": "array", - "description": "List of files.", - "items": { - "$ref": "#\/components\/schemas\/file" - }, - "x-example": "" + "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" + } + } + } } }, - "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.", - "x-example": 5, - "format": "int32" - }, - "buckets": { - "type": "array", - "description": "List of buckets.", - "items": { - "$ref": "#\/components\/schemas\/bucket" - }, - "x-example": "" + "deprecated": false, + "x-appwrite": { + "method": "update", + "group": null, + "cookies": false, + "type": "", + "demo": "webhooks\/update.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "webhooks.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] } }, - "required": [ - "total", - "buckets" + "security": [ + { + "Project": [], + "Key": [] + } ], - "example": { - "total": 5, - "buckets": "" - } - }, - "resourceTokenList": { - "description": "Resource Tokens List", - "type": "object", - "properties": { - "total": { - "type": "integer", - "description": "Total number of tokens that matched your query.", - "x-example": 5, - "format": "int32" - }, - "tokens": { - "type": "array", - "description": "List of tokens.", - "items": { - "$ref": "#\/components\/schemas\/resourceToken" + "parameters": [ + { + "name": "webhookId", + "description": "Webhook ID.", + "required": true, + "schema": { + "type": "string", + "x-example": "<WEBHOOK_ID>" }, - "x-example": "" + "in": "path" } - }, - "required": [ - "total", - "tokens" ], - "example": { - "total": 5, - "tokens": "" + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "Webhook name. Max length: 128 chars.", + "x-example": "<NAME>" + }, + "url": { + "type": "string", + "description": "Webhook URL.", + "x-example": null + }, + "events": { + "type": "array", + "description": "Events list. Maximum of 100 events are allowed.", + "x-example": null, + "items": { + "type": "string" + } + }, + "enabled": { + "type": "boolean", + "description": "Enable or disable a webhook.", + "default": true, + "x-example": false + }, + "tls": { + "type": "boolean", + "description": "Certificate verification, false for disabled or true for enabled.", + "default": false, + "x-example": false + }, + "authUsername": { + "type": "string", + "description": "Webhook HTTP user. Max length: 256 chars.", + "default": "", + "x-example": "<AUTH_USERNAME>" + }, + "authPassword": { + "type": "string", + "description": "Webhook HTTP password. Max length: 256 chars.", + "default": "", + "x-example": "password", + "format": "password" + } + }, + "required": [ + "name", + "url", + "events" + ] + } + } + } } }, - "teamList": { - "description": "Teams List", - "type": "object", - "properties": { - "total": { - "type": "integer", - "description": "Total number of teams that matched your query.", - "x-example": 5, - "format": "int32" - }, - "teams": { - "type": "array", - "description": "List of teams.", - "items": { - "$ref": "#\/components\/schemas\/team" - }, - "x-example": "" + "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" } }, - "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.", - "x-example": 5, - "format": "int32" - }, - "memberships": { - "type": "array", - "description": "List of memberships.", - "items": { - "$ref": "#\/components\/schemas\/membership" - }, - "x-example": "" + "deprecated": false, + "x-appwrite": { + "method": "delete", + "group": null, + "cookies": false, + "type": "", + "demo": "webhooks\/delete.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "webhooks.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] } }, - "required": [ - "total", - "memberships" + "security": [ + { + "Project": [], + "Key": [] + } ], - "example": { - "total": 5, - "memberships": "" - } - }, - "siteList": { - "description": "Sites List", - "type": "object", - "properties": { - "total": { - "type": "integer", - "description": "Total number of sites that matched your query.", - "x-example": 5, - "format": "int32" - }, - "sites": { - "type": "array", - "description": "List of sites.", - "items": { - "$ref": "#\/components\/schemas\/site" + "parameters": [ + { + "name": "webhookId", + "description": "Webhook ID.", + "required": true, + "schema": { + "type": "string", + "x-example": "<WEBHOOK_ID>" }, - "x-example": "" + "in": "path" } - }, - "required": [ - "total", - "sites" + ] + } + }, + "\/webhooks\/{webhookId}\/secret": { + "patch": { + "summary": "Update webhook secret key", + "operationId": "webhooksUpdateSecret", + "tags": [ + "webhooks" ], - "example": { - "total": 5, - "sites": "" - } - }, - "templateSiteList": { - "description": "Site Templates List", - "type": "object", - "properties": { - "total": { - "type": "integer", - "description": "Total number of templates that matched your query.", - "x-example": 5, - "format": "int32" - }, - "templates": { - "type": "array", - "description": "List of templates.", - "items": { - "$ref": "#\/components\/schemas\/templateSite" - }, - "x-example": "" + "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" + } + } + } } }, - "required": [ - "total", - "templates" + "deprecated": false, + "x-appwrite": { + "method": "updateSecret", + "group": null, + "cookies": false, + "type": "", + "demo": "webhooks\/update-secret.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "webhooks.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } ], - "example": { - "total": 5, - "templates": "" - } - }, - "functionList": { - "description": "Functions List", - "type": "object", - "properties": { - "total": { - "type": "integer", - "description": "Total number of functions that matched your query.", - "x-example": 5, - "format": "int32" - }, - "functions": { - "type": "array", - "description": "List of functions.", - "items": { - "$ref": "#\/components\/schemas\/function" + "parameters": [ + { + "name": "webhookId", + "description": "Webhook ID.", + "required": true, + "schema": { + "type": "string", + "x-example": "<WEBHOOK_ID>" }, - "x-example": "" + "in": "path" } - }, - "required": [ - "total", - "functions" ], - "example": { - "total": 5, - "functions": "" + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "secret": { + "type": "string", + "description": "Webhook secret key. If not provided, a new key will be generated automatically. Key must be at least 8 characters long, and at max 256 characters.", + "x-example": "<SECRET>", + "x-nullable": true + } + } + } + } + } } + } + } + }, + "tags": [ + { + "name": "account", + "description": "The Account service allows you to authenticate and manage a user account." + }, + { + "name": "avatars", + "description": "The Avatars service aims to help you complete everyday tasks related to your app image, icons, and avatars." + }, + { + "name": "databases", + "description": "The Databases service allows you to create structured collections of documents, query and filter lists of documents" + }, + { + "name": "tablesdb", + "description": "The TablesDB service allows you to create structured tables of columns, query and filter lists of rows" + }, + { + "name": "locale", + "description": "The Locale service allows you to customize your app based on your users' location." + }, + { + "name": "projects", + "description": "The Project service allows you to manage all the projects in your Appwrite server." + }, + { + "name": "project", + "description": "The Project service allows you to manage all the projects in your Appwrite server." + }, + { + "name": "storage", + "description": "The Storage service allows you to manage your project files." + }, + { + "name": "teams", + "description": "The Teams service allows you to group users of your project and to enable them to share read and write access to your project resources" + }, + { + "name": "users", + "description": "The Users service allows you to manage your project users." + }, + { + "name": "sites", + "description": "The Sites Service allows you view, create and manage your web applications." + }, + { + "name": "functions", + "description": "The Functions Service allows you view, create and manage your Cloud Functions." + }, + { + "name": "proxy", + "description": "The Proxy Service allows you to configure actions for your domains beyond DNS configuration." + }, + { + "name": "graphql", + "description": "The GraphQL API allows you to query and mutate your Appwrite server using GraphQL." + }, + { + "name": "console", + "description": "The Console service allows you to interact with console relevant information." + }, + { + "name": "organization", + "description": "The Organization service allows you to manage organization-level projects." + }, + { + "name": "migrations", + "description": "The Migrations service allows you to migrate third-party data to your Appwrite project." + }, + { + "name": "messaging", + "description": "The Messaging service allows you to send messages to any provider type (SMTP, push notification, SMS, etc.)." + }, + { + "name": "notifications", + "description": "The Notifications service allows you to read and manage your Appwrite Console notifications." + }, + { + "name": "advisor", + "description": "The Advisor service surfaces actionable reports about your project resources, with CTA descriptors for one-click remediation in the console." + }, + { + "name": "oauth2", + "description": "The OAuth2 service allows you to authorize apps and issue standards-based OAuth2 and OpenID Connect tokens." + } + ], + "components": { + "schemas": { + "any": { + "description": "Any", + "type": "object", + "additionalProperties": true, + "example": [] }, - "templateFunctionList": { - "description": "Function Templates List", + "rowList": { + "description": "Rows List", "type": "object", "properties": { "total": { "type": "integer", - "description": "Total number of templates that matched your query.", + "description": "Total number of rows that matched your query.", "x-example": 5, "format": "int32" }, - "templates": { + "rows": { "type": "array", - "description": "List of templates.", + "description": "List of rows.", "items": { - "$ref": "#\/components\/schemas\/templateFunction" + "$ref": "#\/components\/schemas\/row" }, "x-example": "" } }, "required": [ "total", - "templates" + "rows" ], "example": { "total": 5, - "templates": "" + "rows": "" } }, - "installationList": { - "description": "Installations List", + "documentList": { + "description": "Documents List", "type": "object", "properties": { "total": { "type": "integer", - "description": "Total number of installations that matched your query.", + "description": "Total number of documents that matched your query.", "x-example": 5, "format": "int32" }, - "installations": { + "documents": { "type": "array", - "description": "List of installations.", + "description": "List of documents.", "items": { - "$ref": "#\/components\/schemas\/installation" + "$ref": "#\/components\/schemas\/document" }, "x-example": "" } }, "required": [ "total", - "installations" + "documents" ], "example": { "total": 5, - "installations": "" + "documents": "" } }, - "providerRepositoryFrameworkList": { - "description": "Framework Provider Repositories List", + "presenceList": { + "description": "Presences List", "type": "object", "properties": { "total": { "type": "integer", - "description": "Total number of frameworkProviderRepositories that matched your query.", + "description": "Total number of presences that matched your query.", "x-example": 5, "format": "int32" }, - "frameworkProviderRepositories": { + "presences": { "type": "array", - "description": "List of frameworkProviderRepositories.", + "description": "List of presences.", "items": { - "$ref": "#\/components\/schemas\/providerRepositoryFramework" + "$ref": "#\/components\/schemas\/presence" }, "x-example": "" - }, - "type": { - "type": "string", - "description": "Provider repository list type.", - "x-example": "framework" } }, "required": [ "total", - "frameworkProviderRepositories", - "type" + "presences" ], "example": { "total": 5, - "frameworkProviderRepositories": "", - "type": "framework" + "presences": "" } }, - "providerRepositoryRuntimeList": { - "description": "Runtime Provider Repositories List", + "tableList": { + "description": "Tables List", "type": "object", "properties": { "total": { "type": "integer", - "description": "Total number of runtimeProviderRepositories that matched your query.", + "description": "Total number of tables that matched your query.", "x-example": 5, "format": "int32" }, - "runtimeProviderRepositories": { + "tables": { "type": "array", - "description": "List of runtimeProviderRepositories.", + "description": "List of tables.", "items": { - "$ref": "#\/components\/schemas\/providerRepositoryRuntime" + "$ref": "#\/components\/schemas\/table" }, "x-example": "" - }, - "type": { - "type": "string", - "description": "Provider repository list type.", - "x-example": "runtime" } }, "required": [ "total", - "runtimeProviderRepositories", - "type" + "tables" ], "example": { "total": 5, - "runtimeProviderRepositories": "", - "type": "runtime" + "tables": "" } }, - "branchList": { - "description": "Branches List", + "collectionList": { + "description": "Collections List", "type": "object", "properties": { "total": { "type": "integer", - "description": "Total number of branches that matched your query.", + "description": "Total number of collections that matched your query.", "x-example": 5, "format": "int32" }, - "branches": { + "collections": { "type": "array", - "description": "List of branches.", + "description": "List of collections.", "items": { - "$ref": "#\/components\/schemas\/branch" + "$ref": "#\/components\/schemas\/collection" }, "x-example": "" } }, "required": [ "total", - "branches" + "collections" ], "example": { "total": 5, - "branches": "" + "collections": "" } }, - "frameworkList": { - "description": "Frameworks List", + "databaseList": { + "description": "Databases List", "type": "object", "properties": { "total": { "type": "integer", - "description": "Total number of frameworks that matched your query.", + "description": "Total number of databases that matched your query.", "x-example": 5, "format": "int32" }, - "frameworks": { + "databases": { "type": "array", - "description": "List of frameworks.", + "description": "List of databases.", "items": { - "$ref": "#\/components\/schemas\/framework" + "$ref": "#\/components\/schemas\/database" }, "x-example": "" } }, "required": [ "total", - "frameworks" + "databases" ], "example": { "total": 5, - "frameworks": "" + "databases": "" } }, - "runtimeList": { - "description": "Runtimes List", + "indexList": { + "description": "Indexes List", "type": "object", "properties": { "total": { "type": "integer", - "description": "Total number of runtimes that matched your query.", + "description": "Total number of indexes that matched your query.", "x-example": 5, "format": "int32" }, - "runtimes": { + "indexes": { "type": "array", - "description": "List of runtimes.", + "description": "List of indexes.", "items": { - "$ref": "#\/components\/schemas\/runtime" + "$ref": "#\/components\/schemas\/index" }, "x-example": "" } }, "required": [ "total", - "runtimes" + "indexes" ], "example": { "total": 5, - "runtimes": "" + "indexes": "" } }, - "deploymentList": { - "description": "Deployments List", + "columnIndexList": { + "description": "Column Indexes List", "type": "object", "properties": { "total": { "type": "integer", - "description": "Total number of deployments that matched your query.", + "description": "Total number of indexes that matched your query.", "x-example": 5, "format": "int32" }, - "deployments": { + "indexes": { "type": "array", - "description": "List of deployments.", + "description": "List of indexes.", "items": { - "$ref": "#\/components\/schemas\/deployment" + "$ref": "#\/components\/schemas\/columnIndex" }, "x-example": "" } }, "required": [ "total", - "deployments" + "indexes" ], "example": { "total": 5, - "deployments": "" + "indexes": "" } }, - "executionList": { - "description": "Executions List", + "userList": { + "description": "Users List", "type": "object", "properties": { "total": { "type": "integer", - "description": "Total number of executions that matched your query.", + "description": "Total number of users that matched your query.", "x-example": 5, "format": "int32" }, - "executions": { + "users": { "type": "array", - "description": "List of executions.", + "description": "List of users.", "items": { - "$ref": "#\/components\/schemas\/execution" + "$ref": "#\/components\/schemas\/user" }, "x-example": "" } }, "required": [ "total", - "executions" + "users" ], "example": { "total": 5, - "executions": "" + "users": "" } }, - "projectList": { - "description": "Projects List", + "sessionList": { + "description": "Sessions List", "type": "object", "properties": { "total": { "type": "integer", - "description": "Total number of projects that matched your query.", + "description": "Total number of sessions that matched your query.", "x-example": 5, "format": "int32" }, - "projects": { + "sessions": { "type": "array", - "description": "List of projects.", + "description": "List of sessions.", "items": { - "$ref": "#\/components\/schemas\/project" + "$ref": "#\/components\/schemas\/session" }, "x-example": "" } }, "required": [ "total", - "projects" + "sessions" ], "example": { "total": 5, - "projects": "" + "sessions": "" } }, - "webhookList": { - "description": "Webhooks List", + "identityList": { + "description": "Identities List", "type": "object", "properties": { "total": { "type": "integer", - "description": "Total number of webhooks that matched your query.", + "description": "Total number of identities that matched your query.", "x-example": 5, "format": "int32" }, - "webhooks": { + "identities": { "type": "array", - "description": "List of webhooks.", + "description": "List of identities.", "items": { - "$ref": "#\/components\/schemas\/webhook" + "$ref": "#\/components\/schemas\/identity" }, "x-example": "" } }, "required": [ "total", - "webhooks" + "identities" ], "example": { "total": 5, - "webhooks": "" + "identities": "" } }, - "keyList": { - "description": "API Keys List", + "notificationList": { + "description": "Notifications List", "type": "object", "properties": { "total": { "type": "integer", - "description": "Total number of keys that matched your query.", + "description": "Total number of notifications that matched your query.", "x-example": 5, "format": "int32" }, - "keys": { + "notifications": { "type": "array", - "description": "List of keys.", + "description": "List of notifications.", "items": { - "$ref": "#\/components\/schemas\/key" + "$ref": "#\/components\/schemas\/notification" }, "x-example": "" } }, "required": [ "total", - "keys" + "notifications" ], "example": { "total": 5, - "keys": "" + "notifications": "" } }, - "devKeyList": { - "description": "Dev Keys List", + "logList": { + "description": "Logs List", "type": "object", "properties": { "total": { "type": "integer", - "description": "Total number of devKeys that matched your query.", + "description": "Total number of logs that matched your query.", "x-example": 5, "format": "int32" }, - "devKeys": { + "logs": { "type": "array", - "description": "List of devKeys.", + "description": "List of logs.", "items": { - "$ref": "#\/components\/schemas\/devKey" + "$ref": "#\/components\/schemas\/log" }, "x-example": "" } }, "required": [ "total", - "devKeys" + "logs" ], "example": { "total": 5, - "devKeys": "" + "logs": "" } }, - "countryList": { - "description": "Countries List", + "fileList": { + "description": "Files List", "type": "object", "properties": { "total": { "type": "integer", - "description": "Total number of countries that matched your query.", + "description": "Total number of files that matched your query.", "x-example": 5, "format": "int32" }, - "countries": { + "files": { "type": "array", - "description": "List of countries.", + "description": "List of files.", "items": { - "$ref": "#\/components\/schemas\/country" + "$ref": "#\/components\/schemas\/file" }, "x-example": "" } }, "required": [ "total", - "countries" + "files" ], "example": { "total": 5, - "countries": "" + "files": "" } }, - "continentList": { - "description": "Continents List", + "bucketList": { + "description": "Buckets List", "type": "object", "properties": { "total": { "type": "integer", - "description": "Total number of continents that matched your query.", + "description": "Total number of buckets that matched your query.", "x-example": 5, "format": "int32" }, - "continents": { + "buckets": { "type": "array", - "description": "List of continents.", + "description": "List of buckets.", "items": { - "$ref": "#\/components\/schemas\/continent" + "$ref": "#\/components\/schemas\/bucket" }, "x-example": "" } }, "required": [ "total", - "continents" + "buckets" ], "example": { "total": 5, - "continents": "" + "buckets": "" } }, - "languageList": { - "description": "Languages List", + "resourceTokenList": { + "description": "Resource Tokens List", "type": "object", "properties": { "total": { "type": "integer", - "description": "Total number of languages that matched your query.", + "description": "Total number of tokens that matched your query.", "x-example": 5, "format": "int32" }, - "languages": { + "tokens": { "type": "array", - "description": "List of languages.", + "description": "List of tokens.", "items": { - "$ref": "#\/components\/schemas\/language" + "$ref": "#\/components\/schemas\/resourceToken" }, "x-example": "" } }, "required": [ "total", - "languages" + "tokens" ], "example": { "total": 5, - "languages": "" + "tokens": "" } }, - "currencyList": { - "description": "Currencies List", + "teamList": { + "description": "Teams List", "type": "object", "properties": { "total": { "type": "integer", - "description": "Total number of currencies that matched your query.", + "description": "Total number of teams that matched your query.", "x-example": 5, "format": "int32" }, - "currencies": { + "teams": { "type": "array", - "description": "List of currencies.", + "description": "List of teams.", "items": { - "$ref": "#\/components\/schemas\/currency" + "$ref": "#\/components\/schemas\/team" }, "x-example": "" } }, "required": [ "total", - "currencies" + "teams" ], "example": { "total": 5, - "currencies": "" + "teams": "" } }, - "phoneList": { - "description": "Phones List", + "membershipList": { + "description": "Memberships List", "type": "object", "properties": { "total": { "type": "integer", - "description": "Total number of phones that matched your query.", + "description": "Total number of memberships that matched your query.", "x-example": 5, "format": "int32" }, - "phones": { + "memberships": { "type": "array", - "description": "List of phones.", + "description": "List of memberships.", "items": { - "$ref": "#\/components\/schemas\/phone" + "$ref": "#\/components\/schemas\/membership" }, "x-example": "" } }, "required": [ "total", - "phones" + "memberships" ], "example": { "total": 5, - "phones": "" + "memberships": "" } }, - "variableList": { - "description": "Variables List", + "siteList": { + "description": "Sites List", "type": "object", "properties": { "total": { "type": "integer", - "description": "Total number of variables that matched your query.", + "description": "Total number of sites that matched your query.", "x-example": 5, "format": "int32" }, - "variables": { + "sites": { "type": "array", - "description": "List of variables.", + "description": "List of sites.", "items": { - "$ref": "#\/components\/schemas\/variable" + "$ref": "#\/components\/schemas\/site" }, "x-example": "" } }, "required": [ "total", - "variables" + "sites" ], "example": { "total": 5, - "variables": "" + "sites": "" } }, - "mockNumberList": { - "description": "Mock Numbers List", + "templateSiteList": { + "description": "Site Templates List", "type": "object", "properties": { "total": { "type": "integer", - "description": "Total number of mockNumbers that matched your query.", + "description": "Total number of templates that matched your query.", "x-example": 5, "format": "int32" }, - "mockNumbers": { + "templates": { "type": "array", - "description": "List of mockNumbers.", + "description": "List of templates.", "items": { - "$ref": "#\/components\/schemas\/mockNumber" + "$ref": "#\/components\/schemas\/templateSite" }, "x-example": "" } }, "required": [ "total", - "mockNumbers" + "templates" ], "example": { "total": 5, - "mockNumbers": "" + "templates": "" } }, - "policyList": { - "description": "Policies List", + "functionList": { + "description": "Functions List", "type": "object", "properties": { "total": { "type": "integer", - "description": "Total number of policies in the given project.", - "x-example": 10, + "description": "Total number of functions that matched your query.", + "x-example": 5, "format": "int32" }, - "policies": { + "functions": { "type": "array", - "description": "List of policies.", + "description": "List of functions.", "items": { - "anyOf": [ - { - "$ref": "#\/components\/schemas\/policyPasswordDictionary" - }, - { - "$ref": "#\/components\/schemas\/policyPasswordHistory" - }, - { - "$ref": "#\/components\/schemas\/policyPasswordStrength" - }, - { - "$ref": "#\/components\/schemas\/policyPasswordPersonalData" - }, - { - "$ref": "#\/components\/schemas\/policySessionAlert" - }, - { - "$ref": "#\/components\/schemas\/policySessionDuration" - }, - { - "$ref": "#\/components\/schemas\/policySessionInvalidation" - }, - { - "$ref": "#\/components\/schemas\/policySessionLimit" - }, - { - "$ref": "#\/components\/schemas\/policyUserLimit" - }, - { - "$ref": "#\/components\/schemas\/policyMembershipPrivacy" - }, - { - "$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", - "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", - "deny-aliased-email": "#\/components\/schemas\/policyDenyAliasedEmail", - "deny-disposable-email": "#\/components\/schemas\/policyDenyDisposableEmail", - "deny-free-email": "#\/components\/schemas\/policyDenyFreeEmail", - "deny-corporate-email": "#\/components\/schemas\/policyDenyCorporateEmail" - } - } + "$ref": "#\/components\/schemas\/function" }, "x-example": "" } }, "required": [ "total", - "policies" + "functions" ], "example": { - "total": 10, - "policies": "" + "total": 5, + "functions": "" } }, - "emailTemplateList": { - "description": "Email Templates List", + "templateFunctionList": { + "description": "Function Templates List", "type": "object", "properties": { "total": { @@ -92729,7 +92243,7 @@ "type": "array", "description": "List of templates.", "items": { - "$ref": "#\/components\/schemas\/emailTemplate" + "$ref": "#\/components\/schemas\/templateFunction" }, "x-example": "" } @@ -92743,2096 +92257,1736 @@ "templates": "" } }, - "healthStatusList": { - "description": "Status List", + "installationList": { + "description": "Installations List", "type": "object", "properties": { "total": { "type": "integer", - "description": "Total number of statuses that matched your query.", + "description": "Total number of installations that matched your query.", "x-example": 5, "format": "int32" }, - "statuses": { + "installations": { "type": "array", - "description": "List of statuses.", + "description": "List of installations.", "items": { - "$ref": "#\/components\/schemas\/healthStatus" + "$ref": "#\/components\/schemas\/installation" }, "x-example": "" } }, "required": [ "total", - "statuses" + "installations" ], "example": { "total": 5, - "statuses": "" + "installations": "" } }, - "proxyRuleList": { - "description": "Rule List", + "providerRepositoryFrameworkList": { + "description": "Framework Provider Repositories List", "type": "object", "properties": { "total": { "type": "integer", - "description": "Total number of rules that matched your query.", + "description": "Total number of frameworkProviderRepositories that matched your query.", "x-example": 5, "format": "int32" }, - "rules": { + "frameworkProviderRepositories": { "type": "array", - "description": "List of rules.", + "description": "List of frameworkProviderRepositories.", "items": { - "$ref": "#\/components\/schemas\/proxyRule" + "$ref": "#\/components\/schemas\/providerRepositoryFramework" }, "x-example": "" + }, + "type": { + "type": "string", + "description": "Provider repository list type.", + "x-example": "framework" } }, "required": [ "total", - "rules" + "frameworkProviderRepositories", + "type" ], "example": { "total": 5, - "rules": "" + "frameworkProviderRepositories": "", + "type": "framework" } }, - "scheduleList": { - "description": "Schedules List", + "providerRepositoryRuntimeList": { + "description": "Runtime Provider Repositories List", "type": "object", "properties": { "total": { "type": "integer", - "description": "Total number of schedules that matched your query.", + "description": "Total number of runtimeProviderRepositories that matched your query.", "x-example": 5, "format": "int32" }, - "schedules": { + "runtimeProviderRepositories": { "type": "array", - "description": "List of schedules.", + "description": "List of runtimeProviderRepositories.", "items": { - "$ref": "#\/components\/schemas\/schedule" + "$ref": "#\/components\/schemas\/providerRepositoryRuntime" }, "x-example": "" + }, + "type": { + "type": "string", + "description": "Provider repository list type.", + "x-example": "runtime" } }, "required": [ "total", - "schedules" + "runtimeProviderRepositories", + "type" ], "example": { "total": 5, - "schedules": "" - } - }, - "stageList": { - "description": "Stages List", - "type": "object", - "properties": { - "stages": { - "type": "array", - "description": "List of stages.", - "items": { - "$ref": "#\/components\/schemas\/stage" - }, - "x-example": "" - } - }, - "required": [ - "stages" - ], - "example": { - "stages": "" + "runtimeProviderRepositories": "", + "type": "runtime" } }, - "localeCodeList": { - "description": "Locale codes list", + "branchList": { + "description": "Branches List", "type": "object", "properties": { "total": { "type": "integer", - "description": "Total number of localeCodes that matched your query.", + "description": "Total number of branches that matched your query.", "x-example": 5, "format": "int32" }, - "localeCodes": { + "branches": { "type": "array", - "description": "List of localeCodes.", + "description": "List of branches.", "items": { - "$ref": "#\/components\/schemas\/localeCode" + "$ref": "#\/components\/schemas\/branch" }, "x-example": "" } }, "required": [ "total", - "localeCodes" + "branches" ], "example": { "total": 5, - "localeCodes": "" + "branches": "" } }, - "providerList": { - "description": "Provider list", + "frameworkList": { + "description": "Frameworks List", "type": "object", "properties": { "total": { "type": "integer", - "description": "Total number of providers that matched your query.", + "description": "Total number of frameworks that matched your query.", "x-example": 5, "format": "int32" }, - "providers": { + "frameworks": { "type": "array", - "description": "List of providers.", + "description": "List of frameworks.", "items": { - "$ref": "#\/components\/schemas\/provider" + "$ref": "#\/components\/schemas\/framework" }, "x-example": "" } }, "required": [ "total", - "providers" + "frameworks" ], "example": { "total": 5, - "providers": "" + "frameworks": "" } }, - "messageList": { - "description": "Message list", + "runtimeList": { + "description": "Runtimes List", "type": "object", "properties": { "total": { "type": "integer", - "description": "Total number of messages that matched your query.", + "description": "Total number of runtimes that matched your query.", "x-example": 5, "format": "int32" }, - "messages": { + "runtimes": { "type": "array", - "description": "List of messages.", + "description": "List of runtimes.", "items": { - "$ref": "#\/components\/schemas\/message" + "$ref": "#\/components\/schemas\/runtime" }, "x-example": "" } }, "required": [ "total", - "messages" + "runtimes" ], "example": { "total": 5, - "messages": "" + "runtimes": "" } }, - "topicList": { - "description": "Topic list", + "deploymentList": { + "description": "Deployments List", "type": "object", "properties": { "total": { "type": "integer", - "description": "Total number of topics that matched your query.", + "description": "Total number of deployments that matched your query.", "x-example": 5, "format": "int32" }, - "topics": { + "deployments": { "type": "array", - "description": "List of topics.", + "description": "List of deployments.", "items": { - "$ref": "#\/components\/schemas\/topic" + "$ref": "#\/components\/schemas\/deployment" }, "x-example": "" } }, "required": [ "total", - "topics" + "deployments" ], "example": { "total": 5, - "topics": "" + "deployments": "" } }, - "subscriberList": { - "description": "Subscriber list", + "executionList": { + "description": "Executions List", "type": "object", "properties": { "total": { "type": "integer", - "description": "Total number of subscribers that matched your query.", + "description": "Total number of executions that matched your query.", "x-example": 5, "format": "int32" }, - "subscribers": { + "executions": { "type": "array", - "description": "List of subscribers.", + "description": "List of executions.", "items": { - "$ref": "#\/components\/schemas\/subscriber" + "$ref": "#\/components\/schemas\/execution" }, "x-example": "" } }, "required": [ "total", - "subscribers" + "executions" ], "example": { "total": 5, - "subscribers": "" + "executions": "" } }, - "targetList": { - "description": "Target list", + "projectList": { + "description": "Projects List", "type": "object", "properties": { "total": { "type": "integer", - "description": "Total number of targets that matched your query.", + "description": "Total number of projects that matched your query.", "x-example": 5, "format": "int32" }, - "targets": { + "projects": { "type": "array", - "description": "List of targets.", + "description": "List of projects.", "items": { - "$ref": "#\/components\/schemas\/target" + "$ref": "#\/components\/schemas\/project" }, "x-example": "" } }, "required": [ "total", - "targets" + "projects" ], "example": { "total": 5, - "targets": "" + "projects": "" } }, - "transactionList": { - "description": "Transaction List", + "webhookList": { + "description": "Webhooks List", "type": "object", "properties": { "total": { "type": "integer", - "description": "Total number of transactions that matched your query.", + "description": "Total number of webhooks that matched your query.", "x-example": 5, "format": "int32" }, - "transactions": { + "webhooks": { "type": "array", - "description": "List of transactions.", + "description": "List of webhooks.", "items": { - "$ref": "#\/components\/schemas\/transaction" + "$ref": "#\/components\/schemas\/webhook" }, "x-example": "" } }, "required": [ "total", - "transactions" + "webhooks" ], "example": { "total": 5, - "transactions": "" + "webhooks": "" } }, - "migrationList": { - "description": "Migrations List", + "keyList": { + "description": "API Keys List", "type": "object", "properties": { "total": { "type": "integer", - "description": "Total number of migrations that matched your query.", + "description": "Total number of keys that matched your query.", "x-example": 5, "format": "int32" }, - "migrations": { + "keys": { "type": "array", - "description": "List of migrations.", + "description": "List of keys.", "items": { - "$ref": "#\/components\/schemas\/migration" + "$ref": "#\/components\/schemas\/key" }, "x-example": "" } }, "required": [ "total", - "migrations" + "keys" ], "example": { "total": 5, - "migrations": "" + "keys": "" } }, - "specificationList": { - "description": "Specifications List", + "devKeyList": { + "description": "Dev Keys List", "type": "object", "properties": { "total": { "type": "integer", - "description": "Total number of specifications that matched your query.", + "description": "Total number of devKeys that matched your query.", "x-example": 5, "format": "int32" }, - "specifications": { + "devKeys": { "type": "array", - "description": "List of specifications.", + "description": "List of devKeys.", "items": { - "$ref": "#\/components\/schemas\/specification" + "$ref": "#\/components\/schemas\/devKey" }, "x-example": "" } }, "required": [ "total", - "specifications" + "devKeys" ], "example": { "total": 5, - "specifications": "" + "devKeys": "" } }, - "vcsContentList": { - "description": "VCS Content List", + "countryList": { + "description": "Countries List", "type": "object", "properties": { "total": { "type": "integer", - "description": "Total number of contents that matched your query.", + "description": "Total number of countries that matched your query.", "x-example": 5, "format": "int32" }, - "contents": { + "countries": { "type": "array", - "description": "List of contents.", + "description": "List of countries.", "items": { - "$ref": "#\/components\/schemas\/vcsContent" + "$ref": "#\/components\/schemas\/country" }, "x-example": "" } }, "required": [ "total", - "contents" + "countries" ], "example": { "total": 5, - "contents": "" + "countries": "" } }, - "vectorsdbCollectionList": { - "description": "VectorsDB Collections List", + "continentList": { + "description": "Continents List", "type": "object", "properties": { "total": { "type": "integer", - "description": "Total number of collections that matched your query.", + "description": "Total number of continents that matched your query.", "x-example": 5, "format": "int32" }, - "collections": { + "continents": { "type": "array", - "description": "List of collections.", + "description": "List of continents.", "items": { - "$ref": "#\/components\/schemas\/vectorsdbCollection" + "$ref": "#\/components\/schemas\/continent" }, "x-example": "" } }, "required": [ "total", - "collections" + "continents" ], "example": { "total": 5, - "collections": "" + "continents": "" } }, - "embeddingList": { - "description": "Embedding list", + "languageList": { + "description": "Languages List", "type": "object", "properties": { "total": { "type": "integer", - "description": "Total number of embeddings that matched your query.", + "description": "Total number of languages that matched your query.", "x-example": 5, "format": "int32" }, - "embeddings": { + "languages": { "type": "array", - "description": "List of embeddings.", + "description": "List of languages.", "items": { - "$ref": "#\/components\/schemas\/embedding" + "$ref": "#\/components\/schemas\/language" }, "x-example": "" } }, "required": [ "total", - "embeddings" + "languages" ], "example": { "total": 5, - "embeddings": "" + "languages": "" } }, - "insightList": { - "description": "Insights List", + "currencyList": { + "description": "Currencies List", "type": "object", "properties": { "total": { "type": "integer", - "description": "Total number of insights that matched your query.", + "description": "Total number of currencies that matched your query.", "x-example": 5, "format": "int32" }, - "insights": { + "currencies": { "type": "array", - "description": "List of insights.", + "description": "List of currencies.", "items": { - "$ref": "#\/components\/schemas\/insight" + "$ref": "#\/components\/schemas\/currency" }, "x-example": "" } }, "required": [ "total", - "insights" + "currencies" ], "example": { "total": 5, - "insights": "" + "currencies": "" } }, - "reportList": { - "description": "Reports List", + "phoneList": { + "description": "Phones List", "type": "object", "properties": { "total": { "type": "integer", - "description": "Total number of reports that matched your query.", + "description": "Total number of phones that matched your query.", "x-example": 5, "format": "int32" }, - "reports": { + "phones": { "type": "array", - "description": "List of reports.", + "description": "List of phones.", "items": { - "$ref": "#\/components\/schemas\/report" + "$ref": "#\/components\/schemas\/phone" }, "x-example": "" } }, "required": [ "total", - "reports" + "phones" ], "example": { "total": 5, - "reports": "" + "phones": "" } }, - "database": { - "description": "Database", + "variableList": { + "description": "Variables List", "type": "object", "properties": { - "$id": { - "type": "string", - "description": "Database ID.", - "x-example": "5e5ea5c16897e" - }, - "name": { - "type": "string", - "description": "Database name.", - "x-example": "My Database" - }, - "$createdAt": { - "type": "string", - "description": "Database creation date in ISO 8601 format.", - "x-example": "2020-10-15T06:38:00.000+00:00" - }, - "$updatedAt": { - "type": "string", - "description": "Database update date in ISO 8601 format.", - "x-example": "2020-10-15T06:38:00.000+00:00" - }, - "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.", - "x-example": false - }, - "type": { - "type": "string", - "description": "Database type.", - "x-example": "legacy", - "enum": [ - "legacy", - "tablesdb", - "documentsdb", - "vectorsdb" - ] - }, - "status": { - "type": "string", - "description": "Database status. Possible values: `provisioning`, `ready` or `failed`", - "x-example": "ready", - "enum": [ - "provisioning", - "ready", - "failed" - ], - "x-enum-name": "DatabaseStatus" - }, - "policies": { - "type": "array", - "description": "Database backup policies.", - "items": { - "$ref": "#\/components\/schemas\/backupPolicy" - }, - "x-example": {} + "total": { + "type": "integer", + "description": "Total number of variables that matched your query.", + "x-example": 5, + "format": "int32" }, - "archives": { + "variables": { "type": "array", - "description": "Database backup archives.", + "description": "List of variables.", "items": { - "$ref": "#\/components\/schemas\/backupArchive" + "$ref": "#\/components\/schemas\/variable" }, - "x-example": {} + "x-example": "" } }, "required": [ - "$id", - "name", - "$createdAt", - "$updatedAt", - "enabled", - "type", - "status", - "policies", - "archives" + "total", + "variables" ], "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", - "policies": {}, - "archives": {} + "total": 5, + "variables": "" } }, - "embedding": { - "description": "Embedding", + "mockNumberList": { + "description": "Mock Numbers List", "type": "object", "properties": { - "model": { - "type": "string", - "description": "Embedding model used to generate embeddings.", - "x-example": "nomic-embed-text" - }, - "dimension": { + "total": { "type": "integer", - "description": "Number of dimensions for each embedding vector.", - "x-example": 768, + "description": "Total number of mockNumbers that matched your query.", + "x-example": 5, "format": "int32" }, - "embedding": { + "mockNumbers": { "type": "array", - "description": "Embedding vector values. If an error occurs, this will be an empty array.", + "description": "List of mockNumbers.", "items": { - "type": "number", - "format": "double" + "$ref": "#\/components\/schemas\/mockNumber" }, - "x-example": [ - 0.01, - 0.02, - 0.03 - ] - }, - "error": { - "type": "string", - "description": "Error message if embedding generation fails. Empty string if no error.", - "x-example": "Error message" + "x-example": "" } }, "required": [ - "model", - "dimension", - "embedding", - "error" + "total", + "mockNumbers" ], "example": { - "model": "nomic-embed-text", - "dimension": 768, - "embedding": [ - 0.01, - 0.02, - 0.03 - ], - "error": "Error message" + "total": 5, + "mockNumbers": "" } }, - "collection": { - "description": "Collection", + "policyList": { + "description": "Policies List", "type": "object", "properties": { - "$id": { - "type": "string", - "description": "Collection ID.", - "x-example": "5e5ea5c16897e" - }, - "$createdAt": { - "type": "string", - "description": "Collection creation date in ISO 8601 format.", - "x-example": "2020-10-15T06:38:00.000+00:00" - }, - "$updatedAt": { - "type": "string", - "description": "Collection update date in ISO 8601 format.", - "x-example": "2020-10-15T06:38:00.000+00:00" - }, - "$permissions": { - "type": "array", - "description": "Collection permissions. [Learn more about permissions](https:\/\/appwrite.io\/docs\/permissions).", - "items": { - "type": "string" - }, - "x-example": [ - "read(\"any\")" - ] - }, - "databaseId": { - "type": "string", - "description": "Database ID.", - "x-example": "5e5ea5c16897e" - }, - "name": { - "type": "string", - "description": "Collection name.", - "x-example": "My Collection" - }, - "enabled": { - "type": "boolean", - "description": "Collection enabled. Can be 'enabled' or 'disabled'. When disabled, the collection is inaccessible to users, but remains accessible to Server SDKs using API keys.", - "x-example": false - }, - "documentSecurity": { - "type": "boolean", - "description": "Whether document-level permissions are enabled. [Learn more about permissions](https:\/\/appwrite.io\/docs\/permissions).", - "x-example": true + "total": { + "type": "integer", + "description": "Total number of policies in the given project.", + "x-example": 10, + "format": "int32" }, - "attributes": { + "policies": { "type": "array", - "description": "Collection attributes.", + "description": "List of policies.", "items": { "anyOf": [ { - "$ref": "#\/components\/schemas\/attributeBoolean" - }, - { - "$ref": "#\/components\/schemas\/attributeBigint" - }, - { - "$ref": "#\/components\/schemas\/attributeInteger" - }, - { - "$ref": "#\/components\/schemas\/attributeFloat" - }, - { - "$ref": "#\/components\/schemas\/attributeEmail" + "$ref": "#\/components\/schemas\/policyPasswordDictionary" }, { - "$ref": "#\/components\/schemas\/attributeEnum" + "$ref": "#\/components\/schemas\/policyPasswordHistory" }, { - "$ref": "#\/components\/schemas\/attributeUrl" + "$ref": "#\/components\/schemas\/policyPasswordStrength" }, { - "$ref": "#\/components\/schemas\/attributeIp" + "$ref": "#\/components\/schemas\/policyPasswordPersonalData" }, { - "$ref": "#\/components\/schemas\/attributeDatetime" + "$ref": "#\/components\/schemas\/policySessionAlert" }, { - "$ref": "#\/components\/schemas\/attributeRelationship" + "$ref": "#\/components\/schemas\/policySessionDuration" }, { - "$ref": "#\/components\/schemas\/attributePoint" + "$ref": "#\/components\/schemas\/policySessionInvalidation" }, { - "$ref": "#\/components\/schemas\/attributeLine" + "$ref": "#\/components\/schemas\/policySessionLimit" }, { - "$ref": "#\/components\/schemas\/attributePolygon" + "$ref": "#\/components\/schemas\/policyUserLimit" }, { - "$ref": "#\/components\/schemas\/attributeVarchar" + "$ref": "#\/components\/schemas\/policyMembershipPrivacy" }, { - "$ref": "#\/components\/schemas\/attributeText" + "$ref": "#\/components\/schemas\/policyDenyAliasedEmail" }, { - "$ref": "#\/components\/schemas\/attributeMediumtext" + "$ref": "#\/components\/schemas\/policyDenyDisposableEmail" }, { - "$ref": "#\/components\/schemas\/attributeLongtext" + "$ref": "#\/components\/schemas\/policyDenyFreeEmail" }, { - "$ref": "#\/components\/schemas\/attributeString" + "$ref": "#\/components\/schemas\/policyDenyCorporateEmail" } ], "discriminator": { - "propertyName": "type", + "propertyName": "$id", "mapping": { - "boolean": "#\/components\/schemas\/attributeBoolean", - "bigint": "#\/components\/schemas\/attributeBigint", - "integer": "#\/components\/schemas\/attributeInteger", - "double": "#\/components\/schemas\/attributeFloat", - "string": "#\/components\/schemas\/attributeString", - "datetime": "#\/components\/schemas\/attributeDatetime", - "relationship": "#\/components\/schemas\/attributeRelationship", - "point": "#\/components\/schemas\/attributePoint", - "linestring": "#\/components\/schemas\/attributeLine", - "polygon": "#\/components\/schemas\/attributePolygon", - "varchar": "#\/components\/schemas\/attributeVarchar", - "text": "#\/components\/schemas\/attributeText", - "mediumtext": "#\/components\/schemas\/attributeMediumtext", - "longtext": "#\/components\/schemas\/attributeLongtext" - }, - "x-propertyNames": [ - "type", - "format" - ], - "x-mapping": { - "#\/components\/schemas\/attributeBoolean": { - "type": "boolean" - }, - "#\/components\/schemas\/attributeBigint": { - "type": "bigint" - }, - "#\/components\/schemas\/attributeInteger": { - "type": "integer" - }, - "#\/components\/schemas\/attributeFloat": { - "type": "double" - }, - "#\/components\/schemas\/attributeEmail": { - "type": "string", - "format": "email" - }, - "#\/components\/schemas\/attributeEnum": { - "type": "string", - "format": "enum" - }, - "#\/components\/schemas\/attributeUrl": { - "type": "string", - "format": "url" - }, - "#\/components\/schemas\/attributeIp": { - "type": "string", - "format": "ip" - }, - "#\/components\/schemas\/attributeDatetime": { - "type": "datetime" - }, - "#\/components\/schemas\/attributeRelationship": { - "type": "relationship" - }, - "#\/components\/schemas\/attributePoint": { - "type": "point" - }, - "#\/components\/schemas\/attributeLine": { - "type": "linestring" - }, - "#\/components\/schemas\/attributePolygon": { - "type": "polygon" - }, - "#\/components\/schemas\/attributeVarchar": { - "type": "varchar" - }, - "#\/components\/schemas\/attributeText": { - "type": "text" - }, - "#\/components\/schemas\/attributeMediumtext": { - "type": "mediumtext" - }, - "#\/components\/schemas\/attributeLongtext": { - "type": "longtext" - }, - "#\/components\/schemas\/attributeString": { - "type": "string" - } + "password-dictionary": "#\/components\/schemas\/policyPasswordDictionary", + "password-history": "#\/components\/schemas\/policyPasswordHistory", + "password-strength": "#\/components\/schemas\/policyPasswordStrength", + "password-personal-data": "#\/components\/schemas\/policyPasswordPersonalData", + "session-alert": "#\/components\/schemas\/policySessionAlert", + "session-duration": "#\/components\/schemas\/policySessionDuration", + "session-invalidation": "#\/components\/schemas\/policySessionInvalidation", + "session-limit": "#\/components\/schemas\/policySessionLimit", + "user-limit": "#\/components\/schemas\/policyUserLimit", + "membership-privacy": "#\/components\/schemas\/policyMembershipPrivacy", + "deny-aliased-email": "#\/components\/schemas\/policyDenyAliasedEmail", + "deny-disposable-email": "#\/components\/schemas\/policyDenyDisposableEmail", + "deny-free-email": "#\/components\/schemas\/policyDenyFreeEmail", + "deny-corporate-email": "#\/components\/schemas\/policyDenyCorporateEmail" } } }, - "x-example": {} + "x-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.", + "x-example": 5, + "format": "int32" }, - "indexes": { + "templates": { "type": "array", - "description": "Collection indexes.", + "description": "List of templates.", "items": { - "$ref": "#\/components\/schemas\/index" + "$ref": "#\/components\/schemas\/emailTemplate" }, - "x-example": {} - }, - "bytesMax": { + "x-example": "" + } + }, + "required": [ + "total", + "templates" + ], + "example": { + "total": 5, + "templates": "" + } + }, + "proxyRuleList": { + "description": "Rule List", + "type": "object", + "properties": { + "total": { "type": "integer", - "description": "Maximum document size in bytes. Returns 0 when no limit applies.", - "x-example": 65535, + "description": "Total number of rules that matched your query.", + "x-example": 5, "format": "int32" }, - "bytesUsed": { + "rules": { + "type": "array", + "description": "List of rules.", + "items": { + "$ref": "#\/components\/schemas\/proxyRule" + }, + "x-example": "" + } + }, + "required": [ + "total", + "rules" + ], + "example": { + "total": 5, + "rules": "" + } + }, + "scheduleList": { + "description": "Schedules List", + "type": "object", + "properties": { + "total": { "type": "integer", - "description": "Currently used document size in bytes based on defined attributes.", - "x-example": 1500, + "description": "Total number of schedules that matched your query.", + "x-example": 5, "format": "int32" + }, + "schedules": { + "type": "array", + "description": "List of schedules.", + "items": { + "$ref": "#\/components\/schemas\/schedule" + }, + "x-example": "" } }, "required": [ - "$id", - "$createdAt", - "$updatedAt", - "$permissions", - "databaseId", - "name", - "enabled", - "documentSecurity", - "attributes", - "indexes", - "bytesMax", - "bytesUsed" + "total", + "schedules" ], "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 + "total": 5, + "schedules": "" } }, - "attributeList": { - "description": "Attributes List", + "stageList": { + "description": "Stages List", + "type": "object", + "properties": { + "stages": { + "type": "array", + "description": "List of stages.", + "items": { + "$ref": "#\/components\/schemas\/stage" + }, + "x-example": "" + } + }, + "required": [ + "stages" + ], + "example": { + "stages": "" + } + }, + "localeCodeList": { + "description": "Locale codes list", "type": "object", "properties": { "total": { "type": "integer", - "description": "Total number of attributes in the given collection.", + "description": "Total number of localeCodes that matched your query.", "x-example": 5, "format": "int32" }, - "attributes": { + "localeCodes": { "type": "array", - "description": "List of attributes.", + "description": "List of localeCodes.", "items": { - "anyOf": [ - { - "$ref": "#\/components\/schemas\/attributeBoolean" - }, - { - "$ref": "#\/components\/schemas\/attributeBigint" - }, - { - "$ref": "#\/components\/schemas\/attributeInteger" - }, - { - "$ref": "#\/components\/schemas\/attributeFloat" - }, - { - "$ref": "#\/components\/schemas\/attributeEmail" - }, - { - "$ref": "#\/components\/schemas\/attributeEnum" - }, - { - "$ref": "#\/components\/schemas\/attributeUrl" - }, - { - "$ref": "#\/components\/schemas\/attributeIp" - }, - { - "$ref": "#\/components\/schemas\/attributeDatetime" - }, - { - "$ref": "#\/components\/schemas\/attributeRelationship" - }, - { - "$ref": "#\/components\/schemas\/attributePoint" - }, - { - "$ref": "#\/components\/schemas\/attributeLine" - }, - { - "$ref": "#\/components\/schemas\/attributePolygon" - }, - { - "$ref": "#\/components\/schemas\/attributeVarchar" - }, - { - "$ref": "#\/components\/schemas\/attributeText" - }, - { - "$ref": "#\/components\/schemas\/attributeMediumtext" - }, - { - "$ref": "#\/components\/schemas\/attributeLongtext" - }, - { - "$ref": "#\/components\/schemas\/attributeString" - } - ], - "discriminator": { - "propertyName": "type", - "mapping": { - "boolean": "#\/components\/schemas\/attributeBoolean", - "bigint": "#\/components\/schemas\/attributeBigint", - "integer": "#\/components\/schemas\/attributeInteger", - "double": "#\/components\/schemas\/attributeFloat", - "string": "#\/components\/schemas\/attributeString", - "datetime": "#\/components\/schemas\/attributeDatetime", - "relationship": "#\/components\/schemas\/attributeRelationship", - "point": "#\/components\/schemas\/attributePoint", - "linestring": "#\/components\/schemas\/attributeLine", - "polygon": "#\/components\/schemas\/attributePolygon", - "varchar": "#\/components\/schemas\/attributeVarchar", - "text": "#\/components\/schemas\/attributeText", - "mediumtext": "#\/components\/schemas\/attributeMediumtext", - "longtext": "#\/components\/schemas\/attributeLongtext" - }, - "x-propertyNames": [ - "type", - "format" - ], - "x-mapping": { - "#\/components\/schemas\/attributeBoolean": { - "type": "boolean" - }, - "#\/components\/schemas\/attributeBigint": { - "type": "bigint" - }, - "#\/components\/schemas\/attributeInteger": { - "type": "integer" - }, - "#\/components\/schemas\/attributeFloat": { - "type": "double" - }, - "#\/components\/schemas\/attributeEmail": { - "type": "string", - "format": "email" - }, - "#\/components\/schemas\/attributeEnum": { - "type": "string", - "format": "enum" - }, - "#\/components\/schemas\/attributeUrl": { - "type": "string", - "format": "url" - }, - "#\/components\/schemas\/attributeIp": { - "type": "string", - "format": "ip" - }, - "#\/components\/schemas\/attributeDatetime": { - "type": "datetime" - }, - "#\/components\/schemas\/attributeRelationship": { - "type": "relationship" - }, - "#\/components\/schemas\/attributePoint": { - "type": "point" - }, - "#\/components\/schemas\/attributeLine": { - "type": "linestring" - }, - "#\/components\/schemas\/attributePolygon": { - "type": "polygon" - }, - "#\/components\/schemas\/attributeVarchar": { - "type": "varchar" - }, - "#\/components\/schemas\/attributeText": { - "type": "text" - }, - "#\/components\/schemas\/attributeMediumtext": { - "type": "mediumtext" - }, - "#\/components\/schemas\/attributeLongtext": { - "type": "longtext" - }, - "#\/components\/schemas\/attributeString": { - "type": "string" - } - } - } + "$ref": "#\/components\/schemas\/localeCode" + }, + "x-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.", + "x-example": 5, + "format": "int32" + }, + "providers": { + "type": "array", + "description": "List of providers.", + "items": { + "$ref": "#\/components\/schemas\/provider" }, "x-example": "" } }, "required": [ "total", - "attributes" + "providers" ], "example": { "total": 5, - "attributes": "" + "providers": "" } }, - "attributeString": { - "description": "AttributeString", + "messageList": { + "description": "Message list", "type": "object", "properties": { - "key": { - "type": "string", - "description": "Attribute Key.", - "x-example": "fullName" - }, - "type": { - "type": "string", - "description": "Attribute type.", - "x-example": "string" - }, - "status": { - "type": "string", - "description": "Attribute status. Possible values: `available`, `processing`, `deleting`, `stuck`, or `failed`", - "x-example": "available", - "enum": [ - "available", - "processing", - "deleting", - "stuck", - "failed" - ], - "x-enum-name": "AttributeStatus" - }, - "error": { - "type": "string", - "description": "Error message. Displays error generated on failure of creating or deleting an attribute.", - "x-example": "string" - }, - "required": { - "type": "boolean", - "description": "Is attribute required?", - "x-example": true - }, - "array": { - "type": "boolean", - "description": "Is attribute an array?", - "x-example": false, - "nullable": true - }, - "$createdAt": { - "type": "string", - "description": "Attribute creation date in ISO 8601 format.", - "x-example": "2020-10-15T06:38:00.000+00:00" - }, - "$updatedAt": { - "type": "string", - "description": "Attribute update date in ISO 8601 format.", - "x-example": "2020-10-15T06:38:00.000+00:00" - }, - "size": { + "total": { "type": "integer", - "description": "Attribute size.", - "x-example": 128, + "description": "Total number of messages that matched your query.", + "x-example": 5, "format": "int32" }, - "default": { - "type": "string", - "description": "Default value for attribute when not provided. Cannot be set when attribute is required.", - "x-example": "default", - "nullable": true - }, - "encrypt": { - "type": "boolean", - "description": "Defines whether this attribute is encrypted or not.", - "x-example": false, - "nullable": true + "messages": { + "type": "array", + "description": "List of messages.", + "items": { + "$ref": "#\/components\/schemas\/message" + }, + "x-example": "" } }, "required": [ - "key", - "type", - "status", - "error", - "required", - "$createdAt", - "$updatedAt", - "size" + "total", + "messages" ], "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 + "total": 5, + "messages": "" } }, - "attributeInteger": { - "description": "AttributeInteger", + "topicList": { + "description": "Topic list", "type": "object", "properties": { - "key": { - "type": "string", - "description": "Attribute Key.", - "x-example": "count" - }, - "type": { - "type": "string", - "description": "Attribute type.", - "x-example": "integer" - }, - "status": { - "type": "string", - "description": "Attribute status. Possible values: `available`, `processing`, `deleting`, `stuck`, or `failed`", - "x-example": "available", - "enum": [ - "available", - "processing", - "deleting", - "stuck", - "failed" - ], - "x-enum-name": "AttributeStatus" - }, - "error": { - "type": "string", - "description": "Error message. Displays error generated on failure of creating or deleting an attribute.", - "x-example": "string" - }, - "required": { - "type": "boolean", - "description": "Is attribute required?", - "x-example": true - }, - "array": { - "type": "boolean", - "description": "Is attribute an array?", - "x-example": false, - "nullable": true - }, - "$createdAt": { - "type": "string", - "description": "Attribute creation date in ISO 8601 format.", - "x-example": "2020-10-15T06:38:00.000+00:00" - }, - "$updatedAt": { - "type": "string", - "description": "Attribute update date in ISO 8601 format.", - "x-example": "2020-10-15T06:38:00.000+00:00" - }, - "min": { + "total": { "type": "integer", - "description": "Minimum value to enforce for new documents.", - "x-example": 1, - "format": "int64", - "nullable": true + "description": "Total number of topics that matched your query.", + "x-example": 5, + "format": "int32" }, - "max": { + "topics": { + "type": "array", + "description": "List of topics.", + "items": { + "$ref": "#\/components\/schemas\/topic" + }, + "x-example": "" + } + }, + "required": [ + "total", + "topics" + ], + "example": { + "total": 5, + "topics": "" + } + }, + "subscriberList": { + "description": "Subscriber list", + "type": "object", + "properties": { + "total": { "type": "integer", - "description": "Maximum value to enforce for new documents.", - "x-example": 10, - "format": "int64", - "nullable": true + "description": "Total number of subscribers that matched your query.", + "x-example": 5, + "format": "int32" }, - "default": { - "type": "integer", - "description": "Default value for attribute when not provided. Cannot be set when attribute is required.", - "x-example": 10, - "format": "int32", - "nullable": true + "subscribers": { + "type": "array", + "description": "List of subscribers.", + "items": { + "$ref": "#\/components\/schemas\/subscriber" + }, + "x-example": "" } }, "required": [ - "key", - "type", - "status", - "error", - "required", - "$createdAt", - "$updatedAt" + "total", + "subscribers" ], "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 + "total": 5, + "subscribers": "" } }, - "attributeBigint": { - "description": "AttributeBigInt", + "targetList": { + "description": "Target list", "type": "object", "properties": { - "key": { - "type": "string", - "description": "Attribute Key.", - "x-example": "count" - }, - "type": { - "type": "string", - "description": "Attribute type.", - "x-example": "bigint" - }, - "status": { - "type": "string", - "description": "Attribute status. Possible values: `available`, `processing`, `deleting`, `stuck`, or `failed`", - "x-example": "available", - "enum": [ - "available", - "processing", - "deleting", - "stuck", - "failed" - ], - "x-enum-name": "AttributeStatus" - }, - "error": { - "type": "string", - "description": "Error message. Displays error generated on failure of creating or deleting an attribute.", - "x-example": "string" - }, - "required": { - "type": "boolean", - "description": "Is attribute required?", - "x-example": true - }, - "array": { - "type": "boolean", - "description": "Is attribute an array?", - "x-example": false, - "nullable": true - }, - "$createdAt": { - "type": "string", - "description": "Attribute creation date in ISO 8601 format.", - "x-example": "2020-10-15T06:38:00.000+00:00" - }, - "$updatedAt": { - "type": "string", - "description": "Attribute update date in ISO 8601 format.", - "x-example": "2020-10-15T06:38:00.000+00:00" - }, - "min": { + "total": { "type": "integer", - "description": "Minimum value to enforce for new documents.", - "x-example": 1, - "format": "int64", - "nullable": true + "description": "Total number of targets that matched your query.", + "x-example": 5, + "format": "int32" }, - "max": { + "targets": { + "type": "array", + "description": "List of targets.", + "items": { + "$ref": "#\/components\/schemas\/target" + }, + "x-example": "" + } + }, + "required": [ + "total", + "targets" + ], + "example": { + "total": 5, + "targets": "" + } + }, + "transactionList": { + "description": "Transaction List", + "type": "object", + "properties": { + "total": { "type": "integer", - "description": "Maximum value to enforce for new documents.", - "x-example": 10, - "format": "int64", - "nullable": true + "description": "Total number of transactions that matched your query.", + "x-example": 5, + "format": "int32" }, - "default": { - "type": "integer", - "description": "Default value for attribute when not provided. Cannot be set when attribute is required.", - "x-example": 10, - "format": "int64", - "nullable": true + "transactions": { + "type": "array", + "description": "List of transactions.", + "items": { + "$ref": "#\/components\/schemas\/transaction" + }, + "x-example": "" } }, "required": [ - "key", - "type", - "status", - "error", - "required", - "$createdAt", - "$updatedAt" + "total", + "transactions" ], "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 + "total": 5, + "transactions": "" } }, - "attributeFloat": { - "description": "AttributeFloat", + "migrationList": { + "description": "Migrations List", "type": "object", "properties": { - "key": { - "type": "string", - "description": "Attribute Key.", - "x-example": "percentageCompleted" - }, - "type": { - "type": "string", - "description": "Attribute type.", - "x-example": "double" - }, - "status": { - "type": "string", - "description": "Attribute status. Possible values: `available`, `processing`, `deleting`, `stuck`, or `failed`", - "x-example": "available", - "enum": [ - "available", - "processing", - "deleting", - "stuck", - "failed" - ], - "x-enum-name": "AttributeStatus" - }, - "error": { - "type": "string", - "description": "Error message. Displays error generated on failure of creating or deleting an attribute.", - "x-example": "string" - }, - "required": { - "type": "boolean", - "description": "Is attribute required?", - "x-example": true - }, - "array": { - "type": "boolean", - "description": "Is attribute an array?", - "x-example": false, - "nullable": true - }, - "$createdAt": { - "type": "string", - "description": "Attribute creation date in ISO 8601 format.", - "x-example": "2020-10-15T06:38:00.000+00:00" - }, - "$updatedAt": { - "type": "string", - "description": "Attribute update date in ISO 8601 format.", - "x-example": "2020-10-15T06:38:00.000+00:00" - }, - "min": { - "type": "number", - "description": "Minimum value to enforce for new documents.", - "x-example": 1.5, - "format": "double", - "nullable": true + "total": { + "type": "integer", + "description": "Total number of migrations that matched your query.", + "x-example": 5, + "format": "int32" }, - "max": { - "type": "number", - "description": "Maximum value to enforce for new documents.", - "x-example": 10.5, - "format": "double", - "nullable": true + "migrations": { + "type": "array", + "description": "List of migrations.", + "items": { + "$ref": "#\/components\/schemas\/migration" + }, + "x-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.", + "x-example": 5, + "format": "int32" }, - "default": { - "type": "number", - "description": "Default value for attribute when not provided. Cannot be set when attribute is required.", - "x-example": 2.5, - "format": "double", - "nullable": true + "specifications": { + "type": "array", + "description": "List of specifications.", + "items": { + "$ref": "#\/components\/schemas\/specification" + }, + "x-example": "" } }, "required": [ - "key", - "type", - "status", - "error", - "required", - "$createdAt", - "$updatedAt" + "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.", + "x-example": 5, + "format": "int32" + }, + "contents": { + "type": "array", + "description": "List of contents.", + "items": { + "$ref": "#\/components\/schemas\/vcsContent" + }, + "x-example": "" + } + }, + "required": [ + "total", + "contents" ], "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 + "total": 5, + "contents": "" } }, - "attributeBoolean": { - "description": "AttributeBoolean", + "vectorsdbCollectionList": { + "description": "VectorsDB Collections List", "type": "object", "properties": { - "key": { - "type": "string", - "description": "Attribute Key.", - "x-example": "isEnabled" - }, - "type": { - "type": "string", - "description": "Attribute type.", - "x-example": "boolean" - }, - "status": { - "type": "string", - "description": "Attribute status. Possible values: `available`, `processing`, `deleting`, `stuck`, or `failed`", - "x-example": "available", - "enum": [ - "available", - "processing", - "deleting", - "stuck", - "failed" - ], - "x-enum-name": "AttributeStatus" - }, - "error": { - "type": "string", - "description": "Error message. Displays error generated on failure of creating or deleting an attribute.", - "x-example": "string" - }, - "required": { - "type": "boolean", - "description": "Is attribute required?", - "x-example": true - }, - "array": { - "type": "boolean", - "description": "Is attribute an array?", - "x-example": false, - "nullable": true - }, - "$createdAt": { - "type": "string", - "description": "Attribute creation date in ISO 8601 format.", - "x-example": "2020-10-15T06:38:00.000+00:00" - }, - "$updatedAt": { - "type": "string", - "description": "Attribute update date in ISO 8601 format.", - "x-example": "2020-10-15T06:38:00.000+00:00" + "total": { + "type": "integer", + "description": "Total number of collections that matched your query.", + "x-example": 5, + "format": "int32" }, - "default": { - "type": "boolean", - "description": "Default value for attribute when not provided. Cannot be set when attribute is required.", - "x-example": false, - "nullable": true + "collections": { + "type": "array", + "description": "List of collections.", + "items": { + "$ref": "#\/components\/schemas\/vectorsdbCollection" + }, + "x-example": "" } }, "required": [ - "key", - "type", - "status", - "error", - "required", - "$createdAt", - "$updatedAt" + "total", + "collections" ], "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 + "total": 5, + "collections": "" } }, - "attributeEmail": { - "description": "AttributeEmail", + "embeddingList": { + "description": "Embedding list", "type": "object", "properties": { - "key": { - "type": "string", - "description": "Attribute Key.", - "x-example": "userEmail" - }, - "type": { - "type": "string", - "description": "Attribute type.", - "x-example": "string" - }, - "status": { - "type": "string", - "description": "Attribute status. Possible values: `available`, `processing`, `deleting`, `stuck`, or `failed`", - "x-example": "available", - "enum": [ - "available", - "processing", - "deleting", - "stuck", - "failed" - ], - "x-enum-name": "AttributeStatus" - }, - "error": { - "type": "string", - "description": "Error message. Displays error generated on failure of creating or deleting an attribute.", - "x-example": "string" - }, - "required": { - "type": "boolean", - "description": "Is attribute required?", - "x-example": true - }, - "array": { - "type": "boolean", - "description": "Is attribute an array?", - "x-example": false, - "nullable": true - }, - "$createdAt": { - "type": "string", - "description": "Attribute creation date in ISO 8601 format.", - "x-example": "2020-10-15T06:38:00.000+00:00" - }, - "$updatedAt": { - "type": "string", - "description": "Attribute update date in ISO 8601 format.", - "x-example": "2020-10-15T06:38:00.000+00:00" - }, - "format": { - "type": "string", - "description": "String format.", - "x-example": "email" + "total": { + "type": "integer", + "description": "Total number of embeddings that matched your query.", + "x-example": 5, + "format": "int32" }, - "default": { - "type": "string", - "description": "Default value for attribute when not provided. Cannot be set when attribute is required.", - "x-example": "default@example.com", - "nullable": true + "embeddings": { + "type": "array", + "description": "List of embeddings.", + "items": { + "$ref": "#\/components\/schemas\/embedding" + }, + "x-example": "" } }, "required": [ - "key", - "type", - "status", - "error", - "required", - "$createdAt", - "$updatedAt", - "format" + "total", + "embeddings" ], "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" + "total": 5, + "embeddings": "" } }, - "attributeEnum": { - "description": "AttributeEnum", + "insightList": { + "description": "Insights List", "type": "object", "properties": { - "key": { - "type": "string", - "description": "Attribute Key.", - "x-example": "status" - }, - "type": { - "type": "string", - "description": "Attribute type.", - "x-example": "string" - }, - "status": { - "type": "string", - "description": "Attribute status. Possible values: `available`, `processing`, `deleting`, `stuck`, or `failed`", - "x-example": "available", - "enum": [ - "available", - "processing", - "deleting", - "stuck", - "failed" - ], - "x-enum-name": "AttributeStatus" - }, - "error": { - "type": "string", - "description": "Error message. Displays error generated on failure of creating or deleting an attribute.", - "x-example": "string" - }, - "required": { - "type": "boolean", - "description": "Is attribute required?", - "x-example": true - }, - "array": { - "type": "boolean", - "description": "Is attribute an array?", - "x-example": false, - "nullable": true - }, - "$createdAt": { - "type": "string", - "description": "Attribute creation date in ISO 8601 format.", - "x-example": "2020-10-15T06:38:00.000+00:00" - }, - "$updatedAt": { - "type": "string", - "description": "Attribute update date in ISO 8601 format.", - "x-example": "2020-10-15T06:38:00.000+00:00" + "total": { + "type": "integer", + "description": "Total number of insights that matched your query.", + "x-example": 5, + "format": "int32" }, - "elements": { + "insights": { "type": "array", - "description": "Array of elements in enumerated type.", + "description": "List of insights.", "items": { - "type": "string" + "$ref": "#\/components\/schemas\/insight" }, - "x-example": "element" - }, - "format": { - "type": "string", - "description": "String format.", - "x-example": "enum" - }, - "default": { - "type": "string", - "description": "Default value for attribute when not provided. Cannot be set when attribute is required.", - "x-example": "element", - "nullable": true + "x-example": "" } }, "required": [ - "key", - "type", - "status", - "error", - "required", - "$createdAt", - "$updatedAt", - "elements", - "format" + "total", + "insights" ], "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" + "total": 5, + "insights": "" } }, - "attributeIp": { - "description": "AttributeIP", + "reportList": { + "description": "Reports List", "type": "object", "properties": { - "key": { - "type": "string", - "description": "Attribute Key.", - "x-example": "ipAddress" - }, - "type": { - "type": "string", - "description": "Attribute type.", - "x-example": "string" - }, - "status": { - "type": "string", - "description": "Attribute status. Possible values: `available`, `processing`, `deleting`, `stuck`, or `failed`", - "x-example": "available", - "enum": [ - "available", - "processing", - "deleting", - "stuck", - "failed" - ], - "x-enum-name": "AttributeStatus" - }, - "error": { - "type": "string", - "description": "Error message. Displays error generated on failure of creating or deleting an attribute.", - "x-example": "string" - }, - "required": { - "type": "boolean", - "description": "Is attribute required?", - "x-example": true - }, - "array": { - "type": "boolean", - "description": "Is attribute an array?", - "x-example": false, - "nullable": true - }, - "$createdAt": { - "type": "string", - "description": "Attribute creation date in ISO 8601 format.", - "x-example": "2020-10-15T06:38:00.000+00:00" - }, - "$updatedAt": { - "type": "string", - "description": "Attribute update date in ISO 8601 format.", - "x-example": "2020-10-15T06:38:00.000+00:00" - }, - "format": { - "type": "string", - "description": "String format.", - "x-example": "ip" + "total": { + "type": "integer", + "description": "Total number of reports that matched your query.", + "x-example": 5, + "format": "int32" }, - "default": { - "type": "string", - "description": "Default value for attribute when not provided. Cannot be set when attribute is required.", - "x-example": "192.0.2.0", - "nullable": true + "reports": { + "type": "array", + "description": "List of reports.", + "items": { + "$ref": "#\/components\/schemas\/report" + }, + "x-example": "" } }, "required": [ - "key", - "type", - "status", - "error", - "required", - "$createdAt", - "$updatedAt", - "format" + "total", + "reports" ], "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" + "total": 5, + "reports": "" } }, - "attributeUrl": { - "description": "AttributeURL", + "database": { + "description": "Database", "type": "object", "properties": { - "key": { - "type": "string", - "description": "Attribute Key.", - "x-example": "githubUrl" - }, - "type": { - "type": "string", - "description": "Attribute type.", - "x-example": "string" - }, - "status": { + "$id": { "type": "string", - "description": "Attribute status. Possible values: `available`, `processing`, `deleting`, `stuck`, or `failed`", - "x-example": "available", - "enum": [ - "available", - "processing", - "deleting", - "stuck", - "failed" - ], - "x-enum-name": "AttributeStatus" + "description": "Database ID.", + "x-example": "5e5ea5c16897e" }, - "error": { + "name": { "type": "string", - "description": "Error message. Displays error generated on failure of creating or deleting an attribute.", - "x-example": "string" - }, - "required": { - "type": "boolean", - "description": "Is attribute required?", - "x-example": true - }, - "array": { - "type": "boolean", - "description": "Is attribute an array?", - "x-example": false, - "nullable": true + "description": "Database name.", + "x-example": "My Database" }, "$createdAt": { "type": "string", - "description": "Attribute creation date in ISO 8601 format.", + "description": "Database creation date in ISO 8601 format.", "x-example": "2020-10-15T06:38:00.000+00:00" }, "$updatedAt": { "type": "string", - "description": "Attribute update date in ISO 8601 format.", + "description": "Database update date in ISO 8601 format.", "x-example": "2020-10-15T06:38:00.000+00:00" }, - "format": { - "type": "string", - "description": "String format.", - "x-example": "url" - }, - "default": { - "type": "string", - "description": "Default value for attribute when not provided. Cannot be set when attribute is required.", - "x-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.", - "x-example": "birthDay" + "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.", + "x-example": false }, "type": { "type": "string", - "description": "Attribute type.", - "x-example": "datetime" + "description": "Database type.", + "x-example": "legacy", + "enum": [ + "legacy", + "tablesdb", + "documentsdb", + "vectorsdb", + "mysql", + "postgresql", + "mongodb" + ], + "x-enum-name": "DatabaseType" }, "status": { "type": "string", - "description": "Attribute status. Possible values: `available`, `processing`, `deleting`, `stuck`, or `failed`", - "x-example": "available", - "enum": [ - "available", - "processing", + "description": "Dedicated database lifecycle status. Null when the database has no valid dedicated backing.", + "x-example": "ready", + "readOnly": true, + "enum": [ + "provisioning", + "ready", + "inactive", + "paused", + "failed", "deleting", - "stuck", - "failed" + "deleted", + "restoring", + "scaling", + "upgrading", + "migrating", + "pausing", + "resuming", + "failing-over" ], - "x-enum-name": "AttributeStatus" + "x-enum-name": "DatabaseStatus", + "nullable": true }, - "error": { + "engine": { "type": "string", - "description": "Error message. Displays error generated on failure of creating or deleting an attribute.", - "x-example": "string" - }, - "required": { - "type": "boolean", - "description": "Is attribute required?", - "x-example": true - }, - "array": { - "type": "boolean", - "description": "Is attribute an array?", - "x-example": false, + "description": "Underlying engine of the dedicated backing: postgresql, mysql, mariadb, 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.", + "x-example": "postgresql", + "readOnly": true, "nullable": true }, - "$createdAt": { + "specification": { "type": "string", - "description": "Attribute creation date in ISO 8601 format.", - "x-example": "2020-10-15T06:38:00.000+00:00" + "description": "Compute specification identifier of the dedicated backing, e.g. s-2vcpu-2gb. Null when the database has no dedicated backing.", + "x-example": "s-2vcpu-2gb", + "readOnly": true, + "nullable": true }, - "$updatedAt": { - "type": "string", - "description": "Attribute update date in ISO 8601 format.", - "x-example": "2020-10-15T06:38:00.000+00:00" + "replicas": { + "type": "integer", + "description": "Number of secondary high availability replicas, excluding the primary. Null when backing configuration is unavailable.", + "x-example": 0, + "format": "int32", + "readOnly": true, + "nullable": true }, - "format": { - "type": "string", - "description": "ISO 8601 format.", - "x-example": "datetime" + "policies": { + "type": "array", + "description": "Database backup policies.", + "items": { + "$ref": "#\/components\/schemas\/backupPolicy" + }, + "x-example": {}, + "nullable": true }, - "default": { - "type": "string", - "description": "Default value for attribute when not provided. Only null is optional", - "x-example": "2020-10-15T06:38:00.000+00:00", + "archives": { + "type": "array", + "description": "Database backup archives.", + "items": { + "$ref": "#\/components\/schemas\/backupArchive" + }, + "x-example": {}, "nullable": true } }, "required": [ - "key", - "type", - "status", - "error", - "required", + "$id", + "name", "$createdAt", "$updatedAt", - "format" + "enabled", + "type" ], "example": { - "key": "birthDay", - "type": "datetime", - "status": "available", - "error": "string", - "required": true, - "array": false, + "$id": "5e5ea5c16897e", + "name": "My Database", "$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" + "enabled": false, + "type": "legacy", + "status": "ready", + "engine": "postgresql", + "specification": "s-2vcpu-2gb", + "replicas": 0, + "policies": {}, + "archives": {} } }, - "attributeRelationship": { - "description": "AttributeRelationship", + "embedding": { + "description": "Embedding", "type": "object", "properties": { - "key": { + "model": { "type": "string", - "description": "Attribute Key.", - "x-example": "fullName" + "description": "Embedding model used to generate embeddings.", + "x-example": "nomic-embed-text" }, - "type": { - "type": "string", - "description": "Attribute type.", - "x-example": "string" + "dimension": { + "type": "integer", + "description": "Number of dimensions for each embedding vector.", + "x-example": 768, + "format": "int32" }, - "status": { - "type": "string", - "description": "Attribute status. Possible values: `available`, `processing`, `deleting`, `stuck`, or `failed`", - "x-example": "available", - "enum": [ - "available", - "processing", - "deleting", - "stuck", - "failed" - ], - "x-enum-name": "AttributeStatus" + "embedding": { + "type": "array", + "description": "Embedding vector values. If an error occurs, this will be an empty array.", + "items": { + "type": "number", + "format": "double" + }, + "x-example": [ + 0.01, + 0.02, + 0.03 + ] }, "error": { "type": "string", - "description": "Error message. Displays error generated on failure of creating or deleting an attribute.", - "x-example": "string" - }, - "required": { - "type": "boolean", - "description": "Is attribute required?", - "x-example": true - }, - "array": { - "type": "boolean", - "description": "Is attribute an array?", - "x-example": false, - "nullable": true + "description": "Error message if embedding generation fails. Empty string if no error.", + "x-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.", + "x-example": "5e5ea5c16897e" }, "$createdAt": { "type": "string", - "description": "Attribute creation date in ISO 8601 format.", + "description": "Collection creation date in ISO 8601 format.", "x-example": "2020-10-15T06:38:00.000+00:00" }, "$updatedAt": { "type": "string", - "description": "Attribute update date in ISO 8601 format.", + "description": "Collection update date in ISO 8601 format.", "x-example": "2020-10-15T06:38:00.000+00:00" }, - "relatedCollection": { + "$permissions": { + "type": "array", + "description": "Collection permissions. [Learn more about permissions](https:\/\/appwrite.io\/docs\/permissions).", + "items": { + "type": "string" + }, + "x-example": [ + "read(\"any\")" + ] + }, + "databaseId": { "type": "string", - "description": "The ID of the related collection.", - "x-example": "collection" + "description": "Database ID.", + "x-example": "5e5ea5c16897e" }, - "relationType": { + "name": { "type": "string", - "description": "The type of the relationship.", - "x-example": "oneToOne|oneToMany|manyToOne|manyToMany" + "description": "Collection name.", + "x-example": "My Collection" }, - "twoWay": { + "enabled": { "type": "boolean", - "description": "Is the relationship two-way?", + "description": "Collection enabled. Can be 'enabled' or 'disabled'. When disabled, the collection is inaccessible to users, but remains accessible to Server SDKs using API keys.", "x-example": false }, - "twoWayKey": { - "type": "string", - "description": "The key of the two-way relationship.", - "x-example": "string" + "documentSecurity": { + "type": "boolean", + "description": "Whether document-level permissions are enabled. [Learn more about permissions](https:\/\/appwrite.io\/docs\/permissions).", + "x-example": true }, - "onDelete": { - "type": "string", - "description": "How deleting the parent document will propagate to child documents.", - "x-example": "restrict|cascade|setNull" + "attributes": { + "type": "array", + "description": "Collection attributes.", + "items": { + "anyOf": [ + { + "$ref": "#\/components\/schemas\/attributeBoolean" + }, + { + "$ref": "#\/components\/schemas\/attributeBigint" + }, + { + "$ref": "#\/components\/schemas\/attributeInteger" + }, + { + "$ref": "#\/components\/schemas\/attributeFloat" + }, + { + "$ref": "#\/components\/schemas\/attributeEmail" + }, + { + "$ref": "#\/components\/schemas\/attributeEnum" + }, + { + "$ref": "#\/components\/schemas\/attributeUrl" + }, + { + "$ref": "#\/components\/schemas\/attributeIp" + }, + { + "$ref": "#\/components\/schemas\/attributeDatetime" + }, + { + "$ref": "#\/components\/schemas\/attributeRelationship" + }, + { + "$ref": "#\/components\/schemas\/attributePoint" + }, + { + "$ref": "#\/components\/schemas\/attributeLine" + }, + { + "$ref": "#\/components\/schemas\/attributePolygon" + }, + { + "$ref": "#\/components\/schemas\/attributeVarchar" + }, + { + "$ref": "#\/components\/schemas\/attributeText" + }, + { + "$ref": "#\/components\/schemas\/attributeMediumtext" + }, + { + "$ref": "#\/components\/schemas\/attributeLongtext" + }, + { + "$ref": "#\/components\/schemas\/attributeString" + } + ], + "discriminator": { + "propertyName": "type", + "mapping": { + "boolean": "#\/components\/schemas\/attributeBoolean", + "bigint": "#\/components\/schemas\/attributeBigint", + "integer": "#\/components\/schemas\/attributeInteger", + "double": "#\/components\/schemas\/attributeFloat", + "string": "#\/components\/schemas\/attributeString", + "datetime": "#\/components\/schemas\/attributeDatetime", + "relationship": "#\/components\/schemas\/attributeRelationship", + "point": "#\/components\/schemas\/attributePoint", + "linestring": "#\/components\/schemas\/attributeLine", + "polygon": "#\/components\/schemas\/attributePolygon", + "varchar": "#\/components\/schemas\/attributeVarchar", + "text": "#\/components\/schemas\/attributeText", + "mediumtext": "#\/components\/schemas\/attributeMediumtext", + "longtext": "#\/components\/schemas\/attributeLongtext" + }, + "x-propertyNames": [ + "type", + "format" + ], + "x-mapping": { + "#\/components\/schemas\/attributeBoolean": { + "type": "boolean" + }, + "#\/components\/schemas\/attributeBigint": { + "type": "bigint" + }, + "#\/components\/schemas\/attributeInteger": { + "type": "integer" + }, + "#\/components\/schemas\/attributeFloat": { + "type": "double" + }, + "#\/components\/schemas\/attributeEmail": { + "type": "string", + "format": "email" + }, + "#\/components\/schemas\/attributeEnum": { + "type": "string", + "format": "enum" + }, + "#\/components\/schemas\/attributeUrl": { + "type": "string", + "format": "url" + }, + "#\/components\/schemas\/attributeIp": { + "type": "string", + "format": "ip" + }, + "#\/components\/schemas\/attributeDatetime": { + "type": "datetime" + }, + "#\/components\/schemas\/attributeRelationship": { + "type": "relationship" + }, + "#\/components\/schemas\/attributePoint": { + "type": "point" + }, + "#\/components\/schemas\/attributeLine": { + "type": "linestring" + }, + "#\/components\/schemas\/attributePolygon": { + "type": "polygon" + }, + "#\/components\/schemas\/attributeVarchar": { + "type": "varchar" + }, + "#\/components\/schemas\/attributeText": { + "type": "text" + }, + "#\/components\/schemas\/attributeMediumtext": { + "type": "mediumtext" + }, + "#\/components\/schemas\/attributeLongtext": { + "type": "longtext" + }, + "#\/components\/schemas\/attributeString": { + "type": "string" + } + } + } + }, + "x-example": {} }, - "side": { - "type": "string", - "description": "Whether this is the parent or child side of the relationship", - "x-example": "parent|child" + "indexes": { + "type": "array", + "description": "Collection indexes.", + "items": { + "$ref": "#\/components\/schemas\/index" + }, + "x-example": {} + }, + "bytesMax": { + "type": "integer", + "description": "Maximum document size in bytes. Returns 0 when no limit applies.", + "x-example": 65535, + "format": "int32" + }, + "bytesUsed": { + "type": "integer", + "description": "Currently used document size in bytes based on defined attributes.", + "x-example": 1500, + "format": "int32" + } + }, + "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.", + "x-example": 5, + "format": "int32" + }, + "attributes": { + "type": "array", + "description": "List of attributes.", + "items": { + "anyOf": [ + { + "$ref": "#\/components\/schemas\/attributeBoolean" + }, + { + "$ref": "#\/components\/schemas\/attributeBigint" + }, + { + "$ref": "#\/components\/schemas\/attributeInteger" + }, + { + "$ref": "#\/components\/schemas\/attributeFloat" + }, + { + "$ref": "#\/components\/schemas\/attributeEmail" + }, + { + "$ref": "#\/components\/schemas\/attributeEnum" + }, + { + "$ref": "#\/components\/schemas\/attributeUrl" + }, + { + "$ref": "#\/components\/schemas\/attributeIp" + }, + { + "$ref": "#\/components\/schemas\/attributeDatetime" + }, + { + "$ref": "#\/components\/schemas\/attributeRelationship" + }, + { + "$ref": "#\/components\/schemas\/attributePoint" + }, + { + "$ref": "#\/components\/schemas\/attributeLine" + }, + { + "$ref": "#\/components\/schemas\/attributePolygon" + }, + { + "$ref": "#\/components\/schemas\/attributeVarchar" + }, + { + "$ref": "#\/components\/schemas\/attributeText" + }, + { + "$ref": "#\/components\/schemas\/attributeMediumtext" + }, + { + "$ref": "#\/components\/schemas\/attributeLongtext" + }, + { + "$ref": "#\/components\/schemas\/attributeString" + } + ], + "discriminator": { + "propertyName": "type", + "mapping": { + "boolean": "#\/components\/schemas\/attributeBoolean", + "bigint": "#\/components\/schemas\/attributeBigint", + "integer": "#\/components\/schemas\/attributeInteger", + "double": "#\/components\/schemas\/attributeFloat", + "string": "#\/components\/schemas\/attributeString", + "datetime": "#\/components\/schemas\/attributeDatetime", + "relationship": "#\/components\/schemas\/attributeRelationship", + "point": "#\/components\/schemas\/attributePoint", + "linestring": "#\/components\/schemas\/attributeLine", + "polygon": "#\/components\/schemas\/attributePolygon", + "varchar": "#\/components\/schemas\/attributeVarchar", + "text": "#\/components\/schemas\/attributeText", + "mediumtext": "#\/components\/schemas\/attributeMediumtext", + "longtext": "#\/components\/schemas\/attributeLongtext" + }, + "x-propertyNames": [ + "type", + "format" + ], + "x-mapping": { + "#\/components\/schemas\/attributeBoolean": { + "type": "boolean" + }, + "#\/components\/schemas\/attributeBigint": { + "type": "bigint" + }, + "#\/components\/schemas\/attributeInteger": { + "type": "integer" + }, + "#\/components\/schemas\/attributeFloat": { + "type": "double" + }, + "#\/components\/schemas\/attributeEmail": { + "type": "string", + "format": "email" + }, + "#\/components\/schemas\/attributeEnum": { + "type": "string", + "format": "enum" + }, + "#\/components\/schemas\/attributeUrl": { + "type": "string", + "format": "url" + }, + "#\/components\/schemas\/attributeIp": { + "type": "string", + "format": "ip" + }, + "#\/components\/schemas\/attributeDatetime": { + "type": "datetime" + }, + "#\/components\/schemas\/attributeRelationship": { + "type": "relationship" + }, + "#\/components\/schemas\/attributePoint": { + "type": "point" + }, + "#\/components\/schemas\/attributeLine": { + "type": "linestring" + }, + "#\/components\/schemas\/attributePolygon": { + "type": "polygon" + }, + "#\/components\/schemas\/attributeVarchar": { + "type": "varchar" + }, + "#\/components\/schemas\/attributeText": { + "type": "text" + }, + "#\/components\/schemas\/attributeMediumtext": { + "type": "mediumtext" + }, + "#\/components\/schemas\/attributeLongtext": { + "type": "longtext" + }, + "#\/components\/schemas\/attributeString": { + "type": "string" + } + } + } + }, + "x-example": "" } }, "required": [ - "key", - "type", - "status", - "error", - "required", - "$createdAt", - "$updatedAt", - "relatedCollection", - "relationType", - "twoWay", - "twoWayKey", - "onDelete", - "side" + "total", + "attributes" ], "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" + "total": 5, + "attributes": "" } }, - "attributePoint": { - "description": "AttributePoint", + "attributeString": { + "description": "AttributeString", "type": "object", "properties": { "key": { @@ -94884,17 +94038,22 @@ "description": "Attribute update date in ISO 8601 format.", "x-example": "2020-10-15T06:38:00.000+00:00" }, + "size": { + "type": "integer", + "description": "Attribute size.", + "x-example": 128, + "format": "int32" + }, "default": { - "type": "array", + "type": "string", "description": "Default value for attribute when not provided. Cannot be set when attribute is required.", - "x-example": [ - 0, - 0 - ], - "items": { - "type": "number", - "format": "double" - }, + "x-example": "default", + "nullable": true + }, + "encrypt": { + "type": "boolean", + "description": "Defines whether this attribute is encrypted or not.", + "x-example": false, "nullable": true } }, @@ -94905,7 +94064,8 @@ "error", "required", "$createdAt", - "$updatedAt" + "$updatedAt", + "size" ], "example": { "key": "fullName", @@ -94916,25 +94076,24 @@ "array": false, "$createdAt": "2020-10-15T06:38:00.000+00:00", "$updatedAt": "2020-10-15T06:38:00.000+00:00", - "default": [ - 0, - 0 - ] + "size": 128, + "default": "default", + "encrypt": false } }, - "attributeLine": { - "description": "AttributeLine", + "attributeInteger": { + "description": "AttributeInteger", "type": "object", "properties": { "key": { "type": "string", "description": "Attribute Key.", - "x-example": "fullName" + "x-example": "count" }, "type": { "type": "string", "description": "Attribute type.", - "x-example": "string" + "x-example": "integer" }, "status": { "type": "string", @@ -94975,26 +94134,25 @@ "description": "Attribute update date in ISO 8601 format.", "x-example": "2020-10-15T06:38:00.000+00:00" }, + "min": { + "type": "integer", + "description": "Minimum value to enforce for new documents.", + "x-example": 1, + "format": "int64", + "nullable": true + }, + "max": { + "type": "integer", + "description": "Maximum value to enforce for new documents.", + "x-example": 10, + "format": "int64", + "nullable": true + }, "default": { - "type": "array", + "type": "integer", "description": "Default value for attribute when not provided. Cannot be set when attribute is required.", - "x-example": [ - [ - 0, - 0 - ], - [ - 1, - 1 - ] - ], - "items": { - "type": "array", - "items": { - "type": "number", - "format": "double" - } - }, + "x-example": 10, + "format": "int32", "nullable": true } }, @@ -95008,39 +94166,32 @@ "$updatedAt" ], "example": { - "key": "fullName", - "type": "string", + "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", - "default": [ - [ - 0, - 0 - ], - [ - 1, - 1 - ] - ] + "min": 1, + "max": 10, + "default": 10 } }, - "attributePolygon": { - "description": "AttributePolygon", + "attributeBigint": { + "description": "AttributeBigInt", "type": "object", "properties": { "key": { "type": "string", "description": "Attribute Key.", - "x-example": "fullName" + "x-example": "count" }, "type": { "type": "string", "description": "Attribute type.", - "x-example": "string" + "x-example": "bigint" }, "status": { "type": "string", @@ -95081,41 +94232,25 @@ "description": "Attribute update date in ISO 8601 format.", "x-example": "2020-10-15T06:38:00.000+00:00" }, + "min": { + "type": "integer", + "description": "Minimum value to enforce for new documents.", + "x-example": 1, + "format": "int64", + "nullable": true + }, + "max": { + "type": "integer", + "description": "Maximum value to enforce for new documents.", + "x-example": 10, + "format": "int64", + "nullable": true + }, "default": { - "type": "array", + "type": "integer", "description": "Default value for attribute when not provided. Cannot be set when attribute is required.", - "x-example": [ - [ - [ - 0, - 0 - ], - [ - 0, - 10 - ] - ], - [ - [ - 10, - 10 - ], - [ - 0, - 0 - ] - ] - ], - "items": { - "type": "array", - "items": { - "type": "array", - "items": { - "type": "number", - "format": "double" - } - } - }, + "x-example": 10, + "format": "int64", "nullable": true } }, @@ -95129,51 +94264,32 @@ "$updatedAt" ], "example": { - "key": "fullName", - "type": "string", + "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", - "default": [ - [ - [ - 0, - 0 - ], - [ - 0, - 10 - ] - ], - [ - [ - 10, - 10 - ], - [ - 0, - 0 - ] - ] - ] + "min": 1, + "max": 10, + "default": 10 } }, - "attributeVarchar": { - "description": "AttributeVarchar", + "attributeFloat": { + "description": "AttributeFloat", "type": "object", "properties": { "key": { "type": "string", "description": "Attribute Key.", - "x-example": "fullName" + "x-example": "percentageCompleted" }, "type": { "type": "string", "description": "Attribute type.", - "x-example": "string" + "x-example": "double" }, "status": { "type": "string", @@ -95214,22 +94330,25 @@ "description": "Attribute update date in ISO 8601 format.", "x-example": "2020-10-15T06:38:00.000+00:00" }, - "size": { - "type": "integer", - "description": "Attribute size.", - "x-example": 128, - "format": "int32" + "min": { + "type": "number", + "description": "Minimum value to enforce for new documents.", + "x-example": 1.5, + "format": "double", + "nullable": true }, - "default": { - "type": "string", - "description": "Default value for attribute when not provided. Cannot be set when attribute is required.", - "x-example": "default", + "max": { + "type": "number", + "description": "Maximum value to enforce for new documents.", + "x-example": 10.5, + "format": "double", "nullable": true }, - "encrypt": { - "type": "boolean", - "description": "Defines whether this attribute is encrypted or not.", - "x-example": false, + "default": { + "type": "number", + "description": "Default value for attribute when not provided. Cannot be set when attribute is required.", + "x-example": 2.5, + "format": "double", "nullable": true } }, @@ -95240,36 +94359,35 @@ "error", "required", "$createdAt", - "$updatedAt", - "size" + "$updatedAt" ], "example": { - "key": "fullName", - "type": "string", + "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", - "size": 128, - "default": "default", - "encrypt": false + "min": 1.5, + "max": 10.5, + "default": 2.5 } }, - "attributeText": { - "description": "AttributeText", + "attributeBoolean": { + "description": "AttributeBoolean", "type": "object", "properties": { "key": { "type": "string", "description": "Attribute Key.", - "x-example": "fullName" + "x-example": "isEnabled" }, "type": { "type": "string", "description": "Attribute type.", - "x-example": "string" + "x-example": "boolean" }, "status": { "type": "string", @@ -95311,14 +94429,8 @@ "x-example": "2020-10-15T06:38:00.000+00:00" }, "default": { - "type": "string", - "description": "Default value for attribute when not provided. Cannot be set when attribute is required.", - "x-example": "default", - "nullable": true - }, - "encrypt": { "type": "boolean", - "description": "Defines whether this attribute is encrypted or not.", + "description": "Default value for attribute when not provided. Cannot be set when attribute is required.", "x-example": false, "nullable": true } @@ -95333,26 +94445,25 @@ "$updatedAt" ], "example": { - "key": "fullName", - "type": "string", + "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": "default", - "encrypt": false + "default": false } }, - "attributeMediumtext": { - "description": "AttributeMediumtext", + "attributeEmail": { + "description": "AttributeEmail", "type": "object", "properties": { "key": { "type": "string", "description": "Attribute Key.", - "x-example": "fullName" + "x-example": "userEmail" }, "type": { "type": "string", @@ -95398,16 +94509,15 @@ "description": "Attribute update date in ISO 8601 format.", "x-example": "2020-10-15T06:38:00.000+00:00" }, + "format": { + "type": "string", + "description": "String format.", + "x-example": "email" + }, "default": { "type": "string", "description": "Default value for attribute when not provided. Cannot be set when attribute is required.", - "x-example": "default", - "nullable": true - }, - "encrypt": { - "type": "boolean", - "description": "Defines whether this attribute is encrypted or not.", - "x-example": false, + "x-example": "default@example.com", "nullable": true } }, @@ -95418,10 +94528,11 @@ "error", "required", "$createdAt", - "$updatedAt" + "$updatedAt", + "format" ], "example": { - "key": "fullName", + "key": "userEmail", "type": "string", "status": "available", "error": "string", @@ -95429,18 +94540,18 @@ "array": false, "$createdAt": "2020-10-15T06:38:00.000+00:00", "$updatedAt": "2020-10-15T06:38:00.000+00:00", - "default": "default", - "encrypt": false + "format": "email", + "default": "default@example.com" } }, - "attributeLongtext": { - "description": "AttributeLongtext", + "attributeEnum": { + "description": "AttributeEnum", "type": "object", "properties": { "key": { "type": "string", "description": "Attribute Key.", - "x-example": "fullName" + "x-example": "status" }, "type": { "type": "string", @@ -95486,180 +94597,59 @@ "description": "Attribute update date in ISO 8601 format.", "x-example": "2020-10-15T06:38:00.000+00:00" }, - "default": { - "type": "string", - "description": "Default value for attribute when not provided. Cannot be set when attribute is required.", - "x-example": "default", - "nullable": true - }, - "encrypt": { - "type": "boolean", - "description": "Defines whether this attribute is encrypted or not.", - "x-example": false, - "nullable": true - } - }, - "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.", - "x-example": "5e5ea5c16897e" - }, - "$createdAt": { - "type": "string", - "description": "Collection creation date in ISO 8601 format.", - "x-example": "2020-10-15T06:38:00.000+00:00" - }, - "$updatedAt": { - "type": "string", - "description": "Collection update date in ISO 8601 format.", - "x-example": "2020-10-15T06:38:00.000+00:00" - }, - "$permissions": { + "elements": { "type": "array", - "description": "Collection permissions. [Learn more about permissions](https:\/\/appwrite.io\/docs\/permissions).", + "description": "Array of elements in enumerated type.", "items": { "type": "string" }, - "x-example": [ - "read(\"any\")" - ] + "x-example": "element" }, - "databaseId": { + "format": { "type": "string", - "description": "Database ID.", - "x-example": "5e5ea5c16897e" + "description": "String format.", + "x-example": "enum" }, - "name": { + "default": { "type": "string", - "description": "Collection name.", - "x-example": "My Collection" - }, - "enabled": { - "type": "boolean", - "description": "Collection enabled. Can be 'enabled' or 'disabled'. When disabled, the collection is inaccessible to users, but remains accessible to Server SDKs using API keys.", - "x-example": false - }, - "documentSecurity": { - "type": "boolean", - "description": "Whether document-level permissions are enabled. [Learn more about permissions](https:\/\/appwrite.io\/docs\/permissions).", - "x-example": true - }, - "attributes": { - "type": "array", - "description": "Collection attributes.", - "items": { - "anyOf": [ - { - "$ref": "#\/components\/schemas\/attributeObject" - }, - { - "$ref": "#\/components\/schemas\/attributeVector" - } - ], - "discriminator": { - "propertyName": "type", - "mapping": { - "object": "#\/components\/schemas\/attributeObject", - "vector": "#\/components\/schemas\/attributeVector" - } - } - }, - "x-example": {} - }, - "indexes": { - "type": "array", - "description": "Collection indexes.", - "items": { - "$ref": "#\/components\/schemas\/index" - }, - "x-example": {} - }, - "bytesMax": { - "type": "integer", - "description": "Maximum document size in bytes. Returns 0 when no limit applies.", - "x-example": 65535, - "format": "int32" - }, - "bytesUsed": { - "type": "integer", - "description": "Currently used document size in bytes based on defined attributes.", - "x-example": 1500, - "format": "int32" - }, - "dimension": { - "type": "integer", - "description": "Embedding dimension.", - "x-example": 1536, - "format": "int32" + "description": "Default value for attribute when not provided. Cannot be set when attribute is required.", + "x-example": "element", + "nullable": true } }, "required": [ - "$id", + "key", + "type", + "status", + "error", + "required", "$createdAt", "$updatedAt", - "$permissions", - "databaseId", - "name", - "enabled", - "documentSecurity", - "attributes", - "indexes", - "bytesMax", - "bytesUsed", - "dimension" + "elements", + "format" ], "example": { - "$id": "5e5ea5c16897e", + "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", - "$permissions": [ - "read(\"any\")" - ], - "databaseId": "5e5ea5c16897e", - "name": "My Collection", - "enabled": false, - "documentSecurity": true, - "attributes": {}, - "indexes": {}, - "bytesMax": 65535, - "bytesUsed": 1500, - "dimension": 1536 + "elements": "element", + "format": "enum", + "default": "element" } }, - "attributeObject": { - "description": "AttributeObject", + "attributeIp": { + "description": "AttributeIP", "type": "object", "properties": { "key": { "type": "string", "description": "Attribute Key.", - "x-example": "fullName" + "x-example": "ipAddress" }, "type": { "type": "string", @@ -95704,6 +94694,17 @@ "type": "string", "description": "Attribute update date in ISO 8601 format.", "x-example": "2020-10-15T06:38:00.000+00:00" + }, + "format": { + "type": "string", + "description": "String format.", + "x-example": "ip" + }, + "default": { + "type": "string", + "description": "Default value for attribute when not provided. Cannot be set when attribute is required.", + "x-example": "192.0.2.0", + "nullable": true } }, "required": [ @@ -95713,27 +94714,30 @@ "error", "required", "$createdAt", - "$updatedAt" + "$updatedAt", + "format" ], "example": { - "key": "fullName", + "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" + "$updatedAt": "2020-10-15T06:38:00.000+00:00", + "format": "ip", + "default": "192.0.2.0" } }, - "attributeVector": { - "description": "AttributeVector", + "attributeUrl": { + "description": "AttributeURL", "type": "object", "properties": { "key": { "type": "string", "description": "Attribute Key.", - "x-example": "fullName" + "x-example": "githubUrl" }, "type": { "type": "string", @@ -95779,11 +94783,16 @@ "description": "Attribute update date in ISO 8601 format.", "x-example": "2020-10-15T06:38:00.000+00:00" }, - "size": { - "type": "integer", - "description": "Vector dimensions.", - "x-example": 1536, - "format": "int32" + "format": { + "type": "string", + "description": "String format.", + "x-example": "url" + }, + "default": { + "type": "string", + "description": "Default value for attribute when not provided. Cannot be set when attribute is required.", + "x-example": "http:\/\/example.com", + "nullable": true } }, "required": [ @@ -95794,10 +94803,10 @@ "required", "$createdAt", "$updatedAt", - "size" + "format" ], "example": { - "key": "fullName", + "key": "githubUrl", "type": "string", "status": "available", "error": "string", @@ -95805,439 +94814,115 @@ "array": false, "$createdAt": "2020-10-15T06:38:00.000+00:00", "$updatedAt": "2020-10-15T06:38:00.000+00:00", - "size": 1536 + "format": "url", + "default": "http:\/\/example.com" } }, - "table": { - "description": "Table", + "attributeDatetime": { + "description": "AttributeDatetime", "type": "object", "properties": { - "$id": { - "type": "string", - "description": "Table ID.", - "x-example": "5e5ea5c16897e" - }, - "$createdAt": { + "key": { "type": "string", - "description": "Table creation date in ISO 8601 format.", - "x-example": "2020-10-15T06:38:00.000+00:00" + "description": "Attribute Key.", + "x-example": "birthDay" }, - "$updatedAt": { + "type": { "type": "string", - "description": "Table update date in ISO 8601 format.", - "x-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" - }, - "x-example": [ - "read(\"any\")" - ] + "description": "Attribute type.", + "x-example": "datetime" }, - "databaseId": { + "status": { "type": "string", - "description": "Database ID.", - "x-example": "5e5ea5c16897e" + "description": "Attribute status. Possible values: `available`, `processing`, `deleting`, `stuck`, or `failed`", + "x-example": "available", + "enum": [ + "available", + "processing", + "deleting", + "stuck", + "failed" + ], + "x-enum-name": "AttributeStatus" }, - "name": { + "error": { "type": "string", - "description": "Table name.", - "x-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.", - "x-example": false + "description": "Error message. Displays error generated on failure of creating or deleting an attribute.", + "x-example": "string" }, - "rowSecurity": { + "required": { "type": "boolean", - "description": "Whether row-level permissions are enabled. [Learn more about permissions](https:\/\/appwrite.io\/docs\/permissions).", + "description": "Is attribute required?", "x-example": true }, - "columns": { - "type": "array", - "description": "Table columns.", - "items": { - "anyOf": [ - { - "$ref": "#\/components\/schemas\/columnBoolean" - }, - { - "$ref": "#\/components\/schemas\/columnBigint" - }, - { - "$ref": "#\/components\/schemas\/columnInteger" - }, - { - "$ref": "#\/components\/schemas\/columnFloat" - }, - { - "$ref": "#\/components\/schemas\/columnEmail" - }, - { - "$ref": "#\/components\/schemas\/columnEnum" - }, - { - "$ref": "#\/components\/schemas\/columnUrl" - }, - { - "$ref": "#\/components\/schemas\/columnIp" - }, - { - "$ref": "#\/components\/schemas\/columnDatetime" - }, - { - "$ref": "#\/components\/schemas\/columnRelationship" - }, - { - "$ref": "#\/components\/schemas\/columnPoint" - }, - { - "$ref": "#\/components\/schemas\/columnLine" - }, - { - "$ref": "#\/components\/schemas\/columnPolygon" - }, - { - "$ref": "#\/components\/schemas\/columnVarchar" - }, - { - "$ref": "#\/components\/schemas\/columnText" - }, - { - "$ref": "#\/components\/schemas\/columnMediumtext" - }, - { - "$ref": "#\/components\/schemas\/columnLongtext" - }, - { - "$ref": "#\/components\/schemas\/columnString" - } - ], - "discriminator": { - "propertyName": "type", - "mapping": { - "boolean": "#\/components\/schemas\/columnBoolean", - "bigint": "#\/components\/schemas\/columnBigint", - "integer": "#\/components\/schemas\/columnInteger", - "double": "#\/components\/schemas\/columnFloat", - "string": "#\/components\/schemas\/columnString", - "datetime": "#\/components\/schemas\/columnDatetime", - "relationship": "#\/components\/schemas\/columnRelationship", - "point": "#\/components\/schemas\/columnPoint", - "linestring": "#\/components\/schemas\/columnLine", - "polygon": "#\/components\/schemas\/columnPolygon", - "varchar": "#\/components\/schemas\/columnVarchar", - "text": "#\/components\/schemas\/columnText", - "mediumtext": "#\/components\/schemas\/columnMediumtext", - "longtext": "#\/components\/schemas\/columnLongtext" - }, - "x-propertyNames": [ - "type", - "format" - ], - "x-mapping": { - "#\/components\/schemas\/columnBoolean": { - "type": "boolean" - }, - "#\/components\/schemas\/columnBigint": { - "type": "bigint" - }, - "#\/components\/schemas\/columnInteger": { - "type": "integer" - }, - "#\/components\/schemas\/columnFloat": { - "type": "double" - }, - "#\/components\/schemas\/columnEmail": { - "type": "string", - "format": "email" - }, - "#\/components\/schemas\/columnEnum": { - "type": "string", - "format": "enum" - }, - "#\/components\/schemas\/columnUrl": { - "type": "string", - "format": "url" - }, - "#\/components\/schemas\/columnIp": { - "type": "string", - "format": "ip" - }, - "#\/components\/schemas\/columnDatetime": { - "type": "datetime" - }, - "#\/components\/schemas\/columnRelationship": { - "type": "relationship" - }, - "#\/components\/schemas\/columnPoint": { - "type": "point" - }, - "#\/components\/schemas\/columnLine": { - "type": "linestring" - }, - "#\/components\/schemas\/columnPolygon": { - "type": "polygon" - }, - "#\/components\/schemas\/columnVarchar": { - "type": "varchar" - }, - "#\/components\/schemas\/columnText": { - "type": "text" - }, - "#\/components\/schemas\/columnMediumtext": { - "type": "mediumtext" - }, - "#\/components\/schemas\/columnLongtext": { - "type": "longtext" - }, - "#\/components\/schemas\/columnString": { - "type": "string" - } - } - } - }, - "x-example": {} - }, - "indexes": { - "type": "array", - "description": "Table indexes.", - "items": { - "$ref": "#\/components\/schemas\/columnIndex" - }, - "x-example": {} - }, - "bytesMax": { - "type": "integer", - "description": "Maximum row size in bytes. Returns 0 when no limit applies.", - "x-example": 65535, - "format": "int32" - }, - "bytesUsed": { - "type": "integer", - "description": "Currently used row size in bytes based on defined columns.", - "x-example": 1500, - "format": "int32" - } - }, - "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.", - "x-example": 5, - "format": "int32" + "array": { + "type": "boolean", + "description": "Is attribute an array?", + "x-example": false, + "nullable": true }, - "columns": { - "type": "array", - "description": "List of columns.", - "items": { - "anyOf": [ - { - "$ref": "#\/components\/schemas\/columnBoolean" - }, - { - "$ref": "#\/components\/schemas\/columnBigint" - }, - { - "$ref": "#\/components\/schemas\/columnInteger" - }, - { - "$ref": "#\/components\/schemas\/columnFloat" - }, - { - "$ref": "#\/components\/schemas\/columnEmail" - }, - { - "$ref": "#\/components\/schemas\/columnEnum" - }, - { - "$ref": "#\/components\/schemas\/columnUrl" - }, - { - "$ref": "#\/components\/schemas\/columnIp" - }, - { - "$ref": "#\/components\/schemas\/columnDatetime" - }, - { - "$ref": "#\/components\/schemas\/columnRelationship" - }, - { - "$ref": "#\/components\/schemas\/columnPoint" - }, - { - "$ref": "#\/components\/schemas\/columnLine" - }, - { - "$ref": "#\/components\/schemas\/columnPolygon" - }, - { - "$ref": "#\/components\/schemas\/columnVarchar" - }, - { - "$ref": "#\/components\/schemas\/columnText" - }, - { - "$ref": "#\/components\/schemas\/columnMediumtext" - }, - { - "$ref": "#\/components\/schemas\/columnLongtext" - }, - { - "$ref": "#\/components\/schemas\/columnString" - } - ], - "discriminator": { - "propertyName": "type", - "mapping": { - "boolean": "#\/components\/schemas\/columnBoolean", - "bigint": "#\/components\/schemas\/columnBigint", - "integer": "#\/components\/schemas\/columnInteger", - "double": "#\/components\/schemas\/columnFloat", - "string": "#\/components\/schemas\/columnString", - "datetime": "#\/components\/schemas\/columnDatetime", - "relationship": "#\/components\/schemas\/columnRelationship", - "point": "#\/components\/schemas\/columnPoint", - "linestring": "#\/components\/schemas\/columnLine", - "polygon": "#\/components\/schemas\/columnPolygon", - "varchar": "#\/components\/schemas\/columnVarchar", - "text": "#\/components\/schemas\/columnText", - "mediumtext": "#\/components\/schemas\/columnMediumtext", - "longtext": "#\/components\/schemas\/columnLongtext" - }, - "x-propertyNames": [ - "type", - "format" - ], - "x-mapping": { - "#\/components\/schemas\/columnBoolean": { - "type": "boolean" - }, - "#\/components\/schemas\/columnBigint": { - "type": "bigint" - }, - "#\/components\/schemas\/columnInteger": { - "type": "integer" - }, - "#\/components\/schemas\/columnFloat": { - "type": "double" - }, - "#\/components\/schemas\/columnEmail": { - "type": "string", - "format": "email" - }, - "#\/components\/schemas\/columnEnum": { - "type": "string", - "format": "enum" - }, - "#\/components\/schemas\/columnUrl": { - "type": "string", - "format": "url" - }, - "#\/components\/schemas\/columnIp": { - "type": "string", - "format": "ip" - }, - "#\/components\/schemas\/columnDatetime": { - "type": "datetime" - }, - "#\/components\/schemas\/columnRelationship": { - "type": "relationship" - }, - "#\/components\/schemas\/columnPoint": { - "type": "point" - }, - "#\/components\/schemas\/columnLine": { - "type": "linestring" - }, - "#\/components\/schemas\/columnPolygon": { - "type": "polygon" - }, - "#\/components\/schemas\/columnVarchar": { - "type": "varchar" - }, - "#\/components\/schemas\/columnText": { - "type": "text" - }, - "#\/components\/schemas\/columnMediumtext": { - "type": "mediumtext" - }, - "#\/components\/schemas\/columnLongtext": { - "type": "longtext" - }, - "#\/components\/schemas\/columnString": { - "type": "string" - } - } - } - }, - "x-example": "" + "$createdAt": { + "type": "string", + "description": "Attribute creation date in ISO 8601 format.", + "x-example": "2020-10-15T06:38:00.000+00:00" + }, + "$updatedAt": { + "type": "string", + "description": "Attribute update date in ISO 8601 format.", + "x-example": "2020-10-15T06:38:00.000+00:00" + }, + "format": { + "type": "string", + "description": "ISO 8601 format.", + "x-example": "datetime" + }, + "default": { + "type": "string", + "description": "Default value for attribute when not provided. Only null is optional", + "x-example": "2020-10-15T06:38:00.000+00:00", + "nullable": true } }, "required": [ - "total", - "columns" + "key", + "type", + "status", + "error", + "required", + "$createdAt", + "$updatedAt", + "format" ], "example": { - "total": 5, - "columns": "" + "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" } }, - "columnString": { - "description": "ColumnString", + "attributeRelationship": { + "description": "AttributeRelationship", "type": "object", "properties": { "key": { "type": "string", - "description": "Column Key.", + "description": "Attribute Key.", "x-example": "fullName" }, "type": { "type": "string", - "description": "Column type.", + "description": "Attribute type.", "x-example": "string" }, "status": { "type": "string", - "description": "Column status. Possible values: `available`, `processing`, `deleting`, `stuck`, or `failed`", + "description": "Attribute status. Possible values: `available`, `processing`, `deleting`, `stuck`, or `failed`", "x-example": "available", "enum": [ "available", @@ -96246,51 +94931,63 @@ "stuck", "failed" ], - "x-enum-name": "ColumnStatus" + "x-enum-name": "AttributeStatus" }, "error": { "type": "string", - "description": "Error message. Displays error generated on failure of creating or deleting an column.", + "description": "Error message. Displays error generated on failure of creating or deleting an attribute.", "x-example": "string" }, "required": { "type": "boolean", - "description": "Is column required?", + "description": "Is attribute required?", "x-example": true }, "array": { "type": "boolean", - "description": "Is column an array?", + "description": "Is attribute an array?", "x-example": false, "nullable": true }, "$createdAt": { "type": "string", - "description": "Column creation date in ISO 8601 format.", + "description": "Attribute creation date in ISO 8601 format.", "x-example": "2020-10-15T06:38:00.000+00:00" }, "$updatedAt": { "type": "string", - "description": "Column update date in ISO 8601 format.", + "description": "Attribute update date in ISO 8601 format.", "x-example": "2020-10-15T06:38:00.000+00:00" }, - "size": { - "type": "integer", - "description": "Column size.", - "x-example": 128, - "format": "int32" + "relatedCollection": { + "type": "string", + "description": "The ID of the related collection.", + "x-example": "collection" }, - "default": { + "relationType": { "type": "string", - "description": "Default value for column when not provided. Cannot be set when column is required.", - "x-example": "default", - "nullable": true + "description": "The type of the relationship.", + "x-example": "oneToOne|oneToMany|manyToOne|manyToMany" }, - "encrypt": { + "twoWay": { "type": "boolean", - "description": "Defines whether this column is encrypted or not.", - "x-example": false, - "nullable": true + "description": "Is the relationship two-way?", + "x-example": false + }, + "twoWayKey": { + "type": "string", + "description": "The key of the two-way relationship.", + "x-example": "string" + }, + "onDelete": { + "type": "string", + "description": "How deleting the parent document will propagate to child documents.", + "x-example": "restrict|cascade|setNull" + }, + "side": { + "type": "string", + "description": "Whether this is the parent or child side of the relationship", + "x-example": "parent|child" } }, "required": [ @@ -96301,7 +94998,12 @@ "required", "$createdAt", "$updatedAt", - "size" + "relatedCollection", + "relationType", + "twoWay", + "twoWayKey", + "onDelete", + "side" ], "example": { "key": "fullName", @@ -96312,28 +95014,31 @@ "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 + "relatedCollection": "collection", + "relationType": "oneToOne|oneToMany|manyToOne|manyToMany", + "twoWay": false, + "twoWayKey": "string", + "onDelete": "restrict|cascade|setNull", + "side": "parent|child" } }, - "columnInteger": { - "description": "ColumnInteger", + "attributePoint": { + "description": "AttributePoint", "type": "object", "properties": { "key": { "type": "string", - "description": "Column Key.", - "x-example": "count" + "description": "Attribute Key.", + "x-example": "fullName" }, "type": { "type": "string", - "description": "Column type.", - "x-example": "integer" + "description": "Attribute type.", + "x-example": "string" }, "status": { "type": "string", - "description": "Column status. Possible values: `available`, `processing`, `deleting`, `stuck`, or `failed`", + "description": "Attribute status. Possible values: `available`, `processing`, `deleting`, `stuck`, or `failed`", "x-example": "available", "enum": [ "available", @@ -96342,53 +95047,45 @@ "stuck", "failed" ], - "x-enum-name": "ColumnStatus" + "x-enum-name": "AttributeStatus" }, "error": { "type": "string", - "description": "Error message. Displays error generated on failure of creating or deleting an column.", + "description": "Error message. Displays error generated on failure of creating or deleting an attribute.", "x-example": "string" }, "required": { "type": "boolean", - "description": "Is column required?", + "description": "Is attribute required?", "x-example": true }, "array": { "type": "boolean", - "description": "Is column an array?", + "description": "Is attribute an array?", "x-example": false, "nullable": true }, "$createdAt": { "type": "string", - "description": "Column creation date in ISO 8601 format.", + "description": "Attribute creation date in ISO 8601 format.", "x-example": "2020-10-15T06:38:00.000+00:00" }, "$updatedAt": { "type": "string", - "description": "Column update date in ISO 8601 format.", + "description": "Attribute update date in ISO 8601 format.", "x-example": "2020-10-15T06:38:00.000+00:00" }, - "min": { - "type": "integer", - "description": "Minimum value to enforce for new documents.", - "x-example": 1, - "format": "int64", - "nullable": true - }, - "max": { - "type": "integer", - "description": "Maximum value to enforce for new documents.", - "x-example": 10, - "format": "int64", - "nullable": true - }, "default": { - "type": "integer", - "description": "Default value for column when not provided. Cannot be set when column is required.", - "x-example": 10, - "format": "int32", + "type": "array", + "description": "Default value for attribute when not provided. Cannot be set when attribute is required.", + "x-example": [ + 0, + 0 + ], + "items": { + "type": "number", + "format": "double" + }, "nullable": true } }, @@ -96402,36 +95099,37 @@ "$updatedAt" ], "example": { - "key": "count", - "type": "integer", + "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", - "min": 1, - "max": 10, - "default": 10 + "default": [ + 0, + 0 + ] } }, - "columnBigint": { - "description": "ColumnBigInt", + "attributeLine": { + "description": "AttributeLine", "type": "object", "properties": { "key": { "type": "string", - "description": "Column Key.", - "x-example": "count" + "description": "Attribute Key.", + "x-example": "fullName" }, "type": { "type": "string", - "description": "Column type.", - "x-example": "bigint" + "description": "Attribute type.", + "x-example": "string" }, "status": { "type": "string", - "description": "Column status. Possible values: `available`, `processing`, `deleting`, `stuck`, or `failed`", + "description": "Attribute status. Possible values: `available`, `processing`, `deleting`, `stuck`, or `failed`", "x-example": "available", "enum": [ "available", @@ -96440,53 +95138,175 @@ "stuck", "failed" ], - "x-enum-name": "ColumnStatus" + "x-enum-name": "AttributeStatus" }, "error": { "type": "string", - "description": "Error message. Displays error generated on failure of creating or deleting an column.", + "description": "Error message. Displays error generated on failure of creating or deleting an attribute.", "x-example": "string" }, "required": { "type": "boolean", - "description": "Is column required?", + "description": "Is attribute required?", "x-example": true }, "array": { "type": "boolean", - "description": "Is column an array?", + "description": "Is attribute an array?", "x-example": false, "nullable": true }, "$createdAt": { "type": "string", - "description": "Column creation date in ISO 8601 format.", + "description": "Attribute creation date in ISO 8601 format.", "x-example": "2020-10-15T06:38:00.000+00:00" }, "$updatedAt": { "type": "string", - "description": "Column update date in ISO 8601 format.", + "description": "Attribute update date in ISO 8601 format.", "x-example": "2020-10-15T06:38:00.000+00:00" }, - "min": { - "type": "integer", - "description": "Minimum value to enforce for new documents.", - "x-example": 1, - "format": "int64", + "default": { + "type": "array", + "description": "Default value for attribute when not provided. Cannot be set when attribute is required.", + "x-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.", + "x-example": "fullName" }, - "max": { - "type": "integer", - "description": "Maximum value to enforce for new documents.", - "x-example": 10, - "format": "int64", + "type": { + "type": "string", + "description": "Attribute type.", + "x-example": "string" + }, + "status": { + "type": "string", + "description": "Attribute status. Possible values: `available`, `processing`, `deleting`, `stuck`, or `failed`", + "x-example": "available", + "enum": [ + "available", + "processing", + "deleting", + "stuck", + "failed" + ], + "x-enum-name": "AttributeStatus" + }, + "error": { + "type": "string", + "description": "Error message. Displays error generated on failure of creating or deleting an attribute.", + "x-example": "string" + }, + "required": { + "type": "boolean", + "description": "Is attribute required?", + "x-example": true + }, + "array": { + "type": "boolean", + "description": "Is attribute an array?", + "x-example": false, "nullable": true }, + "$createdAt": { + "type": "string", + "description": "Attribute creation date in ISO 8601 format.", + "x-example": "2020-10-15T06:38:00.000+00:00" + }, + "$updatedAt": { + "type": "string", + "description": "Attribute update date in ISO 8601 format.", + "x-example": "2020-10-15T06:38:00.000+00:00" + }, "default": { - "type": "integer", - "description": "Default value for column when not provided. Cannot be set when column is required.", - "x-example": 10, - "format": "int64", + "type": "array", + "description": "Default value for attribute when not provided. Cannot be set when attribute is required.", + "x-example": [ + [ + [ + 0, + 0 + ], + [ + 0, + 10 + ] + ], + [ + [ + 10, + 10 + ], + [ + 0, + 0 + ] + ] + ], + "items": { + "type": "array", + "items": { + "type": "array", + "items": { + "type": "number", + "format": "double" + } + } + }, "nullable": true } }, @@ -96500,36 +95320,55 @@ "$updatedAt" ], "example": { - "key": "count", - "type": "bigint", + "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", - "min": 1, - "max": 10, - "default": 10 + "default": [ + [ + [ + 0, + 0 + ], + [ + 0, + 10 + ] + ], + [ + [ + 10, + 10 + ], + [ + 0, + 0 + ] + ] + ] } }, - "columnFloat": { - "description": "ColumnFloat", + "attributeVarchar": { + "description": "AttributeVarchar", "type": "object", "properties": { "key": { "type": "string", - "description": "Column Key.", - "x-example": "percentageCompleted" + "description": "Attribute Key.", + "x-example": "fullName" }, "type": { "type": "string", - "description": "Column type.", - "x-example": "double" + "description": "Attribute type.", + "x-example": "string" }, "status": { "type": "string", - "description": "Column status. Possible values: `available`, `processing`, `deleting`, `stuck`, or `failed`", + "description": "Attribute status. Possible values: `available`, `processing`, `deleting`, `stuck`, or `failed`", "x-example": "available", "enum": [ "available", @@ -96538,53 +95377,140 @@ "stuck", "failed" ], - "x-enum-name": "ColumnStatus" + "x-enum-name": "AttributeStatus" }, "error": { "type": "string", - "description": "Error message. Displays error generated on failure of creating or deleting an column.", + "description": "Error message. Displays error generated on failure of creating or deleting an attribute.", "x-example": "string" }, "required": { "type": "boolean", - "description": "Is column required?", + "description": "Is attribute required?", "x-example": true }, "array": { "type": "boolean", - "description": "Is column an array?", + "description": "Is attribute an array?", "x-example": false, "nullable": true }, "$createdAt": { "type": "string", - "description": "Column creation date in ISO 8601 format.", + "description": "Attribute creation date in ISO 8601 format.", "x-example": "2020-10-15T06:38:00.000+00:00" }, "$updatedAt": { "type": "string", - "description": "Column update date in ISO 8601 format.", + "description": "Attribute update date in ISO 8601 format.", "x-example": "2020-10-15T06:38:00.000+00:00" }, - "min": { - "type": "number", - "description": "Minimum value to enforce for new documents.", - "x-example": 1.5, - "format": "double", + "size": { + "type": "integer", + "description": "Attribute size.", + "x-example": 128, + "format": "int32" + }, + "default": { + "type": "string", + "description": "Default value for attribute when not provided. Cannot be set when attribute is required.", + "x-example": "default", "nullable": true }, - "max": { - "type": "number", - "description": "Maximum value to enforce for new documents.", - "x-example": 10.5, - "format": "double", + "encrypt": { + "type": "boolean", + "description": "Defines whether this attribute is encrypted or not.", + "x-example": false, + "nullable": true + } + }, + "required": [ + "key", + "type", + "status", + "error", + "required", + "$createdAt", + "$updatedAt", + "size" + ], + "example": { + "key": "fullName", + "type": "string", + "status": "available", + "error": "string", + "required": true, + "array": false, + "$createdAt": "2020-10-15T06:38:00.000+00:00", + "$updatedAt": "2020-10-15T06:38:00.000+00:00", + "size": 128, + "default": "default", + "encrypt": false + } + }, + "attributeText": { + "description": "AttributeText", + "type": "object", + "properties": { + "key": { + "type": "string", + "description": "Attribute Key.", + "x-example": "fullName" + }, + "type": { + "type": "string", + "description": "Attribute type.", + "x-example": "string" + }, + "status": { + "type": "string", + "description": "Attribute status. Possible values: `available`, `processing`, `deleting`, `stuck`, or `failed`", + "x-example": "available", + "enum": [ + "available", + "processing", + "deleting", + "stuck", + "failed" + ], + "x-enum-name": "AttributeStatus" + }, + "error": { + "type": "string", + "description": "Error message. Displays error generated on failure of creating or deleting an attribute.", + "x-example": "string" + }, + "required": { + "type": "boolean", + "description": "Is attribute required?", + "x-example": true + }, + "array": { + "type": "boolean", + "description": "Is attribute an array?", + "x-example": false, "nullable": true }, + "$createdAt": { + "type": "string", + "description": "Attribute creation date in ISO 8601 format.", + "x-example": "2020-10-15T06:38:00.000+00:00" + }, + "$updatedAt": { + "type": "string", + "description": "Attribute update date in ISO 8601 format.", + "x-example": "2020-10-15T06:38:00.000+00:00" + }, "default": { - "type": "number", - "description": "Default value for column when not provided. Cannot be set when column is required.", - "x-example": 2.5, - "format": "double", + "type": "string", + "description": "Default value for attribute when not provided. Cannot be set when attribute is required.", + "x-example": "default", + "nullable": true + }, + "encrypt": { + "type": "boolean", + "description": "Defines whether this attribute is encrypted or not.", + "x-example": false, "nullable": true } }, @@ -96598,36 +95524,35 @@ "$updatedAt" ], "example": { - "key": "percentageCompleted", - "type": "double", + "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", - "min": 1.5, - "max": 10.5, - "default": 2.5 + "default": "default", + "encrypt": false } }, - "columnBoolean": { - "description": "ColumnBoolean", + "attributeMediumtext": { + "description": "AttributeMediumtext", "type": "object", "properties": { "key": { "type": "string", - "description": "Column Key.", - "x-example": "isEnabled" + "description": "Attribute Key.", + "x-example": "fullName" }, "type": { "type": "string", - "description": "Column type.", - "x-example": "boolean" + "description": "Attribute type.", + "x-example": "string" }, "status": { "type": "string", - "description": "Column status. Possible values: `available`, `processing`, `deleting`, `stuck`, or `failed`", + "description": "Attribute status. Possible values: `available`, `processing`, `deleting`, `stuck`, or `failed`", "x-example": "available", "enum": [ "available", @@ -96636,37 +95561,43 @@ "stuck", "failed" ], - "x-enum-name": "ColumnStatus" + "x-enum-name": "AttributeStatus" }, "error": { "type": "string", - "description": "Error message. Displays error generated on failure of creating or deleting an column.", + "description": "Error message. Displays error generated on failure of creating or deleting an attribute.", "x-example": "string" }, "required": { "type": "boolean", - "description": "Is column required?", + "description": "Is attribute required?", "x-example": true }, "array": { "type": "boolean", - "description": "Is column an array?", + "description": "Is attribute an array?", "x-example": false, "nullable": true }, "$createdAt": { "type": "string", - "description": "Column creation date in ISO 8601 format.", + "description": "Attribute creation date in ISO 8601 format.", "x-example": "2020-10-15T06:38:00.000+00:00" }, "$updatedAt": { "type": "string", - "description": "Column update date in ISO 8601 format.", + "description": "Attribute update date in ISO 8601 format.", "x-example": "2020-10-15T06:38:00.000+00:00" }, "default": { + "type": "string", + "description": "Default value for attribute when not provided. Cannot be set when attribute is required.", + "x-example": "default", + "nullable": true + }, + "encrypt": { "type": "boolean", - "description": "Default value for column when not provided. Cannot be set when column is required.", + "description": "Defines whether this attribute is encrypted or not.", "x-example": false, "nullable": true } @@ -96681,34 +95612,35 @@ "$updatedAt" ], "example": { - "key": "isEnabled", - "type": "boolean", + "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": false + "default": "default", + "encrypt": false } }, - "columnEmail": { - "description": "ColumnEmail", + "attributeLongtext": { + "description": "AttributeLongtext", "type": "object", "properties": { "key": { "type": "string", - "description": "Column Key.", - "x-example": "userEmail" + "description": "Attribute Key.", + "x-example": "fullName" }, "type": { "type": "string", - "description": "Column type.", + "description": "Attribute type.", "x-example": "string" }, "status": { "type": "string", - "description": "Column status. Possible values: `available`, `processing`, `deleting`, `stuck`, or `failed`", + "description": "Attribute status. Possible values: `available`, `processing`, `deleting`, `stuck`, or `failed`", "x-example": "available", "enum": [ "available", @@ -96717,43 +95649,44 @@ "stuck", "failed" ], - "x-enum-name": "ColumnStatus" + "x-enum-name": "AttributeStatus" }, "error": { "type": "string", - "description": "Error message. Displays error generated on failure of creating or deleting an column.", + "description": "Error message. Displays error generated on failure of creating or deleting an attribute.", "x-example": "string" }, "required": { "type": "boolean", - "description": "Is column required?", + "description": "Is attribute required?", "x-example": true }, "array": { "type": "boolean", - "description": "Is column an array?", + "description": "Is attribute an array?", "x-example": false, "nullable": true }, "$createdAt": { "type": "string", - "description": "Column creation date in ISO 8601 format.", + "description": "Attribute creation date in ISO 8601 format.", "x-example": "2020-10-15T06:38:00.000+00:00" }, "$updatedAt": { "type": "string", - "description": "Column update date in ISO 8601 format.", + "description": "Attribute update date in ISO 8601 format.", "x-example": "2020-10-15T06:38:00.000+00:00" }, - "format": { - "type": "string", - "description": "String format.", - "x-example": "email" - }, "default": { "type": "string", - "description": "Default value for column when not provided. Cannot be set when column is required.", - "x-example": "default@example.com", + "description": "Default value for attribute when not provided. Cannot be set when attribute is required.", + "x-example": "default", + "nullable": true + }, + "encrypt": { + "type": "boolean", + "description": "Defines whether this attribute is encrypted or not.", + "x-example": false, "nullable": true } }, @@ -96764,11 +95697,10 @@ "error", "required", "$createdAt", - "$updatedAt", - "format" + "$updatedAt" ], "example": { - "key": "userEmail", + "key": "fullName", "type": "string", "status": "available", "error": "string", @@ -96776,27 +95708,158 @@ "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" + "default": "default", + "encrypt": false } }, - "columnEnum": { - "description": "ColumnEnum", + "vectorsdbCollection": { + "description": "VectorsDB Collection", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "Collection ID.", + "x-example": "5e5ea5c16897e" + }, + "$createdAt": { + "type": "string", + "description": "Collection creation date in ISO 8601 format.", + "x-example": "2020-10-15T06:38:00.000+00:00" + }, + "$updatedAt": { + "type": "string", + "description": "Collection update date in ISO 8601 format.", + "x-example": "2020-10-15T06:38:00.000+00:00" + }, + "$permissions": { + "type": "array", + "description": "Collection permissions. [Learn more about permissions](https:\/\/appwrite.io\/docs\/permissions).", + "items": { + "type": "string" + }, + "x-example": [ + "read(\"any\")" + ] + }, + "databaseId": { + "type": "string", + "description": "Database ID.", + "x-example": "5e5ea5c16897e" + }, + "name": { + "type": "string", + "description": "Collection name.", + "x-example": "My Collection" + }, + "enabled": { + "type": "boolean", + "description": "Collection enabled. Can be 'enabled' or 'disabled'. When disabled, the collection is inaccessible to users, but remains accessible to Server SDKs using API keys.", + "x-example": false + }, + "documentSecurity": { + "type": "boolean", + "description": "Whether document-level permissions are enabled. [Learn more about permissions](https:\/\/appwrite.io\/docs\/permissions).", + "x-example": true + }, + "attributes": { + "type": "array", + "description": "Collection attributes.", + "items": { + "anyOf": [ + { + "$ref": "#\/components\/schemas\/attributeObject" + }, + { + "$ref": "#\/components\/schemas\/attributeVector" + } + ], + "discriminator": { + "propertyName": "type", + "mapping": { + "object": "#\/components\/schemas\/attributeObject", + "vector": "#\/components\/schemas\/attributeVector" + } + } + }, + "x-example": {} + }, + "indexes": { + "type": "array", + "description": "Collection indexes.", + "items": { + "$ref": "#\/components\/schemas\/index" + }, + "x-example": {} + }, + "bytesMax": { + "type": "integer", + "description": "Maximum document size in bytes. Returns 0 when no limit applies.", + "x-example": 65535, + "format": "int32" + }, + "bytesUsed": { + "type": "integer", + "description": "Currently used document size in bytes based on defined attributes.", + "x-example": 1500, + "format": "int32" + }, + "dimension": { + "type": "integer", + "description": "Embedding dimension.", + "x-example": 1536, + "format": "int32" + } + }, + "required": [ + "$id", + "$createdAt", + "$updatedAt", + "$permissions", + "databaseId", + "name", + "enabled", + "documentSecurity", + "attributes", + "indexes", + "bytesMax", + "bytesUsed", + "dimension" + ], + "example": { + "$id": "5e5ea5c16897e", + "$createdAt": "2020-10-15T06:38:00.000+00:00", + "$updatedAt": "2020-10-15T06:38:00.000+00:00", + "$permissions": [ + "read(\"any\")" + ], + "databaseId": "5e5ea5c16897e", + "name": "My Collection", + "enabled": false, + "documentSecurity": true, + "attributes": {}, + "indexes": {}, + "bytesMax": 65535, + "bytesUsed": 1500, + "dimension": 1536 + } + }, + "attributeObject": { + "description": "AttributeObject", "type": "object", "properties": { "key": { "type": "string", - "description": "Column Key.", - "x-example": "status" + "description": "Attribute Key.", + "x-example": "fullName" }, "type": { "type": "string", - "description": "Column type.", + "description": "Attribute type.", "x-example": "string" }, "status": { "type": "string", - "description": "Column status. Possible values: `available`, `processing`, `deleting`, `stuck`, or `failed`", + "description": "Attribute status. Possible values: `available`, `processing`, `deleting`, `stuck`, or `failed`", "x-example": "available", "enum": [ "available", @@ -96805,52 +95868,33 @@ "stuck", "failed" ], - "x-enum-name": "ColumnStatus" + "x-enum-name": "AttributeStatus" }, "error": { "type": "string", - "description": "Error message. Displays error generated on failure of creating or deleting an column.", + "description": "Error message. Displays error generated on failure of creating or deleting an attribute.", "x-example": "string" }, "required": { "type": "boolean", - "description": "Is column required?", + "description": "Is attribute required?", "x-example": true }, "array": { "type": "boolean", - "description": "Is column an array?", + "description": "Is attribute an array?", "x-example": false, "nullable": true }, "$createdAt": { "type": "string", - "description": "Column creation date in ISO 8601 format.", + "description": "Attribute creation date in ISO 8601 format.", "x-example": "2020-10-15T06:38:00.000+00:00" }, "$updatedAt": { "type": "string", - "description": "Column update date in ISO 8601 format.", + "description": "Attribute update date in ISO 8601 format.", "x-example": "2020-10-15T06:38:00.000+00:00" - }, - "elements": { - "type": "array", - "description": "Array of elements in enumerated type.", - "items": { - "type": "string" - }, - "x-example": "element" - }, - "format": { - "type": "string", - "description": "String format.", - "x-example": "enum" - }, - "default": { - "type": "string", - "description": "Default value for column when not provided. Cannot be set when column is required.", - "x-example": "element", - "nullable": true } }, "required": [ @@ -96860,41 +95904,36 @@ "error", "required", "$createdAt", - "$updatedAt", - "elements", - "format" + "$updatedAt" ], "example": { - "key": "status", + "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", - "elements": "element", - "format": "enum", - "default": "element" + "$updatedAt": "2020-10-15T06:38:00.000+00:00" } }, - "columnIp": { - "description": "ColumnIP", + "attributeVector": { + "description": "AttributeVector", "type": "object", "properties": { "key": { "type": "string", - "description": "Column Key.", - "x-example": "ipAddress" + "description": "Attribute Key.", + "x-example": "fullName" }, "type": { "type": "string", - "description": "Column type.", + "description": "Attribute type.", "x-example": "string" }, "status": { "type": "string", - "description": "Column status. Possible values: `available`, `processing`, `deleting`, `stuck`, or `failed`", + "description": "Attribute status. Possible values: `available`, `processing`, `deleting`, `stuck`, or `failed`", "x-example": "available", "enum": [ "available", @@ -96903,44 +95942,39 @@ "stuck", "failed" ], - "x-enum-name": "ColumnStatus" + "x-enum-name": "AttributeStatus" }, "error": { "type": "string", - "description": "Error message. Displays error generated on failure of creating or deleting an column.", + "description": "Error message. Displays error generated on failure of creating or deleting an attribute.", "x-example": "string" }, "required": { "type": "boolean", - "description": "Is column required?", + "description": "Is attribute required?", "x-example": true }, "array": { "type": "boolean", - "description": "Is column an array?", + "description": "Is attribute an array?", "x-example": false, "nullable": true }, "$createdAt": { "type": "string", - "description": "Column creation date in ISO 8601 format.", + "description": "Attribute creation date in ISO 8601 format.", "x-example": "2020-10-15T06:38:00.000+00:00" }, "$updatedAt": { "type": "string", - "description": "Column update date in ISO 8601 format.", + "description": "Attribute update date in ISO 8601 format.", "x-example": "2020-10-15T06:38:00.000+00:00" }, - "format": { - "type": "string", - "description": "String format.", - "x-example": "ip" - }, - "default": { - "type": "string", - "description": "Default value for column when not provided. Cannot be set when column is required.", - "x-example": "192.0.2.0", - "nullable": true + "size": { + "type": "integer", + "description": "Vector dimensions.", + "x-example": 1536, + "format": "int32" } }, "required": [ @@ -96951,10 +95985,10 @@ "required", "$createdAt", "$updatedAt", - "format" + "size" ], "example": { - "key": "ipAddress", + "key": "fullName", "type": "string", "status": "available", "error": "string", @@ -96962,188 +95996,424 @@ "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" + "size": 1536 } }, - "columnUrl": { - "description": "ColumnURL", + "table": { + "description": "Table", "type": "object", "properties": { - "key": { + "$id": { "type": "string", - "description": "Column Key.", - "x-example": "githubUrl" + "description": "Table ID.", + "x-example": "5e5ea5c16897e" }, - "type": { + "$createdAt": { "type": "string", - "description": "Column type.", - "x-example": "string" + "description": "Table creation date in ISO 8601 format.", + "x-example": "2020-10-15T06:38:00.000+00:00" }, - "status": { + "$updatedAt": { "type": "string", - "description": "Column status. Possible values: `available`, `processing`, `deleting`, `stuck`, or `failed`", - "x-example": "available", - "enum": [ - "available", - "processing", - "deleting", - "stuck", - "failed" - ], - "x-enum-name": "ColumnStatus" + "description": "Table update date in ISO 8601 format.", + "x-example": "2020-10-15T06:38:00.000+00:00" }, - "error": { + "$permissions": { + "type": "array", + "description": "Table permissions. [Learn more about permissions](https:\/\/appwrite.io\/docs\/permissions).", + "items": { + "type": "string" + }, + "x-example": [ + "read(\"any\")" + ] + }, + "databaseId": { "type": "string", - "description": "Error message. Displays error generated on failure of creating or deleting an column.", - "x-example": "string" + "description": "Database ID.", + "x-example": "5e5ea5c16897e" }, - "required": { + "name": { + "type": "string", + "description": "Table name.", + "x-example": "My Table" + }, + "enabled": { "type": "boolean", - "description": "Is column required?", - "x-example": true + "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.", + "x-example": false }, - "array": { + "rowSecurity": { "type": "boolean", - "description": "Is column an array?", - "x-example": false, - "nullable": true + "description": "Whether row-level permissions are enabled. [Learn more about permissions](https:\/\/appwrite.io\/docs\/permissions).", + "x-example": true }, - "$createdAt": { - "type": "string", - "description": "Column creation date in ISO 8601 format.", - "x-example": "2020-10-15T06:38:00.000+00:00" + "columns": { + "type": "array", + "description": "Table columns.", + "items": { + "anyOf": [ + { + "$ref": "#\/components\/schemas\/columnBoolean" + }, + { + "$ref": "#\/components\/schemas\/columnBigint" + }, + { + "$ref": "#\/components\/schemas\/columnInteger" + }, + { + "$ref": "#\/components\/schemas\/columnFloat" + }, + { + "$ref": "#\/components\/schemas\/columnEmail" + }, + { + "$ref": "#\/components\/schemas\/columnEnum" + }, + { + "$ref": "#\/components\/schemas\/columnUrl" + }, + { + "$ref": "#\/components\/schemas\/columnIp" + }, + { + "$ref": "#\/components\/schemas\/columnDatetime" + }, + { + "$ref": "#\/components\/schemas\/columnRelationship" + }, + { + "$ref": "#\/components\/schemas\/columnPoint" + }, + { + "$ref": "#\/components\/schemas\/columnLine" + }, + { + "$ref": "#\/components\/schemas\/columnPolygon" + }, + { + "$ref": "#\/components\/schemas\/columnVarchar" + }, + { + "$ref": "#\/components\/schemas\/columnText" + }, + { + "$ref": "#\/components\/schemas\/columnMediumtext" + }, + { + "$ref": "#\/components\/schemas\/columnLongtext" + }, + { + "$ref": "#\/components\/schemas\/columnString" + } + ], + "discriminator": { + "propertyName": "type", + "mapping": { + "boolean": "#\/components\/schemas\/columnBoolean", + "bigint": "#\/components\/schemas\/columnBigint", + "integer": "#\/components\/schemas\/columnInteger", + "double": "#\/components\/schemas\/columnFloat", + "string": "#\/components\/schemas\/columnString", + "datetime": "#\/components\/schemas\/columnDatetime", + "relationship": "#\/components\/schemas\/columnRelationship", + "point": "#\/components\/schemas\/columnPoint", + "linestring": "#\/components\/schemas\/columnLine", + "polygon": "#\/components\/schemas\/columnPolygon", + "varchar": "#\/components\/schemas\/columnVarchar", + "text": "#\/components\/schemas\/columnText", + "mediumtext": "#\/components\/schemas\/columnMediumtext", + "longtext": "#\/components\/schemas\/columnLongtext" + }, + "x-propertyNames": [ + "type", + "format" + ], + "x-mapping": { + "#\/components\/schemas\/columnBoolean": { + "type": "boolean" + }, + "#\/components\/schemas\/columnBigint": { + "type": "bigint" + }, + "#\/components\/schemas\/columnInteger": { + "type": "integer" + }, + "#\/components\/schemas\/columnFloat": { + "type": "double" + }, + "#\/components\/schemas\/columnEmail": { + "type": "string", + "format": "email" + }, + "#\/components\/schemas\/columnEnum": { + "type": "string", + "format": "enum" + }, + "#\/components\/schemas\/columnUrl": { + "type": "string", + "format": "url" + }, + "#\/components\/schemas\/columnIp": { + "type": "string", + "format": "ip" + }, + "#\/components\/schemas\/columnDatetime": { + "type": "datetime" + }, + "#\/components\/schemas\/columnRelationship": { + "type": "relationship" + }, + "#\/components\/schemas\/columnPoint": { + "type": "point" + }, + "#\/components\/schemas\/columnLine": { + "type": "linestring" + }, + "#\/components\/schemas\/columnPolygon": { + "type": "polygon" + }, + "#\/components\/schemas\/columnVarchar": { + "type": "varchar" + }, + "#\/components\/schemas\/columnText": { + "type": "text" + }, + "#\/components\/schemas\/columnMediumtext": { + "type": "mediumtext" + }, + "#\/components\/schemas\/columnLongtext": { + "type": "longtext" + }, + "#\/components\/schemas\/columnString": { + "type": "string" + } + } + } + }, + "x-example": {} }, - "$updatedAt": { - "type": "string", - "description": "Column update date in ISO 8601 format.", - "x-example": "2020-10-15T06:38:00.000+00:00" + "indexes": { + "type": "array", + "description": "Table indexes.", + "items": { + "$ref": "#\/components\/schemas\/columnIndex" + }, + "x-example": {} }, - "format": { - "type": "string", - "description": "String format.", - "x-example": "url" + "bytesMax": { + "type": "integer", + "description": "Maximum row size in bytes. Returns 0 when no limit applies.", + "x-example": 65535, + "format": "int32" }, - "default": { - "type": "string", - "description": "Default value for column when not provided. Cannot be set when column is required.", - "x-example": "https:\/\/example.com", - "nullable": true + "bytesUsed": { + "type": "integer", + "description": "Currently used row size in bytes based on defined columns.", + "x-example": 1500, + "format": "int32" } }, "required": [ - "key", - "type", - "status", - "error", - "required", + "$id", "$createdAt", "$updatedAt", - "format" + "$permissions", + "databaseId", + "name", + "enabled", + "rowSecurity", + "columns", + "indexes", + "bytesMax", + "bytesUsed" ], "example": { - "key": "githubUrl", - "type": "string", - "status": "available", - "error": "string", - "required": true, - "array": false, + "$id": "5e5ea5c16897e", "$createdAt": "2020-10-15T06:38:00.000+00:00", "$updatedAt": "2020-10-15T06:38:00.000+00:00", - "format": "url", - "default": "https:\/\/example.com" + "$permissions": [ + "read(\"any\")" + ], + "databaseId": "5e5ea5c16897e", + "name": "My Table", + "enabled": false, + "rowSecurity": true, + "columns": {}, + "indexes": {}, + "bytesMax": 65535, + "bytesUsed": 1500 } }, - "columnDatetime": { - "description": "ColumnDatetime", + "columnList": { + "description": "Columns List", "type": "object", "properties": { - "key": { - "type": "string", - "description": "Column Key.", - "x-example": "birthDay" - }, - "type": { - "type": "string", - "description": "Column type.", - "x-example": "datetime" - }, - "status": { - "type": "string", - "description": "Column status. Possible values: `available`, `processing`, `deleting`, `stuck`, or `failed`", - "x-example": "available", - "enum": [ - "available", - "processing", - "deleting", - "stuck", - "failed" - ], - "x-enum-name": "ColumnStatus" - }, - "error": { - "type": "string", - "description": "Error message. Displays error generated on failure of creating or deleting an column.", - "x-example": "string" - }, - "required": { - "type": "boolean", - "description": "Is column required?", - "x-example": true - }, - "array": { - "type": "boolean", - "description": "Is column an array?", - "x-example": false, - "nullable": true - }, - "$createdAt": { - "type": "string", - "description": "Column creation date in ISO 8601 format.", - "x-example": "2020-10-15T06:38:00.000+00:00" - }, - "$updatedAt": { - "type": "string", - "description": "Column update date in ISO 8601 format.", - "x-example": "2020-10-15T06:38:00.000+00:00" - }, - "format": { - "type": "string", - "description": "ISO 8601 format.", - "x-example": "datetime" + "total": { + "type": "integer", + "description": "Total number of columns in the given table.", + "x-example": 5, + "format": "int32" }, - "default": { - "type": "string", - "description": "Default value for column when not provided. Only null is optional", - "x-example": "2020-10-15T06:38:00.000+00:00", - "nullable": true + "columns": { + "type": "array", + "description": "List of columns.", + "items": { + "anyOf": [ + { + "$ref": "#\/components\/schemas\/columnBoolean" + }, + { + "$ref": "#\/components\/schemas\/columnBigint" + }, + { + "$ref": "#\/components\/schemas\/columnInteger" + }, + { + "$ref": "#\/components\/schemas\/columnFloat" + }, + { + "$ref": "#\/components\/schemas\/columnEmail" + }, + { + "$ref": "#\/components\/schemas\/columnEnum" + }, + { + "$ref": "#\/components\/schemas\/columnUrl" + }, + { + "$ref": "#\/components\/schemas\/columnIp" + }, + { + "$ref": "#\/components\/schemas\/columnDatetime" + }, + { + "$ref": "#\/components\/schemas\/columnRelationship" + }, + { + "$ref": "#\/components\/schemas\/columnPoint" + }, + { + "$ref": "#\/components\/schemas\/columnLine" + }, + { + "$ref": "#\/components\/schemas\/columnPolygon" + }, + { + "$ref": "#\/components\/schemas\/columnVarchar" + }, + { + "$ref": "#\/components\/schemas\/columnText" + }, + { + "$ref": "#\/components\/schemas\/columnMediumtext" + }, + { + "$ref": "#\/components\/schemas\/columnLongtext" + }, + { + "$ref": "#\/components\/schemas\/columnString" + } + ], + "discriminator": { + "propertyName": "type", + "mapping": { + "boolean": "#\/components\/schemas\/columnBoolean", + "bigint": "#\/components\/schemas\/columnBigint", + "integer": "#\/components\/schemas\/columnInteger", + "double": "#\/components\/schemas\/columnFloat", + "string": "#\/components\/schemas\/columnString", + "datetime": "#\/components\/schemas\/columnDatetime", + "relationship": "#\/components\/schemas\/columnRelationship", + "point": "#\/components\/schemas\/columnPoint", + "linestring": "#\/components\/schemas\/columnLine", + "polygon": "#\/components\/schemas\/columnPolygon", + "varchar": "#\/components\/schemas\/columnVarchar", + "text": "#\/components\/schemas\/columnText", + "mediumtext": "#\/components\/schemas\/columnMediumtext", + "longtext": "#\/components\/schemas\/columnLongtext" + }, + "x-propertyNames": [ + "type", + "format" + ], + "x-mapping": { + "#\/components\/schemas\/columnBoolean": { + "type": "boolean" + }, + "#\/components\/schemas\/columnBigint": { + "type": "bigint" + }, + "#\/components\/schemas\/columnInteger": { + "type": "integer" + }, + "#\/components\/schemas\/columnFloat": { + "type": "double" + }, + "#\/components\/schemas\/columnEmail": { + "type": "string", + "format": "email" + }, + "#\/components\/schemas\/columnEnum": { + "type": "string", + "format": "enum" + }, + "#\/components\/schemas\/columnUrl": { + "type": "string", + "format": "url" + }, + "#\/components\/schemas\/columnIp": { + "type": "string", + "format": "ip" + }, + "#\/components\/schemas\/columnDatetime": { + "type": "datetime" + }, + "#\/components\/schemas\/columnRelationship": { + "type": "relationship" + }, + "#\/components\/schemas\/columnPoint": { + "type": "point" + }, + "#\/components\/schemas\/columnLine": { + "type": "linestring" + }, + "#\/components\/schemas\/columnPolygon": { + "type": "polygon" + }, + "#\/components\/schemas\/columnVarchar": { + "type": "varchar" + }, + "#\/components\/schemas\/columnText": { + "type": "text" + }, + "#\/components\/schemas\/columnMediumtext": { + "type": "mediumtext" + }, + "#\/components\/schemas\/columnLongtext": { + "type": "longtext" + }, + "#\/components\/schemas\/columnString": { + "type": "string" + } + } + } + }, + "x-example": "" } }, "required": [ - "key", - "type", - "status", - "error", - "required", - "$createdAt", - "$updatedAt", - "format" + "total", + "columns" ], "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" + "total": 5, + "columns": "" } }, - "columnRelationship": { - "description": "ColumnRelationship", + "columnString": { + "description": "ColumnString", "type": "object", "properties": { "key": { @@ -97195,35 +96465,23 @@ "description": "Column update date in ISO 8601 format.", "x-example": "2020-10-15T06:38:00.000+00:00" }, - "relatedTable": { - "type": "string", - "description": "The ID of the related table.", - "x-example": "table" + "size": { + "type": "integer", + "description": "Column size.", + "x-example": 128, + "format": "int32" }, - "relationType": { + "default": { "type": "string", - "description": "The type of the relationship.", - "x-example": "oneToOne|oneToMany|manyToOne|manyToMany" + "description": "Default value for column when not provided. Cannot be set when column is required.", + "x-example": "default", + "nullable": true }, - "twoWay": { + "encrypt": { "type": "boolean", - "description": "Is the relationship two-way?", - "x-example": false - }, - "twoWayKey": { - "type": "string", - "description": "The key of the two-way relationship.", - "x-example": "string" - }, - "onDelete": { - "type": "string", - "description": "How deleting the parent document will propagate to child documents.", - "x-example": "restrict|cascade|setNull" - }, - "side": { - "type": "string", - "description": "Whether this is the parent or child side of the relationship", - "x-example": "parent|child" + "description": "Defines whether this column is encrypted or not.", + "x-example": false, + "nullable": true } }, "required": [ @@ -97234,12 +96492,7 @@ "required", "$createdAt", "$updatedAt", - "relatedTable", - "relationType", - "twoWay", - "twoWayKey", - "onDelete", - "side" + "size" ], "example": { "key": "fullName", @@ -97250,27 +96503,24 @@ "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" + "size": 128, + "default": "default", + "encrypt": false } }, - "columnPoint": { - "description": "ColumnPoint", + "columnInteger": { + "description": "ColumnInteger", "type": "object", "properties": { "key": { "type": "string", "description": "Column Key.", - "x-example": "fullName" + "x-example": "count" }, "type": { "type": "string", "description": "Column type.", - "x-example": "string" + "x-example": "integer" }, "status": { "type": "string", @@ -97311,17 +96561,25 @@ "description": "Column update date in ISO 8601 format.", "x-example": "2020-10-15T06:38:00.000+00:00" }, + "min": { + "type": "integer", + "description": "Minimum value to enforce for new documents.", + "x-example": 1, + "format": "int64", + "nullable": true + }, + "max": { + "type": "integer", + "description": "Maximum value to enforce for new documents.", + "x-example": 10, + "format": "int64", + "nullable": true + }, "default": { - "type": "array", + "type": "integer", "description": "Default value for column when not provided. Cannot be set when column is required.", - "x-example": [ - 0, - 0 - ], - "items": { - "type": "number", - "format": "double" - }, + "x-example": 10, + "format": "int32", "nullable": true } }, @@ -97335,33 +96593,32 @@ "$updatedAt" ], "example": { - "key": "fullName", - "type": "string", + "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", - "default": [ - 0, - 0 - ] + "min": 1, + "max": 10, + "default": 10 } }, - "columnLine": { - "description": "ColumnLine", + "columnBigint": { + "description": "ColumnBigInt", "type": "object", "properties": { "key": { "type": "string", "description": "Column Key.", - "x-example": "fullName" + "x-example": "count" }, "type": { "type": "string", "description": "Column type.", - "x-example": "string" + "x-example": "bigint" }, "status": { "type": "string", @@ -97402,26 +96659,25 @@ "description": "Column update date in ISO 8601 format.", "x-example": "2020-10-15T06:38:00.000+00:00" }, + "min": { + "type": "integer", + "description": "Minimum value to enforce for new documents.", + "x-example": 1, + "format": "int64", + "nullable": true + }, + "max": { + "type": "integer", + "description": "Maximum value to enforce for new documents.", + "x-example": 10, + "format": "int64", + "nullable": true + }, "default": { - "type": "array", + "type": "integer", "description": "Default value for column when not provided. Cannot be set when column is required.", - "x-example": [ - [ - 0, - 0 - ], - [ - 1, - 1 - ] - ], - "items": { - "type": "array", - "items": { - "type": "number", - "format": "double" - } - }, + "x-example": 10, + "format": "int64", "nullable": true } }, @@ -97435,39 +96691,32 @@ "$updatedAt" ], "example": { - "key": "fullName", - "type": "string", + "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", - "default": [ - [ - 0, - 0 - ], - [ - 1, - 1 - ] - ] + "min": 1, + "max": 10, + "default": 10 } - }, - "columnPolygon": { - "description": "ColumnPolygon", + }, + "columnFloat": { + "description": "ColumnFloat", "type": "object", "properties": { "key": { "type": "string", "description": "Column Key.", - "x-example": "fullName" + "x-example": "percentageCompleted" }, "type": { "type": "string", "description": "Column type.", - "x-example": "string" + "x-example": "double" }, "status": { "type": "string", @@ -97508,41 +96757,25 @@ "description": "Column update date in ISO 8601 format.", "x-example": "2020-10-15T06:38:00.000+00:00" }, + "min": { + "type": "number", + "description": "Minimum value to enforce for new documents.", + "x-example": 1.5, + "format": "double", + "nullable": true + }, + "max": { + "type": "number", + "description": "Maximum value to enforce for new documents.", + "x-example": 10.5, + "format": "double", + "nullable": true + }, "default": { - "type": "array", + "type": "number", "description": "Default value for column when not provided. Cannot be set when column is required.", - "x-example": [ - [ - [ - 0, - 0 - ], - [ - 0, - 10 - ] - ], - [ - [ - 10, - 10 - ], - [ - 0, - 0 - ] - ] - ], - "items": { - "type": "array", - "items": { - "type": "array", - "items": { - "type": "number", - "format": "double" - } - } - }, + "x-example": 2.5, + "format": "double", "nullable": true } }, @@ -97556,51 +96789,32 @@ "$updatedAt" ], "example": { - "key": "fullName", - "type": "string", + "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", - "default": [ - [ - [ - 0, - 0 - ], - [ - 0, - 10 - ] - ], - [ - [ - 10, - 10 - ], - [ - 0, - 0 - ] - ] - ] + "min": 1.5, + "max": 10.5, + "default": 2.5 } }, - "columnVarchar": { - "description": "ColumnVarchar", + "columnBoolean": { + "description": "ColumnBoolean", "type": "object", "properties": { "key": { "type": "string", "description": "Column Key.", - "x-example": "fullName" + "x-example": "isEnabled" }, "type": { "type": "string", "description": "Column type.", - "x-example": "string" + "x-example": "boolean" }, "status": { "type": "string", @@ -97641,21 +96855,9 @@ "description": "Column update date in ISO 8601 format.", "x-example": "2020-10-15T06:38:00.000+00:00" }, - "size": { - "type": "integer", - "description": "Column size.", - "x-example": 128, - "format": "int32" - }, "default": { - "type": "string", - "description": "Default value for column when not provided. Cannot be set when column is required.", - "x-example": "default", - "nullable": true - }, - "encrypt": { "type": "boolean", - "description": "Defines whether this column is encrypted or not.", + "description": "Default value for column when not provided. Cannot be set when column is required.", "x-example": false, "nullable": true } @@ -97667,31 +96869,28 @@ "error", "required", "$createdAt", - "$updatedAt", - "size" + "$updatedAt" ], "example": { - "key": "fullName", - "type": "string", + "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", - "size": 128, - "default": "default", - "encrypt": false + "default": false } }, - "columnText": { - "description": "ColumnText", + "columnEmail": { + "description": "ColumnEmail", "type": "object", "properties": { "key": { "type": "string", "description": "Column Key.", - "x-example": "fullName" + "x-example": "userEmail" }, "type": { "type": "string", @@ -97737,16 +96936,15 @@ "description": "Column update date in ISO 8601 format.", "x-example": "2020-10-15T06:38:00.000+00:00" }, + "format": { + "type": "string", + "description": "String format.", + "x-example": "email" + }, "default": { "type": "string", "description": "Default value for column when not provided. Cannot be set when column is required.", - "x-example": "default", - "nullable": true - }, - "encrypt": { - "type": "boolean", - "description": "Defines whether this column is encrypted or not.", - "x-example": false, + "x-example": "default@example.com", "nullable": true } }, @@ -97757,10 +96955,11 @@ "error", "required", "$createdAt", - "$updatedAt" + "$updatedAt", + "format" ], "example": { - "key": "fullName", + "key": "userEmail", "type": "string", "status": "available", "error": "string", @@ -97768,18 +96967,18 @@ "array": false, "$createdAt": "2020-10-15T06:38:00.000+00:00", "$updatedAt": "2020-10-15T06:38:00.000+00:00", - "default": "default", - "encrypt": false + "format": "email", + "default": "default@example.com" } }, - "columnMediumtext": { - "description": "ColumnMediumtext", + "columnEnum": { + "description": "ColumnEnum", "type": "object", "properties": { "key": { "type": "string", "description": "Column Key.", - "x-example": "fullName" + "x-example": "status" }, "type": { "type": "string", @@ -97825,16 +97024,23 @@ "description": "Column update date in ISO 8601 format.", "x-example": "2020-10-15T06:38:00.000+00:00" }, + "elements": { + "type": "array", + "description": "Array of elements in enumerated type.", + "items": { + "type": "string" + }, + "x-example": "element" + }, + "format": { + "type": "string", + "description": "String format.", + "x-example": "enum" + }, "default": { "type": "string", "description": "Default value for column when not provided. Cannot be set when column is required.", - "x-example": "default", - "nullable": true - }, - "encrypt": { - "type": "boolean", - "description": "Defines whether this column is encrypted or not.", - "x-example": false, + "x-example": "element", "nullable": true } }, @@ -97845,10 +97051,12 @@ "error", "required", "$createdAt", - "$updatedAt" + "$updatedAt", + "elements", + "format" ], "example": { - "key": "fullName", + "key": "status", "type": "string", "status": "available", "error": "string", @@ -97856,18 +97064,19 @@ "array": false, "$createdAt": "2020-10-15T06:38:00.000+00:00", "$updatedAt": "2020-10-15T06:38:00.000+00:00", - "default": "default", - "encrypt": false + "elements": "element", + "format": "enum", + "default": "element" } }, - "columnLongtext": { - "description": "ColumnLongtext", + "columnIp": { + "description": "ColumnIP", "type": "object", "properties": { "key": { "type": "string", "description": "Column Key.", - "x-example": "fullName" + "x-example": "ipAddress" }, "type": { "type": "string", @@ -97913,16 +97122,15 @@ "description": "Column update date in ISO 8601 format.", "x-example": "2020-10-15T06:38:00.000+00:00" }, + "format": { + "type": "string", + "description": "String format.", + "x-example": "ip" + }, "default": { "type": "string", "description": "Default value for column when not provided. Cannot be set when column is required.", - "x-example": "default", - "nullable": true - }, - "encrypt": { - "type": "boolean", - "description": "Defines whether this column is encrypted or not.", - "x-example": false, + "x-example": "192.0.2.0", "nullable": true } }, @@ -97933,10 +97141,11 @@ "error", "required", "$createdAt", - "$updatedAt" + "$updatedAt", + "format" ], "example": { - "key": "fullName", + "key": "ipAddress", "type": "string", "status": "available", "error": "string", @@ -97944,42 +97153,27 @@ "array": false, "$createdAt": "2020-10-15T06:38:00.000+00:00", "$updatedAt": "2020-10-15T06:38:00.000+00:00", - "default": "default", - "encrypt": false + "format": "ip", + "default": "192.0.2.0" } }, - "index": { - "description": "Index", + "columnUrl": { + "description": "ColumnURL", "type": "object", "properties": { - "$id": { - "type": "string", - "description": "Index ID.", - "x-example": "5e5ea5c16897e" - }, - "$createdAt": { - "type": "string", - "description": "Index creation date in ISO 8601 format.", - "x-example": "2020-10-15T06:38:00.000+00:00" - }, - "$updatedAt": { - "type": "string", - "description": "Index update date in ISO 8601 format.", - "x-example": "2020-10-15T06:38:00.000+00:00" - }, "key": { "type": "string", - "description": "Index key.", - "x-example": "index1" + "description": "Column Key.", + "x-example": "githubUrl" }, "type": { "type": "string", - "description": "Index type.", - "x-example": "primary" + "description": "Column type.", + "x-example": "string" }, "status": { "type": "string", - "description": "Index status. Possible values: `available`, `processing`, `deleting`, `stuck`, or `failed`", + "description": "Column status. Possible values: `available`, `processing`, `deleting`, `stuck`, or `failed`", "x-example": "available", "enum": [ "available", @@ -97987,3566 +97181,3533 @@ "deleting", "stuck", "failed" - ] + ], + "x-enum-name": "ColumnStatus" }, "error": { "type": "string", - "description": "Error message. Displays error generated on failure of creating or deleting an index.", + "description": "Error message. Displays error generated on failure of creating or deleting an column.", "x-example": "string" }, - "attributes": { - "type": "array", - "description": "Index attributes.", - "items": { - "type": "string" - }, - "x-example": [] - }, - "lengths": { - "type": "array", - "description": "Index attributes length.", - "items": { - "type": "integer", - "format": "int32" - }, - "x-example": [] + "required": { + "type": "boolean", + "description": "Is column required?", + "x-example": true }, - "orders": { - "type": "array", - "description": "Index orders.", - "items": { - "type": "string" - }, - "x-example": [], + "array": { + "type": "boolean", + "description": "Is column an array?", + "x-example": false, "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.", - "x-example": "5e5ea5c16897e" }, "$createdAt": { "type": "string", - "description": "Index creation date in ISO 8601 format.", + "description": "Column creation date in ISO 8601 format.", "x-example": "2020-10-15T06:38:00.000+00:00" }, "$updatedAt": { "type": "string", - "description": "Index update date in ISO 8601 format.", + "description": "Column update date in ISO 8601 format.", "x-example": "2020-10-15T06:38:00.000+00:00" }, - "key": { - "type": "string", - "description": "Index Key.", - "x-example": "index1" - }, - "type": { - "type": "string", - "description": "Index type.", - "x-example": "primary" - }, - "status": { + "format": { "type": "string", - "description": "Index status. Possible values: `available`, `processing`, `deleting`, `stuck`, or `failed`", - "x-example": "available" + "description": "String format.", + "x-example": "url" }, - "error": { + "default": { "type": "string", - "description": "Error message. Displays error generated on failure of creating or deleting an index.", - "x-example": "string" - }, - "columns": { - "type": "array", - "description": "Index columns.", - "items": { - "type": "string" - }, - "x-example": [] - }, - "lengths": { - "type": "array", - "description": "Index columns length.", - "items": { - "type": "integer", - "format": "int32" - }, - "x-example": [] - }, - "orders": { - "type": "array", - "description": "Index orders.", - "items": { - "type": "string" - }, - "x-example": [], + "description": "Default value for column when not provided. Cannot be set when column is required.", + "x-example": "https:\/\/example.com", "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.", - "x-example": "5e5ea5c16897e" - }, - "$sequence": { - "type": "string", - "description": "Row sequence ID.", - "x-example": "1", - "readOnly": true - }, - "$tableId": { - "type": "string", - "description": "Table ID.", - "x-example": "5e5ea5c15117e", - "readOnly": true - }, - "$databaseId": { - "type": "string", - "description": "Database ID.", - "x-example": "5e5ea5c15117e", - "readOnly": true - }, - "$createdAt": { - "type": "string", - "description": "Row creation date in ISO 8601 format.", - "x-example": "2020-10-15T06:38:00.000+00:00" - }, - "$updatedAt": { - "type": "string", - "description": "Row update date in ISO 8601 format.", - "x-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" - }, - "x-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.", - "x-example": "5e5ea5c16897e" - }, - "$sequence": { - "type": "string", - "description": "Document sequence ID.", - "x-example": "1", - "readOnly": true - }, - "$collectionId": { - "type": "string", - "description": "Collection ID.", - "x-example": "5e5ea5c15117e", - "readOnly": true - }, - "$databaseId": { - "type": "string", - "description": "Database ID.", - "x-example": "5e5ea5c15117e", - "readOnly": true - }, - "$createdAt": { - "type": "string", - "description": "Document creation date in ISO 8601 format.", - "x-example": "2020-10-15T06:38:00.000+00:00" - }, - "$updatedAt": { - "type": "string", - "description": "Document update date in ISO 8601 format.", - "x-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" - }, - "x-example": [ - "read(\"any\")" - ] - } - }, - "additionalProperties": true, - "required": [ - "$id", - "$sequence", - "$collectionId", - "$databaseId", + }, + "required": [ + "key", + "type", + "status", + "error", + "required", "$createdAt", "$updatedAt", - "$permissions" + "format" ], "example": { - "$id": "5e5ea5c16897e", - "$sequence": "1", - "$collectionId": "5e5ea5c15117e", - "$databaseId": "5e5ea5c15117e", + "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", - "$permissions": [ - "read(\"any\")" - ], - "username": "john.doe", - "email": "john.doe@example.com", - "fullName": "John Doe", - "age": 30, - "isAdmin": false + "format": "url", + "default": "https:\/\/example.com" } }, - "presence": { - "description": "Presence", + "columnDatetime": { + "description": "ColumnDatetime", "type": "object", "properties": { - "$id": { + "key": { "type": "string", - "description": "Presence ID.", - "x-example": "5e5ea5c16897e" + "description": "Column Key.", + "x-example": "birthDay" }, - "$createdAt": { + "type": { "type": "string", - "description": "Presence creation date in ISO 8601 format.", - "x-example": "2020-10-15T06:38:00.000+00:00" + "description": "Column type.", + "x-example": "datetime" }, - "$updatedAt": { + "status": { "type": "string", - "description": "Presence update date in ISO 8601 format.", - "x-example": "2020-10-15T06:38:00.000+00:00" + "description": "Column status. Possible values: `available`, `processing`, `deleting`, `stuck`, or `failed`", + "x-example": "available", + "enum": [ + "available", + "processing", + "deleting", + "stuck", + "failed" + ], + "x-enum-name": "ColumnStatus" }, - "$permissions": { - "type": "array", - "description": "Presence permissions. [Learn more about permissions](https:\/\/appwrite.io\/docs\/permissions).", - "items": { - "type": "string" - }, - "x-example": [ - "read(\"any\")" - ] + "error": { + "type": "string", + "description": "Error message. Displays error generated on failure of creating or deleting an column.", + "x-example": "string" }, - "userId": { + "required": { + "type": "boolean", + "description": "Is column required?", + "x-example": true + }, + "array": { + "type": "boolean", + "description": "Is column an array?", + "x-example": false, + "nullable": true + }, + "$createdAt": { "type": "string", - "description": "User ID.", - "x-example": "674af8f3e12a5f9ac0be" + "description": "Column creation date in ISO 8601 format.", + "x-example": "2020-10-15T06:38:00.000+00:00" }, - "status": { + "$updatedAt": { "type": "string", - "description": "Presence status.", - "x-example": "online", - "nullable": true + "description": "Column update date in ISO 8601 format.", + "x-example": "2020-10-15T06:38:00.000+00:00" }, - "source": { + "format": { "type": "string", - "description": "Presence source.", - "x-example": "HTTP" + "description": "ISO 8601 format.", + "x-example": "datetime" }, - "expiresAt": { + "default": { "type": "string", - "description": "Presence expiry date in ISO 8601 format.", + "description": "Default value for column when not provided. Only null is optional", "x-example": "2020-10-15T06:38:00.000+00:00", "nullable": true - }, - "metadata": { - "type": "object", - "additionalProperties": true, - "description": "Presence metadata.", - "x-example": { - "key": "value" - } } }, "required": [ - "$id", + "key", + "type", + "status", + "error", + "required", "$createdAt", "$updatedAt", - "$permissions", - "userId", - "source" + "format" ], "example": { - "$id": "5e5ea5c16897e", + "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", - "$permissions": [ - "read(\"any\")" - ], - "userId": "674af8f3e12a5f9ac0be", - "status": "online", - "source": "HTTP", - "expiresAt": "2020-10-15T06:38:00.000+00:00", - "metadata": { - "key": "value" - } + "format": "datetime", + "default": "2020-10-15T06:38:00.000+00:00" } }, - "log": { - "description": "Log", + "columnRelationship": { + "description": "ColumnRelationship", "type": "object", "properties": { - "event": { + "key": { "type": "string", - "description": "Event name.", - "x-example": "account.sessions.create" + "description": "Column Key.", + "x-example": "fullName" }, - "userId": { + "type": { "type": "string", - "description": "User ID of the actor recorded for this log. During impersonation, this is the original impersonator, not the impersonated target user.", - "x-example": "610fc2f985ee0" + "description": "Column type.", + "x-example": "string" }, - "userEmail": { + "status": { "type": "string", - "description": "User email of the actor recorded for this log. During impersonation, this is the original impersonator.", - "x-example": "john@appwrite.io" + "description": "Column status. Possible values: `available`, `processing`, `deleting`, `stuck`, or `failed`", + "x-example": "available", + "enum": [ + "available", + "processing", + "deleting", + "stuck", + "failed" + ], + "x-enum-name": "ColumnStatus" }, - "userName": { + "error": { "type": "string", - "description": "User name of the actor recorded for this log. During impersonation, this is the original impersonator.", - "x-example": "John Doe" + "description": "Error message. Displays error generated on failure of creating or deleting an column.", + "x-example": "string" }, - "mode": { - "type": "string", - "description": "API mode when event triggered.", - "x-example": "admin" + "required": { + "type": "boolean", + "description": "Is column required?", + "x-example": true }, - "userType": { - "type": "string", - "description": "User type who triggered the audit log. Possible values: user, admin, guest, hidden, keyProject, keyAccount, keyOrganization.", - "x-example": "user" + "array": { + "type": "boolean", + "description": "Is column an array?", + "x-example": false, + "nullable": true }, - "ip": { + "$createdAt": { "type": "string", - "description": "IP session in use when the session was created.", - "x-example": "127.0.0.1" + "description": "Column creation date in ISO 8601 format.", + "x-example": "2020-10-15T06:38:00.000+00:00" }, - "time": { + "$updatedAt": { "type": "string", - "description": "Log creation date in ISO 8601 format.", + "description": "Column update date in ISO 8601 format.", "x-example": "2020-10-15T06:38:00.000+00:00" }, - "osCode": { + "relatedTable": { "type": "string", - "description": "Operating system code name. View list of [available options](https:\/\/github.com\/appwrite\/appwrite\/blob\/master\/docs\/lists\/os.json).", - "x-example": "Mac" + "description": "The ID of the related table.", + "x-example": "table" }, - "osName": { + "relationType": { "type": "string", - "description": "Operating system name.", - "x-example": "Mac" + "description": "The type of the relationship.", + "x-example": "oneToOne|oneToMany|manyToOne|manyToMany" }, - "osVersion": { - "type": "string", - "description": "Operating system version.", - "x-example": "Mac" + "twoWay": { + "type": "boolean", + "description": "Is the relationship two-way?", + "x-example": false }, - "clientType": { + "twoWayKey": { "type": "string", - "description": "Client type.", - "x-example": "browser" + "description": "The key of the two-way relationship.", + "x-example": "string" }, - "clientCode": { + "onDelete": { "type": "string", - "description": "Client code name. View list of [available options](https:\/\/github.com\/appwrite\/appwrite\/blob\/master\/docs\/lists\/clients.json).", - "x-example": "CM" + "description": "How deleting the parent document will propagate to child documents.", + "x-example": "restrict|cascade|setNull" }, - "clientName": { + "side": { "type": "string", - "description": "Client name.", - "x-example": "Chrome Mobile iOS" - }, - "clientVersion": { + "description": "Whether this is the parent or child side of the relationship", + "x-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": "Client version.", - "x-example": "84.0" + "description": "Column Key.", + "x-example": "fullName" }, - "clientEngine": { + "type": { "type": "string", - "description": "Client engine name.", - "x-example": "WebKit" + "description": "Column type.", + "x-example": "string" }, - "clientEngineVersion": { + "status": { "type": "string", - "description": "Client engine name.", - "x-example": "605.1.15" + "description": "Column status. Possible values: `available`, `processing`, `deleting`, `stuck`, or `failed`", + "x-example": "available", + "enum": [ + "available", + "processing", + "deleting", + "stuck", + "failed" + ], + "x-enum-name": "ColumnStatus" }, - "deviceName": { + "error": { "type": "string", - "description": "Device name.", - "x-example": "smartphone" + "description": "Error message. Displays error generated on failure of creating or deleting an column.", + "x-example": "string" }, - "deviceBrand": { - "type": "string", - "description": "Device brand name.", - "x-example": "Google" + "required": { + "type": "boolean", + "description": "Is column required?", + "x-example": true }, - "deviceModel": { - "type": "string", - "description": "Device model name.", - "x-example": "Nexus 5" + "array": { + "type": "boolean", + "description": "Is column an array?", + "x-example": false, + "nullable": true }, - "countryCode": { + "$createdAt": { "type": "string", - "description": "Country two-character ISO 3166-1 alpha code.", - "x-example": "US" + "description": "Column creation date in ISO 8601 format.", + "x-example": "2020-10-15T06:38:00.000+00:00" }, - "countryName": { + "$updatedAt": { "type": "string", - "description": "Country name.", - "x-example": "United States" + "description": "Column update date in ISO 8601 format.", + "x-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.", + "x-example": [ + 0, + 0 + ], + "items": { + "type": "number", + "format": "double" + }, + "nullable": true } }, "required": [ - "event", - "userId", - "userEmail", - "userName", - "mode", - "userType", - "ip", - "time", - "osCode", - "osName", - "osVersion", - "clientType", - "clientCode", - "clientName", - "clientVersion", - "clientEngine", - "clientEngineVersion", - "deviceName", - "deviceBrand", - "deviceModel", - "countryCode", - "countryName" + "key", + "type", + "status", + "error", + "required", + "$createdAt", + "$updatedAt" ], "example": { - "event": "account.sessions.create", - "userId": "610fc2f985ee0", - "userEmail": "john@appwrite.io", - "userName": "John Doe", - "mode": "admin", - "userType": "user", - "ip": "127.0.0.1", - "time": "2020-10-15T06:38:00.000+00:00", - "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" + "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 + ] } }, - "user": { - "description": "User", + "columnLine": { + "description": "ColumnLine", "type": "object", "properties": { - "$id": { - "type": "string", - "description": "User ID.", - "x-example": "5e5ea5c16897e" - }, - "$createdAt": { - "type": "string", - "description": "User creation date in ISO 8601 format.", - "x-example": "2020-10-15T06:38:00.000+00:00" - }, - "$updatedAt": { + "key": { "type": "string", - "description": "User update date in ISO 8601 format.", - "x-example": "2020-10-15T06:38:00.000+00:00" + "description": "Column Key.", + "x-example": "fullName" }, - "name": { + "type": { "type": "string", - "description": "User name.", - "x-example": "John Doe" + "description": "Column type.", + "x-example": "string" }, - "password": { + "status": { "type": "string", - "description": "Hashed user password.", - "x-example": "$argon2id$v=19$m=2048,t=4,p=3$aUZjLnliVWRINmFNTWMudg$5S+x+7uA31xFnrHFT47yFwcJeaP0w92L\/4LdgrVRXxE", - "nullable": true + "description": "Column status. Possible values: `available`, `processing`, `deleting`, `stuck`, or `failed`", + "x-example": "available", + "enum": [ + "available", + "processing", + "deleting", + "stuck", + "failed" + ], + "x-enum-name": "ColumnStatus" }, - "hash": { + "error": { "type": "string", - "description": "Password hashing algorithm.", - "x-example": "argon2", - "nullable": true + "description": "Error message. Displays error generated on failure of creating or deleting an column.", + "x-example": "string" }, - "hashOptions": { - "type": "object", - "description": "Password hashing algorithm configuration.", - "x-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" - } - } - } - ], + "required": { + "type": "boolean", + "description": "Is column required?", + "x-example": true + }, + "array": { + "type": "boolean", + "description": "Is column an array?", + "x-example": false, "nullable": true }, - "registration": { + "$createdAt": { "type": "string", - "description": "User registration date in ISO 8601 format.", + "description": "Column creation date in ISO 8601 format.", "x-example": "2020-10-15T06:38:00.000+00:00" }, - "status": { - "type": "boolean", - "description": "User status. Pass `true` for enabled and `false` for disabled.", - "x-example": true + "$updatedAt": { + "type": "string", + "description": "Column update date in ISO 8601 format.", + "x-example": "2020-10-15T06:38:00.000+00:00" }, - "labels": { + "default": { "type": "array", - "description": "Labels for the user.", + "description": "Default value for column when not provided. Cannot be set when column is required.", + "x-example": [ + [ + 0, + 0 + ], + [ + 1, + 1 + ] + ], "items": { - "type": "string" + "type": "array", + "items": { + "type": "number", + "format": "double" + } }, - "x-example": [ - "vip" + "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 ] - }, - "passwordUpdate": { + ] + } + }, + "columnPolygon": { + "description": "ColumnPolygon", + "type": "object", + "properties": { + "key": { "type": "string", - "description": "Password update time in ISO 8601 format.", - "x-example": "2020-10-15T06:38:00.000+00:00" + "description": "Column Key.", + "x-example": "fullName" }, - "email": { + "type": { "type": "string", - "description": "User email address.", - "x-example": "john@appwrite.io" + "description": "Column type.", + "x-example": "string" }, - "phone": { + "status": { "type": "string", - "description": "User phone number in E.164 format.", - "x-example": "+4930901820" - }, - "emailVerification": { - "type": "boolean", - "description": "Email verification status.", - "x-example": true + "description": "Column status. Possible values: `available`, `processing`, `deleting`, `stuck`, or `failed`", + "x-example": "available", + "enum": [ + "available", + "processing", + "deleting", + "stuck", + "failed" + ], + "x-enum-name": "ColumnStatus" }, - "emailCanonical": { + "error": { "type": "string", - "description": "Canonical form of the user email address.", - "x-example": "john@appwrite.io", - "nullable": true + "description": "Error message. Displays error generated on failure of creating or deleting an column.", + "x-example": "string" }, - "emailIsFree": { + "required": { "type": "boolean", - "description": "Whether the user email is from a free email provider.", - "x-example": true, - "nullable": true + "description": "Is column required?", + "x-example": true }, - "emailIsDisposable": { + "array": { "type": "boolean", - "description": "Whether the user email is from a disposable email provider.", + "description": "Is column an array?", "x-example": false, "nullable": true }, - "emailIsCorporate": { - "type": "boolean", - "description": "Whether the user email is from a corporate domain.", - "x-example": true, - "nullable": true - }, - "emailIsCanonical": { - "type": "boolean", - "description": "Whether the user email is in its canonical form.", - "x-example": true, - "nullable": true - }, - "phoneVerification": { - "type": "boolean", - "description": "Phone verification status.", - "x-example": true - }, - "mfa": { - "type": "boolean", - "description": "Multi factor authentication status.", - "x-example": true + "$createdAt": { + "type": "string", + "description": "Column creation date in ISO 8601 format.", + "x-example": "2020-10-15T06:38:00.000+00:00" }, - "prefs": { - "type": "object", - "description": "User preferences as a key-value object", - "x-example": { - "theme": "pink", - "timezone": "UTC" - }, - "allOf": [ - { - "$ref": "#\/components\/schemas\/preferences" - } - ] + "$updatedAt": { + "type": "string", + "description": "Column update date in ISO 8601 format.", + "x-example": "2020-10-15T06:38:00.000+00:00" }, - "targets": { + "default": { "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.", + "description": "Default value for column when not provided. Cannot be set when column is required.", + "x-example": [ + [ + [ + 0, + 0 + ], + [ + 0, + 10 + ] + ], + [ + [ + 10, + 10 + ], + [ + 0, + 0 + ] + ] + ], "items": { - "$ref": "#\/components\/schemas\/target" + "type": "array", + "items": { + "type": "array", + "items": { + "type": "number", + "format": "double" + } + } }, - "x-example": [] - }, - "accessedAt": { - "type": "string", - "description": "Most recent access date in ISO 8601 format. This attribute is only updated again after 24 hours.", - "x-example": "2020-10-15T06:38:00.000+00:00" - }, - "impersonator": { - "type": "boolean", - "description": "Whether the user can impersonate other users.", - "x-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.", - "x-example": "5e5ea5c16897e", "nullable": true } }, "required": [ - "$id", - "$createdAt", - "$updatedAt", - "name", - "registration", + "key", + "type", "status", - "labels", - "passwordUpdate", - "email", - "phone", - "emailVerification", - "phoneVerification", - "mfa", - "prefs", - "targets", - "accessedAt" + "error", + "required", + "$createdAt", + "$updatedAt" ], "example": { - "$id": "5e5ea5c16897e", + "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", - "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, - "phoneVerification": true, - "mfa": true, - "prefs": { - "theme": "pink", - "timezone": "UTC" - }, - "targets": [], - "accessedAt": "2020-10-15T06:38:00.000+00:00", - "impersonator": false, - "impersonatorUserId": "5e5ea5c16897e" + "default": [ + [ + [ + 0, + 0 + ], + [ + 0, + 10 + ] + ], + [ + [ + 10, + 10 + ], + [ + 0, + 0 + ] + ] + ] } }, - "algoMd5": { - "description": "AlgoMD5", + "columnVarchar": { + "description": "ColumnVarchar", "type": "object", "properties": { - "type": { + "key": { "type": "string", - "description": "Algo type.", - "x-example": "md5" - } - }, - "required": [ - "type" - ], - "example": { - "type": "md5" - } - }, - "algoSha": { - "description": "AlgoSHA", - "type": "object", - "properties": { + "description": "Column Key.", + "x-example": "fullName" + }, "type": { "type": "string", - "description": "Algo type.", - "x-example": "sha" - } - }, - "required": [ - "type" - ], - "example": { - "type": "sha" - } - }, - "algoPhpass": { - "description": "AlgoPHPass", - "type": "object", - "properties": { - "type": { + "description": "Column type.", + "x-example": "string" + }, + "status": { "type": "string", - "description": "Algo type.", - "x-example": "phpass" - } - }, - "required": [ - "type" - ], - "example": { - "type": "phpass" - } - }, - "algoBcrypt": { - "description": "AlgoBcrypt", - "type": "object", - "properties": { - "type": { + "description": "Column status. Possible values: `available`, `processing`, `deleting`, `stuck`, or `failed`", + "x-example": "available", + "enum": [ + "available", + "processing", + "deleting", + "stuck", + "failed" + ], + "x-enum-name": "ColumnStatus" + }, + "error": { "type": "string", - "description": "Algo type.", - "x-example": "bcrypt" - } - }, - "required": [ - "type" - ], - "example": { - "type": "bcrypt" - } - }, - "algoScrypt": { - "description": "AlgoScrypt", - "type": "object", - "properties": { - "type": { + "description": "Error message. Displays error generated on failure of creating or deleting an column.", + "x-example": "string" + }, + "required": { + "type": "boolean", + "description": "Is column required?", + "x-example": true + }, + "array": { + "type": "boolean", + "description": "Is column an array?", + "x-example": false, + "nullable": true + }, + "$createdAt": { "type": "string", - "description": "Algo type.", - "x-example": "scrypt" + "description": "Column creation date in ISO 8601 format.", + "x-example": "2020-10-15T06:38:00.000+00:00" }, - "costCpu": { - "type": "integer", - "description": "CPU complexity of computed hash.", - "x-example": 8, - "format": "int32" + "$updatedAt": { + "type": "string", + "description": "Column update date in ISO 8601 format.", + "x-example": "2020-10-15T06:38:00.000+00:00" }, - "costMemory": { + "size": { "type": "integer", - "description": "Memory complexity of computed hash.", - "x-example": 14, + "description": "Column size.", + "x-example": 128, "format": "int32" }, - "costParallel": { - "type": "integer", - "description": "Parallelization of computed hash.", - "x-example": 1, - "format": "int32" + "default": { + "type": "string", + "description": "Default value for column when not provided. Cannot be set when column is required.", + "x-example": "default", + "nullable": true }, - "length": { - "type": "integer", - "description": "Length used to compute hash.", - "x-example": 64, - "format": "int32" + "encrypt": { + "type": "boolean", + "description": "Defines whether this column is encrypted or not.", + "x-example": false, + "nullable": true } }, "required": [ + "key", "type", - "costCpu", - "costMemory", - "costParallel", - "length" + "status", + "error", + "required", + "$createdAt", + "$updatedAt", + "size" ], "example": { - "type": "scrypt", - "costCpu": 8, - "costMemory": 14, - "costParallel": 1, - "length": 64 + "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 } }, - "algoScryptModified": { - "description": "AlgoScryptModified", + "columnText": { + "description": "ColumnText", "type": "object", "properties": { + "key": { + "type": "string", + "description": "Column Key.", + "x-example": "fullName" + }, "type": { "type": "string", - "description": "Algo type.", - "x-example": "scryptMod" + "description": "Column type.", + "x-example": "string" }, - "salt": { + "status": { + "type": "string", + "description": "Column status. Possible values: `available`, `processing`, `deleting`, `stuck`, or `failed`", + "x-example": "available", + "enum": [ + "available", + "processing", + "deleting", + "stuck", + "failed" + ], + "x-enum-name": "ColumnStatus" + }, + "error": { + "type": "string", + "description": "Error message. Displays error generated on failure of creating or deleting an column.", + "x-example": "string" + }, + "required": { + "type": "boolean", + "description": "Is column required?", + "x-example": true + }, + "array": { + "type": "boolean", + "description": "Is column an array?", + "x-example": false, + "nullable": true + }, + "$createdAt": { "type": "string", - "description": "Salt used to compute hash.", - "x-example": "UxLMreBr6tYyjQ==" + "description": "Column creation date in ISO 8601 format.", + "x-example": "2020-10-15T06:38:00.000+00:00" }, - "saltSeparator": { + "$updatedAt": { "type": "string", - "description": "Separator used to compute hash.", - "x-example": "Bw==" + "description": "Column update date in ISO 8601 format.", + "x-example": "2020-10-15T06:38:00.000+00:00" }, - "signerKey": { + "default": { "type": "string", - "description": "Key used to compute hash.", - "x-example": "XyEKE9RcTDeLEsL\/RjwPDBv\/RqDl8fb3gpYEOQaPihbxf1ZAtSOHCjuAAa7Q3oHpCYhXSN9tizHgVOwn6krflQ==" + "description": "Default value for column when not provided. Cannot be set when column is required.", + "x-example": "default", + "nullable": true + }, + "encrypt": { + "type": "boolean", + "description": "Defines whether this column is encrypted or not.", + "x-example": false, + "nullable": true } }, "required": [ + "key", "type", - "salt", - "saltSeparator", - "signerKey" + "status", + "error", + "required", + "$createdAt", + "$updatedAt" ], "example": { - "type": "scryptMod", - "salt": "UxLMreBr6tYyjQ==", - "saltSeparator": "Bw==", - "signerKey": "XyEKE9RcTDeLEsL\/RjwPDBv\/RqDl8fb3gpYEOQaPihbxf1ZAtSOHCjuAAa7Q3oHpCYhXSN9tizHgVOwn6krflQ==" + "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 } }, - "algoArgon2": { - "description": "AlgoArgon2", + "columnMediumtext": { + "description": "ColumnMediumtext", "type": "object", "properties": { + "key": { + "type": "string", + "description": "Column Key.", + "x-example": "fullName" + }, "type": { "type": "string", - "description": "Algo type.", - "x-example": "argon2" + "description": "Column type.", + "x-example": "string" }, - "memoryCost": { - "type": "integer", - "description": "Memory used to compute hash.", - "x-example": 65536, - "format": "int32" + "status": { + "type": "string", + "description": "Column status. Possible values: `available`, `processing`, `deleting`, `stuck`, or `failed`", + "x-example": "available", + "enum": [ + "available", + "processing", + "deleting", + "stuck", + "failed" + ], + "x-enum-name": "ColumnStatus" }, - "timeCost": { - "type": "integer", - "description": "Amount of time consumed to compute hash", - "x-example": 4, - "format": "int32" + "error": { + "type": "string", + "description": "Error message. Displays error generated on failure of creating or deleting an column.", + "x-example": "string" }, - "threads": { - "type": "integer", - "description": "Number of threads used to compute hash.", - "x-example": 3, - "format": "int32" + "required": { + "type": "boolean", + "description": "Is column required?", + "x-example": true + }, + "array": { + "type": "boolean", + "description": "Is column an array?", + "x-example": false, + "nullable": true + }, + "$createdAt": { + "type": "string", + "description": "Column creation date in ISO 8601 format.", + "x-example": "2020-10-15T06:38:00.000+00:00" + }, + "$updatedAt": { + "type": "string", + "description": "Column update date in ISO 8601 format.", + "x-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.", + "x-example": "default", + "nullable": true + }, + "encrypt": { + "type": "boolean", + "description": "Defines whether this column is encrypted or not.", + "x-example": false, + "nullable": true } }, "required": [ + "key", "type", - "memoryCost", - "timeCost", - "threads" + "status", + "error", + "required", + "$createdAt", + "$updatedAt" ], "example": { - "type": "argon2", - "memoryCost": 65536, - "timeCost": 4, - "threads": 3 - } - }, - "preferences": { - "description": "Preferences", - "type": "object", - "additionalProperties": true, - "example": { - "language": "en", - "timezone": "UTC", - "darkTheme": true + "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 } }, - "session": { - "description": "Session", + "columnLongtext": { + "description": "ColumnLongtext", "type": "object", "properties": { - "$id": { - "type": "string", - "description": "Session ID.", - "x-example": "5e5ea5c16897e" - }, - "$createdAt": { + "key": { "type": "string", - "description": "Session creation date in ISO 8601 format.", - "x-example": "2020-10-15T06:38:00.000+00:00" + "description": "Column Key.", + "x-example": "fullName" }, - "$updatedAt": { + "type": { "type": "string", - "description": "Session update date in ISO 8601 format.", - "x-example": "2020-10-15T06:38:00.000+00:00" + "description": "Column type.", + "x-example": "string" }, - "userId": { + "status": { "type": "string", - "description": "User ID.", - "x-example": "5e5bb8c16897e" + "description": "Column status. Possible values: `available`, `processing`, `deleting`, `stuck`, or `failed`", + "x-example": "available", + "enum": [ + "available", + "processing", + "deleting", + "stuck", + "failed" + ], + "x-enum-name": "ColumnStatus" }, - "expire": { + "error": { "type": "string", - "description": "Session expiration date in ISO 8601 format.", - "x-example": "2020-10-15T06:38:00.000+00:00" + "description": "Error message. Displays error generated on failure of creating or deleting an column.", + "x-example": "string" }, - "provider": { - "type": "string", - "description": "Session Provider.", - "x-example": "email" + "required": { + "type": "boolean", + "description": "Is column required?", + "x-example": true }, - "providerUid": { - "type": "string", - "description": "Session Provider User ID.", - "x-example": "user@example.com" + "array": { + "type": "boolean", + "description": "Is column an array?", + "x-example": false, + "nullable": true }, - "providerAccessToken": { + "$createdAt": { "type": "string", - "description": "Session Provider Access Token.", - "x-example": "MTQ0NjJkZmQ5OTM2NDE1ZTZjNGZmZjI3" + "description": "Column creation date in ISO 8601 format.", + "x-example": "2020-10-15T06:38:00.000+00:00" }, - "providerAccessTokenExpiry": { + "$updatedAt": { "type": "string", - "description": "The date of when the access token expires in ISO 8601 format.", + "description": "Column update date in ISO 8601 format.", "x-example": "2020-10-15T06:38:00.000+00:00" }, - "providerRefreshToken": { + "default": { "type": "string", - "description": "Session Provider Refresh Token.", - "x-example": "MTQ0NjJkZmQ5OTM2NDE1ZTZjNGZmZjI3" + "description": "Default value for column when not provided. Cannot be set when column is required.", + "x-example": "default", + "nullable": true }, - "ip": { + "encrypt": { + "type": "boolean", + "description": "Defines whether this column is encrypted or not.", + "x-example": false, + "nullable": true + } + }, + "required": [ + "key", + "type", + "status", + "error", + "required", + "$createdAt", + "$updatedAt" + ], + "example": { + "key": "fullName", + "type": "string", + "status": "available", + "error": "string", + "required": true, + "array": false, + "$createdAt": "2020-10-15T06:38:00.000+00:00", + "$updatedAt": "2020-10-15T06:38:00.000+00:00", + "default": "default", + "encrypt": false + } + }, + "index": { + "description": "Index", + "type": "object", + "properties": { + "$id": { "type": "string", - "description": "IP in use when the session was created.", - "x-example": "127.0.0.1" + "description": "Index ID.", + "x-example": "5e5ea5c16897e" }, - "osCode": { + "$createdAt": { "type": "string", - "description": "Operating system code name. View list of [available options](https:\/\/github.com\/appwrite\/appwrite\/blob\/master\/docs\/lists\/os.json).", - "x-example": "Mac" + "description": "Index creation date in ISO 8601 format.", + "x-example": "2020-10-15T06:38:00.000+00:00" }, - "osName": { + "$updatedAt": { "type": "string", - "description": "Operating system name.", - "x-example": "Mac" + "description": "Index update date in ISO 8601 format.", + "x-example": "2020-10-15T06:38:00.000+00:00" }, - "osVersion": { + "key": { "type": "string", - "description": "Operating system version.", - "x-example": "Mac" + "description": "Index key.", + "x-example": "index1" }, - "clientType": { + "type": { "type": "string", - "description": "Client type.", - "x-example": "browser" + "description": "Index type.", + "x-example": "primary" }, - "clientCode": { + "status": { "type": "string", - "description": "Client code name. View list of [available options](https:\/\/github.com\/appwrite\/appwrite\/blob\/master\/docs\/lists\/clients.json).", - "x-example": "CM" + "description": "Index status. Possible values: `available`, `processing`, `deleting`, `stuck`, or `failed`", + "x-example": "available", + "enum": [ + "available", + "processing", + "deleting", + "stuck", + "failed" + ] }, - "clientName": { + "error": { "type": "string", - "description": "Client name.", - "x-example": "Chrome Mobile iOS" + "description": "Error message. Displays error generated on failure of creating or deleting an index.", + "x-example": "string" }, - "clientVersion": { - "type": "string", - "description": "Client version.", - "x-example": "84.0" + "attributes": { + "type": "array", + "description": "Index attributes.", + "items": { + "type": "string" + }, + "x-example": [] }, - "clientEngine": { - "type": "string", - "description": "Client engine name.", - "x-example": "WebKit" + "lengths": { + "type": "array", + "description": "Index attributes length.", + "items": { + "type": "integer", + "format": "int32" + }, + "x-example": [] }, - "clientEngineVersion": { + "orders": { + "type": "array", + "description": "Index orders.", + "items": { + "type": "string" + }, + "x-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": "Client engine name.", - "x-example": "605.1.15" + "description": "Index ID.", + "x-example": "5e5ea5c16897e" }, - "deviceName": { + "$createdAt": { "type": "string", - "description": "Device name.", - "x-example": "smartphone" + "description": "Index creation date in ISO 8601 format.", + "x-example": "2020-10-15T06:38:00.000+00:00" }, - "deviceBrand": { + "$updatedAt": { "type": "string", - "description": "Device brand name.", - "x-example": "Google" + "description": "Index update date in ISO 8601 format.", + "x-example": "2020-10-15T06:38:00.000+00:00" }, - "deviceModel": { + "key": { "type": "string", - "description": "Device model name.", - "x-example": "Nexus 5" + "description": "Index Key.", + "x-example": "index1" }, - "countryCode": { + "type": { "type": "string", - "description": "Country two-character ISO 3166-1 alpha code.", - "x-example": "US" + "description": "Index type.", + "x-example": "primary" }, - "countryName": { + "status": { "type": "string", - "description": "Country name.", - "x-example": "United States" + "description": "Index status. Possible values: `available`, `processing`, `deleting`, `stuck`, or `failed`", + "x-example": "available" }, - "current": { - "type": "boolean", - "description": "Returns true if this the current user session.", - "x-example": true + "error": { + "type": "string", + "description": "Error message. Displays error generated on failure of creating or deleting an index.", + "x-example": "string" }, - "factors": { + "columns": { "type": "array", - "description": "Returns a list of active session factors.", + "description": "Index columns.", "items": { "type": "string" }, - "x-example": [ - "email" - ] + "x-example": [] }, - "secret": { - "type": "string", - "description": "Secret used to authenticate the user. Only included if the request was made with an API key", - "x-example": "5e5bb8c16897e" + "lengths": { + "type": "array", + "description": "Index columns length.", + "items": { + "type": "integer", + "format": "int32" + }, + "x-example": [] }, - "mfaUpdatedAt": { - "type": "string", - "description": "Most recent date in ISO 8601 format when the session successfully passed MFA challenge.", - "x-example": "2020-10-15T06:38:00.000+00:00" + "orders": { + "type": "array", + "description": "Index orders.", + "items": { + "type": "string" + }, + "x-example": [], + "nullable": true } }, "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" + "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", - "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" + "$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": [] } }, - "identity": { - "description": "Identity", + "row": { + "description": "Row", "type": "object", "properties": { "$id": { "type": "string", - "description": "Identity ID.", + "description": "Row ID.", "x-example": "5e5ea5c16897e" }, - "$createdAt": { - "type": "string", - "description": "Identity creation date in ISO 8601 format.", - "x-example": "2020-10-15T06:38:00.000+00:00" - }, - "$updatedAt": { - "type": "string", - "description": "Identity update date in ISO 8601 format.", - "x-example": "2020-10-15T06:38:00.000+00:00" - }, - "userId": { - "type": "string", - "description": "User ID.", - "x-example": "5e5bb8c16897e" - }, - "provider": { + "$sequence": { "type": "string", - "description": "Identity Provider.", - "x-example": "email" + "description": "Row sequence ID.", + "x-example": "1", + "readOnly": true }, - "providerUid": { + "$tableId": { "type": "string", - "description": "ID of the User in the Identity Provider.", - "x-example": "5e5bb8c16897e" + "description": "Table ID.", + "x-example": "5e5ea5c15117e", + "readOnly": true }, - "providerEmail": { + "$databaseId": { "type": "string", - "description": "Email of the User in the Identity Provider.", - "x-example": "user@example.com" + "description": "Database ID.", + "x-example": "5e5ea5c15117e", + "readOnly": true }, - "providerAccessToken": { + "$createdAt": { "type": "string", - "description": "Identity Provider Access Token.", - "x-example": "MTQ0NjJkZmQ5OTM2NDE1ZTZjNGZmZjI3" + "description": "Row creation date in ISO 8601 format.", + "x-example": "2020-10-15T06:38:00.000+00:00" }, - "providerAccessTokenExpiry": { + "$updatedAt": { "type": "string", - "description": "The date of when the access token expires in ISO 8601 format.", + "description": "Row update date in ISO 8601 format.", "x-example": "2020-10-15T06:38:00.000+00:00" }, - "providerRefreshToken": { - "type": "string", - "description": "Identity Provider Refresh Token.", - "x-example": "MTQ0NjJkZmQ5OTM2NDE1ZTZjNGZmZjI3" + "$permissions": { + "type": "array", + "description": "Row permissions. [Learn more about permissions](https:\/\/appwrite.io\/docs\/permissions).", + "items": { + "type": "string" + }, + "x-example": [ + "read(\"any\")" + ] } }, + "additionalProperties": true, "required": [ "$id", + "$sequence", + "$tableId", + "$databaseId", "$createdAt", "$updatedAt", - "userId", - "provider", - "providerUid", - "providerEmail", - "providerAccessToken", - "providerAccessTokenExpiry", - "providerRefreshToken" + "$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", - "userId": "5e5bb8c16897e", - "provider": "email", - "providerUid": "5e5bb8c16897e", - "providerEmail": "user@example.com", - "providerAccessToken": "MTQ0NjJkZmQ5OTM2NDE1ZTZjNGZmZjI3", - "providerAccessTokenExpiry": "2020-10-15T06:38:00.000+00:00", - "providerRefreshToken": "MTQ0NjJkZmQ5OTM2NDE1ZTZjNGZmZjI3" + "$permissions": [ + "read(\"any\")" + ] } }, - "notification": { - "description": "Notification", + "document": { + "description": "Document", "type": "object", "properties": { "$id": { "type": "string", - "description": "Notification ID.", + "description": "Document ID.", "x-example": "5e5ea5c16897e" }, - "$createdAt": { - "type": "string", - "description": "Notification creation date in ISO 8601 format.", - "x-example": "2020-10-15T06:38:00.000+00:00" - }, - "$updatedAt": { - "type": "string", - "description": "Notification update date in ISO 8601 format.", - "x-example": "2020-10-15T06:38:00.000+00:00" - }, - "messageId": { - "type": "string", - "description": "Stable message ID used for dedup.", - "x-example": "session.create", - "nullable": true - }, - "type": { - "type": "string", - "description": "Notification type: info, warning, error.", - "x-example": "info" - }, - "channel": { - "type": "string", - "description": "Channel: email, sms, push, console, webhook.", - "x-example": "email" - }, - "resourceType": { - "type": "string", - "description": "Resource type this notification is addressed to.", - "x-example": "users" - }, - "resourceId": { - "type": "string", - "description": "Resource ID this notification is addressed to.", - "x-example": "5e5bb8c16897e" - }, - "parentResourceType": { - "type": "string", - "description": "Parent resource type for the notification.", - "x-example": "projects" - }, - "parentResourceId": { + "$sequence": { "type": "string", - "description": "Parent resource ID for the notification.", - "x-example": "5e5bb8c16897e" + "description": "Document sequence ID.", + "x-example": "1", + "readOnly": true }, - "projectId": { + "$collectionId": { "type": "string", - "description": "Project the notification pertains to.", - "x-example": "5e5bb8c16897e", - "nullable": true + "description": "Collection ID.", + "x-example": "5e5ea5c15117e", + "readOnly": true }, - "title": { + "$databaseId": { "type": "string", - "description": "Notification title.", - "x-example": "New sign-in detected" + "description": "Database ID.", + "x-example": "5e5ea5c15117e", + "readOnly": true }, - "body": { + "$createdAt": { "type": "string", - "description": "Notification body.", - "x-example": "A new device signed in to your account." - }, - "read": { - "type": "boolean", - "description": "Whether the notification has been read.", - "x-example": false, - "nullable": true + "description": "Document creation date in ISO 8601 format.", + "x-example": "2020-10-15T06:38:00.000+00:00" }, - "firstSeen": { + "$updatedAt": { "type": "string", - "description": "First time the notification was viewed from a notification logo.", - "x-example": "2020-10-15T06:38:00.000+00:00", - "nullable": true + "description": "Document update date in ISO 8601 format.", + "x-example": "2020-10-15T06:38:00.000+00:00" }, - "lastSeen": { - "type": "string", - "description": "Most recent time the notification was viewed from a notification logo.", - "x-example": "2020-10-15T06:38:00.000+00:00", - "nullable": true + "$permissions": { + "type": "array", + "description": "Document permissions. [Learn more about permissions](https:\/\/appwrite.io\/docs\/permissions).", + "items": { + "type": "string" + }, + "x-example": [ + "read(\"any\")" + ] } }, + "additionalProperties": true, "required": [ "$id", + "$sequence", + "$collectionId", + "$databaseId", "$createdAt", "$updatedAt", - "type", - "channel", - "resourceType", - "resourceId", - "parentResourceType", - "parentResourceId", - "title", - "body" + "$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", - "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" + "$permissions": [ + "read(\"any\")" + ], + "username": "john.doe", + "email": "john.doe@example.com", + "fullName": "John Doe", + "age": 30, + "isAdmin": false } }, - "token": { - "description": "Token", + "presence": { + "description": "Presence", "type": "object", "properties": { "$id": { "type": "string", - "description": "Token ID.", - "x-example": "bb8ea5c16897e" + "description": "Presence ID.", + "x-example": "5e5ea5c16897e" }, "$createdAt": { "type": "string", - "description": "Token creation date in ISO 8601 format.", + "description": "Presence creation date in ISO 8601 format.", + "x-example": "2020-10-15T06:38:00.000+00:00" + }, + "$updatedAt": { + "type": "string", + "description": "Presence update date in ISO 8601 format.", "x-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" + }, + "x-example": [ + "read(\"any\")" + ] + }, "userId": { "type": "string", "description": "User ID.", - "x-example": "5e5ea5c168bb8" + "x-example": "674af8f3e12a5f9ac0be" }, - "secret": { + "status": { "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.", - "x-example": "" + "description": "Presence status.", + "x-example": "online", + "nullable": true }, - "expire": { + "source": { "type": "string", - "description": "Token expiration date in ISO 8601 format.", - "x-example": "2020-10-15T06:38:00.000+00:00" + "description": "Presence source.", + "x-example": "HTTP" }, - "phrase": { + "expiresAt": { "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.", - "x-example": "Golden Fox" + "description": "Presence expiry date in ISO 8601 format.", + "x-example": "2020-10-15T06:38:00.000+00:00", + "nullable": true + }, + "metadata": { + "type": "object", + "additionalProperties": true, + "description": "Presence metadata.", + "x-example": { + "key": "value" + } } }, "required": [ "$id", "$createdAt", + "$updatedAt", + "$permissions", "userId", - "secret", - "expire", - "phrase" + "source" ], "example": { - "$id": "bb8ea5c16897e", + "$id": "5e5ea5c16897e", "$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.", - "x-example": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c" + "$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" } - }, - "required": [ - "jwt" - ], - "example": { - "jwt": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c" } }, - "localeCode": { - "description": "LocaleCode", + "log": { + "description": "Log", "type": "object", "properties": { - "code": { + "event": { "type": "string", - "description": "Locale codes in [ISO 639-1](https:\/\/en.wikipedia.org\/wiki\/List_of_ISO_639-1_codes)", - "x-example": "en-us" + "description": "Event name.", + "x-example": "account.sessions.create" }, - "name": { + "userId": { "type": "string", - "description": "Locale name", - "x-example": "US" - } - }, - "required": [ - "code", - "name" - ], - "example": { - "code": "en-us", - "name": "US" - } - }, - "file": { - "description": "File", - "type": "object", - "properties": { - "$id": { + "description": "User ID of the actor recorded for this log. During impersonation, this is the original impersonator, not the impersonated target user.", + "x-example": "610fc2f985ee0" + }, + "userEmail": { "type": "string", - "description": "File ID.", - "x-example": "5e5ea5c16897e" + "description": "User email of the actor recorded for this log. During impersonation, this is the original impersonator.", + "x-example": "john@appwrite.io" }, - "bucketId": { + "userName": { "type": "string", - "description": "Bucket ID.", - "x-example": "5e5ea5c16897e" + "description": "User name of the actor recorded for this log. During impersonation, this is the original impersonator.", + "x-example": "John Doe" }, - "$createdAt": { + "mode": { "type": "string", - "description": "File creation date in ISO 8601 format.", - "x-example": "2020-10-15T06:38:00.000+00:00" + "description": "API mode when event triggered.", + "x-example": "admin" }, - "$updatedAt": { + "userType": { "type": "string", - "description": "File update date in ISO 8601 format.", + "description": "User type who triggered the audit log. Possible values: user, admin, guest, hidden, keyProject, keyAccount, keyOrganization.", + "x-example": "user" + }, + "ip": { + "type": "string", + "description": "IP session in use when the session was created.", + "x-example": "127.0.0.1" + }, + "time": { + "type": "string", + "description": "Log creation date in ISO 8601 format.", "x-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" - }, - "x-example": [ - "read(\"any\")" - ] + "osCode": { + "type": "string", + "description": "Operating system code name. View list of [available options](https:\/\/github.com\/appwrite\/appwrite\/blob\/master\/docs\/lists\/os.json).", + "x-example": "Mac" }, - "name": { + "osName": { "type": "string", - "description": "File name.", - "x-example": "Pink.png" + "description": "Operating system name.", + "x-example": "Mac" }, - "signature": { + "osVersion": { "type": "string", - "description": "File MD5 signature.", - "x-example": "5d529fd02b544198ae075bd57c1762bb" + "description": "Operating system version.", + "x-example": "Mac" }, - "mimeType": { + "clientType": { "type": "string", - "description": "File mime type.", - "x-example": "image\/png" + "description": "Client type.", + "x-example": "browser" }, - "sizeOriginal": { - "type": "integer", - "description": "File original size in bytes.", - "x-example": 17890, - "format": "int32" + "clientCode": { + "type": "string", + "description": "Client code name. View list of [available options](https:\/\/github.com\/appwrite\/appwrite\/blob\/master\/docs\/lists\/clients.json).", + "x-example": "CM" }, - "sizeActual": { - "type": "integer", - "description": "File actual stored size in bytes after compression and\/or encryption.", - "x-example": 12345, - "format": "int32" + "clientName": { + "type": "string", + "description": "Client name.", + "x-example": "Chrome Mobile iOS" }, - "chunksTotal": { - "type": "integer", - "description": "Total number of chunks available", - "x-example": 17890, - "format": "int32" + "clientVersion": { + "type": "string", + "description": "Client version.", + "x-example": "84.0" }, - "chunksUploaded": { - "type": "integer", - "description": "Total number of chunks uploaded", - "x-example": 17890, - "format": "int32" + "clientEngine": { + "type": "string", + "description": "Client engine name.", + "x-example": "WebKit" }, - "encryption": { - "type": "boolean", - "description": "Whether file contents are encrypted at rest.", - "x-example": true + "clientEngineVersion": { + "type": "string", + "description": "Client engine name.", + "x-example": "605.1.15" }, - "compression": { + "deviceName": { "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).", - "x-example": "gzip" + "description": "Device name.", + "x-example": "smartphone" + }, + "deviceBrand": { + "type": "string", + "description": "Device brand name.", + "x-example": "Google" + }, + "deviceModel": { + "type": "string", + "description": "Device model name.", + "x-example": "Nexus 5" + }, + "countryCode": { + "type": "string", + "description": "Country two-character ISO 3166-1 alpha code.", + "x-example": "US" + }, + "countryName": { + "type": "string", + "description": "Country name.", + "x-example": "United States" } }, - "required": [ - "$id", - "bucketId", - "$createdAt", - "$updatedAt", - "$permissions", - "name", - "signature", - "mimeType", - "sizeOriginal", - "sizeActual", - "chunksTotal", - "chunksUploaded", - "encryption", - "compression" + "required": [ + "event", + "userId", + "userEmail", + "userName", + "mode", + "userType", + "ip", + "time", + "osCode", + "osName", + "osVersion", + "clientType", + "clientCode", + "clientName", + "clientVersion", + "clientEngine", + "clientEngineVersion", + "deviceName", + "deviceBrand", + "deviceModel", + "countryCode", + "countryName" ], "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", - "signature": "5d529fd02b544198ae075bd57c1762bb", - "mimeType": "image\/png", - "sizeOriginal": 17890, - "sizeActual": 12345, - "chunksTotal": 17890, - "chunksUploaded": 17890, - "encryption": true, - "compression": "gzip" + "event": "account.sessions.create", + "userId": "610fc2f985ee0", + "userEmail": "john@appwrite.io", + "userName": "John Doe", + "mode": "admin", + "userType": "user", + "ip": "127.0.0.1", + "time": "2020-10-15T06:38:00.000+00:00", + "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" } }, - "bucket": { - "description": "Bucket", + "user": { + "description": "User", "type": "object", "properties": { "$id": { "type": "string", - "description": "Bucket ID.", + "description": "User ID.", "x-example": "5e5ea5c16897e" }, "$createdAt": { "type": "string", - "description": "Bucket creation time in ISO 8601 format.", + "description": "User creation date in ISO 8601 format.", "x-example": "2020-10-15T06:38:00.000+00:00" }, "$updatedAt": { "type": "string", - "description": "Bucket update date in ISO 8601 format.", + "description": "User update date in ISO 8601 format.", "x-example": "2020-10-15T06:38:00.000+00:00" }, - "$permissions": { + "name": { + "type": "string", + "description": "User name.", + "x-example": "John Doe" + }, + "password": { + "type": "string", + "description": "Hashed user password.", + "x-example": "$argon2id$v=19$m=2048,t=4,p=3$aUZjLnliVWRINmFNTWMudg$5S+x+7uA31xFnrHFT47yFwcJeaP0w92L\/4LdgrVRXxE", + "nullable": true + }, + "hash": { + "type": "string", + "description": "Password hashing algorithm.", + "x-example": "argon2", + "nullable": true + }, + "hashOptions": { + "type": "object", + "description": "Password hashing algorithm configuration.", + "x-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.", + "x-example": "2020-10-15T06:38:00.000+00:00" + }, + "status": { + "type": "boolean", + "description": "User status. Pass `true` for enabled and `false` for disabled.", + "x-example": true + }, + "labels": { "type": "array", - "description": "Bucket permissions. [Learn more about permissions](https:\/\/appwrite.io\/docs\/permissions).", + "description": "Labels for the user.", "items": { "type": "string" }, "x-example": [ - "read(\"any\")" + "vip" ] }, - "fileSecurity": { + "passwordUpdate": { + "type": "string", + "description": "Password update time in ISO 8601 format.", + "x-example": "2020-10-15T06:38:00.000+00:00" + }, + "email": { + "type": "string", + "description": "User email address.", + "x-example": "john@appwrite.io" + }, + "phone": { + "type": "string", + "description": "User phone number in E.164 format.", + "x-example": "+4930901820" + }, + "emailVerification": { "type": "boolean", - "description": "Whether file-level security is enabled. [Learn more about permissions](https:\/\/appwrite.io\/docs\/permissions).", + "description": "Email verification status.", "x-example": true }, - "name": { + "emailCanonical": { "type": "string", - "description": "Bucket name.", - "x-example": "Documents" + "description": "Canonical form of the user email address.", + "x-example": "john@appwrite.io", + "nullable": true }, - "enabled": { + "emailIsFree": { "type": "boolean", - "description": "Bucket enabled.", - "x-example": false + "description": "Whether the user email is from a free email provider.", + "x-example": true, + "nullable": true }, - "maximumFileSize": { - "type": "integer", - "description": "Maximum file size supported.", - "x-example": 100, - "format": "int32" + "emailIsDisposable": { + "type": "boolean", + "description": "Whether the user email is from a disposable email provider.", + "x-example": false, + "nullable": true }, - "allowedFileExtensions": { - "type": "array", - "description": "Allowed file extensions.", - "items": { - "type": "string" - }, - "x-example": [ - "jpg", - "png" - ] + "emailIsCorporate": { + "type": "boolean", + "description": "Whether the user email is from a corporate domain.", + "x-example": true, + "nullable": true }, - "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).", - "x-example": "gzip" + "emailIsCanonical": { + "type": "boolean", + "description": "Whether the user email is in its canonical form.", + "x-example": true, + "nullable": true }, - "encryption": { + "phoneVerification": { "type": "boolean", - "description": "Bucket is encrypted.", - "x-example": false + "description": "Phone verification status.", + "x-example": true }, - "antivirus": { + "mfa": { "type": "boolean", - "description": "Virus scanning is enabled.", - "x-example": false + "description": "Multi factor authentication status.", + "x-example": true }, - "transformations": { + "prefs": { + "type": "object", + "description": "User preferences as a key-value object", + "x-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" + }, + "x-example": [] + }, + "accessedAt": { + "type": "string", + "description": "Most recent access date in ISO 8601 format. This attribute is only updated again after 24 hours.", + "x-example": "2020-10-15T06:38:00.000+00:00" + }, + "impersonator": { "type": "boolean", - "description": "Image transformations are enabled.", - "x-example": false + "description": "Whether the user can impersonate other users.", + "x-example": false, + "nullable": true }, - "totalSize": { - "type": "integer", - "description": "Total size of this bucket in bytes.", - "x-example": 128, - "format": "int32" + "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.", + "x-example": "5e5ea5c16897e", + "nullable": true } }, "required": [ "$id", "$createdAt", "$updatedAt", - "$permissions", - "fileSecurity", "name", - "enabled", - "maximumFileSize", - "allowedFileExtensions", - "compression", - "encryption", - "antivirus", - "transformations", - "totalSize" + "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", - "$permissions": [ - "read(\"any\")" - ], - "fileSecurity": true, - "name": "Documents", - "enabled": false, - "maximumFileSize": 100, - "allowedFileExtensions": [ - "jpg", - "png" + "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" ], - "compression": "gzip", - "encryption": false, - "antivirus": false, - "transformations": false, - "totalSize": 128 + "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, + "phoneVerification": true, + "mfa": true, + "prefs": { + "theme": "pink", + "timezone": "UTC" + }, + "targets": [], + "accessedAt": "2020-10-15T06:38:00.000+00:00", + "impersonator": false, + "impersonatorUserId": "5e5ea5c16897e" } }, - "resourceToken": { - "description": "ResourceToken", + "algoMd5": { + "description": "AlgoMD5", "type": "object", "properties": { - "$id": { - "type": "string", - "description": "Token ID.", - "x-example": "bb8ea5c16897e" - }, - "$createdAt": { - "type": "string", - "description": "Token creation date in ISO 8601 format.", - "x-example": "2020-10-15T06:38:00.000+00:00" - }, - "resourceId": { - "type": "string", - "description": "Resource ID.", - "x-example": "5e5ea5c168bb8:5e5ea5c168bb8" - }, - "resourceType": { - "type": "string", - "description": "Resource type.", - "x-example": "files" - }, - "expire": { + "type": { "type": "string", - "description": "Token expiration date in ISO 8601 format.", - "x-example": "2020-10-15T06:38:00.000+00:00" - }, - "secret": { + "description": "Algo type.", + "x-example": "md5" + } + }, + "required": [ + "type" + ], + "example": { + "type": "md5" + } + }, + "algoSha": { + "description": "AlgoSHA", + "type": "object", + "properties": { + "type": { "type": "string", - "description": "JWT encoded string.", - "x-example": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c" - }, - "accessedAt": { + "description": "Algo type.", + "x-example": "sha" + } + }, + "required": [ + "type" + ], + "example": { + "type": "sha" + } + }, + "algoPhpass": { + "description": "AlgoPHPass", + "type": "object", + "properties": { + "type": { "type": "string", - "description": "Most recent access date in ISO 8601 format. This attribute is only updated again after 24 hours.", - "x-example": "2020-10-15T06:38:00.000+00:00" + "description": "Algo type.", + "x-example": "phpass" } }, "required": [ - "$id", - "$createdAt", - "resourceId", - "resourceType", - "expire", - "secret", - "accessedAt" + "type" ], "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" + "type": "phpass" } }, - "team": { - "description": "Team", + "algoBcrypt": { + "description": "AlgoBcrypt", "type": "object", "properties": { - "$id": { + "type": { "type": "string", - "description": "Team ID.", - "x-example": "5e5ea5c16897e" - }, - "$createdAt": { + "description": "Algo type.", + "x-example": "bcrypt" + } + }, + "required": [ + "type" + ], + "example": { + "type": "bcrypt" + } + }, + "algoScrypt": { + "description": "AlgoScrypt", + "type": "object", + "properties": { + "type": { "type": "string", - "description": "Team creation date in ISO 8601 format.", - "x-example": "2020-10-15T06:38:00.000+00:00" + "description": "Algo type.", + "x-example": "scrypt" }, - "$updatedAt": { - "type": "string", - "description": "Team update date in ISO 8601 format.", - "x-example": "2020-10-15T06:38:00.000+00:00" + "costCpu": { + "type": "integer", + "description": "CPU complexity of computed hash.", + "x-example": 8, + "format": "int32" }, - "name": { - "type": "string", - "description": "Team name.", - "x-example": "VIP" + "costMemory": { + "type": "integer", + "description": "Memory complexity of computed hash.", + "x-example": 14, + "format": "int32" }, - "total": { + "costParallel": { "type": "integer", - "description": "Total number of team members.", - "x-example": 7, + "description": "Parallelization of computed hash.", + "x-example": 1, "format": "int32" }, - "prefs": { - "type": "object", - "description": "Team preferences as a key-value object", - "x-example": { - "theme": "pink", - "timezone": "UTC" - }, - "allOf": [ - { - "$ref": "#\/components\/schemas\/preferences" - } - ] + "length": { + "type": "integer", + "description": "Length used to compute hash.", + "x-example": 64, + "format": "int32" } }, "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" - } + "type", + "costCpu", + "costMemory", + "costParallel", + "length" + ], + "example": { + "type": "scrypt", + "costCpu": 8, + "costMemory": 14, + "costParallel": 1, + "length": 64 } }, - "membership": { - "description": "Membership", + "algoScryptModified": { + "description": "AlgoScryptModified", "type": "object", "properties": { - "$id": { - "type": "string", - "description": "Membership ID.", - "x-example": "5e5ea5c16897e" - }, - "$createdAt": { - "type": "string", - "description": "Membership creation date in ISO 8601 format.", - "x-example": "2020-10-15T06:38:00.000+00:00" - }, - "$updatedAt": { - "type": "string", - "description": "Membership update date in ISO 8601 format.", - "x-example": "2020-10-15T06:38:00.000+00:00" - }, - "userId": { - "type": "string", - "description": "User ID.", - "x-example": "5e5ea5c16897e" - }, - "userName": { - "type": "string", - "description": "User name. Hide this attribute by toggling membership privacy in the Console.", - "x-example": "John Doe" - }, - "userEmail": { - "type": "string", - "description": "User email address. Hide this attribute by toggling membership privacy in the Console.", - "x-example": "john@appwrite.io" - }, - "userPhone": { + "type": { "type": "string", - "description": "User phone number. Hide this attribute by toggling membership privacy in the Console.", - "x-example": "+1 555 555 5555" + "description": "Algo type.", + "x-example": "scryptMod" }, - "teamId": { + "salt": { "type": "string", - "description": "Team ID.", - "x-example": "5e5ea5c16897e" + "description": "Salt used to compute hash.", + "x-example": "UxLMreBr6tYyjQ==" }, - "teamName": { + "saltSeparator": { "type": "string", - "description": "Team name.", - "x-example": "VIP" + "description": "Separator used to compute hash.", + "x-example": "Bw==" }, - "invited": { + "signerKey": { "type": "string", - "description": "Date, the user has been invited to join the team in ISO 8601 format.", - "x-example": "2020-10-15T06:38:00.000+00:00" - }, - "joined": { + "description": "Key used to compute hash.", + "x-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": "Date, the user has accepted the invitation to join the team in ISO 8601 format.", - "x-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.", - "x-example": false + "description": "Algo type.", + "x-example": "argon2" }, - "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.", - "x-example": false + "memoryCost": { + "type": "integer", + "description": "Memory used to compute hash.", + "x-example": 65536, + "format": "int32" }, - "userAccessedAt": { - "type": "string", - "description": "Most recent access date in ISO 8601 format. Show this attribute by toggling membership privacy in the Console.", - "x-example": "2020-10-15T06:38:00.000+00:00" + "timeCost": { + "type": "integer", + "description": "Amount of time consumed to compute hash", + "x-example": 4, + "format": "int32" }, - "roles": { - "type": "array", - "description": "User list of roles", - "items": { - "type": "string" - }, - "x-example": [ - "owner" - ] + "threads": { + "type": "integer", + "description": "Number of threads used to compute hash.", + "x-example": 3, + "format": "int32" } }, "required": [ - "$id", - "$createdAt", - "$updatedAt", - "userId", - "userName", - "userEmail", - "userPhone", - "teamId", - "teamName", - "invited", - "joined", - "confirm", - "mfa", - "userAccessedAt", - "roles" + "type", + "memoryCost", + "timeCost", + "threads" ], "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" - ] + "type": "argon2", + "memoryCost": 65536, + "timeCost": 4, + "threads": 3 } }, - "site": { - "description": "Site", + "preferences": { + "description": "Preferences", + "type": "object", + "additionalProperties": true, + "example": { + "language": "en", + "timezone": "UTC", + "darkTheme": true + } + }, + "session": { + "description": "Session", "type": "object", "properties": { "$id": { "type": "string", - "description": "Site ID.", + "description": "Session ID.", "x-example": "5e5ea5c16897e" }, "$createdAt": { "type": "string", - "description": "Site creation date in ISO 8601 format.", + "description": "Session creation date in ISO 8601 format.", "x-example": "2020-10-15T06:38:00.000+00:00" }, "$updatedAt": { "type": "string", - "description": "Site update date in ISO 8601 format.", + "description": "Session update date in ISO 8601 format.", "x-example": "2020-10-15T06:38:00.000+00:00" }, - "name": { + "userId": { "type": "string", - "description": "Site name.", - "x-example": "My Site" - }, - "enabled": { - "type": "boolean", - "description": "Site enabled.", - "x-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.", - "x-example": false + "description": "User ID.", + "x-example": "5e5bb8c16897e" }, - "logging": { - "type": "boolean", - "description": "When disabled, request logs will exclude logs and errors, and site responses will be slightly faster.", - "x-example": false + "expire": { + "type": "string", + "description": "Session expiration date in ISO 8601 format.", + "x-example": "2020-10-15T06:38:00.000+00:00" }, - "framework": { + "provider": { "type": "string", - "description": "Site framework.", - "x-example": "react" + "description": "Session Provider.", + "x-example": "email" }, - "deploymentRetention": { - "type": "integer", - "description": "How many days to keep the non-active deployments before they will be automatically deleted.", - "x-example": 7, - "format": "int32" + "providerUid": { + "type": "string", + "description": "Session Provider User ID.", + "x-example": "user@example.com" }, - "deploymentId": { + "providerAccessToken": { "type": "string", - "description": "Site's active deployment ID.", - "x-example": "5e5ea5c16897e" + "description": "Session Provider Access Token.", + "x-example": "MTQ0NjJkZmQ5OTM2NDE1ZTZjNGZmZjI3" }, - "deploymentCreatedAt": { + "providerAccessTokenExpiry": { "type": "string", - "description": "Active deployment creation date in ISO 8601 format.", + "description": "The date of when the access token expires in ISO 8601 format.", "x-example": "2020-10-15T06:38:00.000+00:00" }, - "deploymentScreenshotLight": { + "providerRefreshToken": { "type": "string", - "description": "Screenshot of active deployment with light theme preference file ID.", - "x-example": "5e5ea5c16897e" + "description": "Session Provider Refresh Token.", + "x-example": "MTQ0NjJkZmQ5OTM2NDE1ZTZjNGZmZjI3" }, - "deploymentScreenshotDark": { + "ip": { "type": "string", - "description": "Screenshot of active deployment with dark theme preference file ID.", - "x-example": "5e5ea5c16897e" + "description": "IP in use when the session was created.", + "x-example": "127.0.0.1" }, - "latestDeploymentId": { + "osCode": { "type": "string", - "description": "Site's latest deployment ID.", - "x-example": "5e5ea5c16897e" + "description": "Operating system code name. View list of [available options](https:\/\/github.com\/appwrite\/appwrite\/blob\/master\/docs\/lists\/os.json).", + "x-example": "Mac" }, - "latestDeploymentCreatedAt": { + "osName": { "type": "string", - "description": "Latest deployment creation date in ISO 8601 format.", - "x-example": "2020-10-15T06:38:00.000+00:00" + "description": "Operating system name.", + "x-example": "Mac" }, - "latestDeploymentStatus": { + "osVersion": { "type": "string", - "description": "Status of latest deployment. Possible values are \"waiting\", \"processing\", \"building\", \"ready\", and \"failed\".", - "x-example": "ready" + "description": "Operating system version.", + "x-example": "Mac" }, - "vars": { - "type": "array", - "description": "Site variables.", - "items": { - "$ref": "#\/components\/schemas\/variable" - }, - "x-example": [] + "clientType": { + "type": "string", + "description": "Client type.", + "x-example": "browser" }, - "timeout": { - "type": "integer", - "description": "Site request timeout in seconds.", - "x-example": 300, - "format": "int32" + "clientCode": { + "type": "string", + "description": "Client code name. View list of [available options](https:\/\/github.com\/appwrite\/appwrite\/blob\/master\/docs\/lists\/clients.json).", + "x-example": "CM" }, - "installCommand": { + "clientName": { "type": "string", - "description": "The install command used to install the site dependencies.", - "x-example": "npm install" + "description": "Client name.", + "x-example": "Chrome Mobile iOS" }, - "buildCommand": { + "clientVersion": { "type": "string", - "description": "The build command used to build the site.", - "x-example": "npm run build" + "description": "Client version.", + "x-example": "84.0" }, - "startCommand": { + "clientEngine": { "type": "string", - "description": "Custom command to use when starting site runtime.", - "x-example": "node custom-server.mjs" + "description": "Client engine name.", + "x-example": "WebKit" }, - "outputDirectory": { + "clientEngineVersion": { "type": "string", - "description": "The directory where the site build output is located.", - "x-example": "build" + "description": "Client engine name.", + "x-example": "605.1.15" }, - "installationId": { + "deviceName": { "type": "string", - "description": "Site VCS (Version Control System) installation id.", - "x-example": "6m40at4ejk5h2u9s1hboo" + "description": "Device name.", + "x-example": "smartphone" }, - "providerRepositoryId": { + "deviceBrand": { "type": "string", - "description": "VCS (Version Control System) Repository ID", - "x-example": "appwrite" + "description": "Device brand name.", + "x-example": "Google" }, - "providerBranch": { + "deviceModel": { "type": "string", - "description": "VCS (Version Control System) branch name", - "x-example": "main" + "description": "Device model name.", + "x-example": "Nexus 5" }, - "providerRootDirectory": { + "countryCode": { "type": "string", - "description": "Path to site in VCS (Version Control System) repository", - "x-example": "sites\/helloWorld" + "description": "Country two-character ISO 3166-1 alpha code.", + "x-example": "US" }, - "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", - "x-example": false + "countryName": { + "type": "string", + "description": "Country name.", + "x-example": "United States" }, - "providerBranches": { - "type": "array", - "description": "List of branch name patterns that trigger automatic deployments. Supports glob wildcards. Empty list deploys on all branches.", - "items": { - "type": "string" - }, - "x-example": [ - "main", - "feat\/*" - ] + "current": { + "type": "boolean", + "description": "Returns true if this the current user session.", + "x-example": true }, - "providerPaths": { + "factors": { "type": "array", - "description": "List of file path patterns that trigger automatic deployments. Supports glob wildcards. Empty list deploys on all file changes.", + "description": "Returns a list of active session factors.", "items": { "type": "string" }, "x-example": [ - "src\/**", - "!docs\/**" + "email" ] }, - "buildSpecification": { - "type": "string", - "description": "Machine specification for deployment builds.", - "x-example": "s-1vcpu-512mb" - }, - "runtimeSpecification": { - "type": "string", - "description": "Machine specification for SSR executions.", - "x-example": "s-1vcpu-512mb" - }, - "buildRuntime": { - "type": "string", - "description": "Site build runtime.", - "x-example": "node-22" - }, - "adapter": { + "secret": { "type": "string", - "description": "Site framework adapter.", - "x-example": "static" + "description": "Secret used to authenticate the user. Only included if the request was made with an API key", + "x-example": "5e5bb8c16897e" }, - "fallbackFile": { + "mfaUpdatedAt": { "type": "string", - "description": "Name of fallback file to use instead of 404 page. If null, Appwrite 404 page will be displayed.", - "x-example": "index.html" + "description": "Most recent date in ISO 8601 format when the session successfully passed MFA challenge.", + "x-example": "2020-10-15T06:38:00.000+00:00" } }, "required": [ "$id", "$createdAt", "$updatedAt", - "name", - "enabled", - "live", - "logging", - "framework", - "deploymentRetention", - "deploymentId", - "deploymentCreatedAt", - "deploymentScreenshotLight", - "deploymentScreenshotDark", - "latestDeploymentId", - "latestDeploymentCreatedAt", - "latestDeploymentStatus", - "vars", - "timeout", - "installCommand", - "buildCommand", - "startCommand", - "outputDirectory", - "installationId", - "providerRepositoryId", - "providerBranch", - "providerRootDirectory", - "providerSilentMode", - "providerBranches", - "providerPaths", - "buildSpecification", - "runtimeSpecification", - "buildRuntime", - "adapter", - "fallbackFile" + "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", - "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", - "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\/**" + "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" ], - "buildSpecification": "s-1vcpu-512mb", - "runtimeSpecification": "s-1vcpu-512mb", - "buildRuntime": "node-22", - "adapter": "static", - "fallbackFile": "index.html" + "secret": "5e5bb8c16897e", + "mfaUpdatedAt": "2020-10-15T06:38:00.000+00:00" } }, - "templateSite": { - "description": "Template Site", + "identity": { + "description": "Identity", "type": "object", "properties": { - "key": { + "$id": { "type": "string", - "description": "Site Template ID.", - "x-example": "starter" + "description": "Identity ID.", + "x-example": "5e5ea5c16897e" }, - "name": { + "$createdAt": { "type": "string", - "description": "Site Template Name.", - "x-example": "Starter site" + "description": "Identity creation date in ISO 8601 format.", + "x-example": "2020-10-15T06:38:00.000+00:00" }, - "tagline": { + "$updatedAt": { "type": "string", - "description": "Short description of template", - "x-example": "Minimal web app integrating with Appwrite." + "description": "Identity update date in ISO 8601 format.", + "x-example": "2020-10-15T06:38:00.000+00:00" }, - "demoUrl": { + "userId": { "type": "string", - "description": "URL hosting a template demo.", - "x-example": "https:\/\/nextjs-starter.appwrite.network\/" + "description": "User ID.", + "x-example": "5e5bb8c16897e" }, - "screenshotDark": { + "provider": { "type": "string", - "description": "File URL with preview screenshot in dark theme preference.", - "x-example": "https:\/\/cloud.appwrite.io\/images\/sites\/templates\/template-for-blog-dark.png" + "description": "Identity Provider.", + "x-example": "email" }, - "screenshotLight": { + "providerUid": { "type": "string", - "description": "File URL with preview screenshot in light theme preference.", - "x-example": "https:\/\/cloud.appwrite.io\/images\/sites\/templates\/template-for-blog-light.png" - }, - "useCases": { - "type": "array", - "description": "Site use cases.", - "items": { - "type": "string" - }, - "x-example": "Starter" - }, - "frameworks": { - "type": "array", - "description": "List of frameworks that can be used with this template.", - "items": { - "$ref": "#\/components\/schemas\/templateFramework" - }, - "x-example": [] + "description": "ID of the User in the Identity Provider.", + "x-example": "5e5bb8c16897e" }, - "vcsProvider": { + "providerEmail": { "type": "string", - "description": "VCS (Version Control System) Provider.", - "x-example": "github" + "description": "Email of the User in the Identity Provider.", + "x-example": "user@example.com" }, - "providerRepositoryId": { + "providerAccessToken": { "type": "string", - "description": "VCS (Version Control System) Repository ID", - "x-example": "templates" + "description": "Identity Provider Access Token.", + "x-example": "MTQ0NjJkZmQ5OTM2NDE1ZTZjNGZmZjI3" }, - "providerOwner": { + "providerAccessTokenExpiry": { "type": "string", - "description": "VCS (Version Control System) Owner.", - "x-example": "appwrite" + "description": "The date of when the access token expires in ISO 8601 format.", + "x-example": "2020-10-15T06:38:00.000+00:00" }, - "providerVersion": { + "providerRefreshToken": { "type": "string", - "description": "VCS (Version Control System) branch version (tag).", - "x-example": "main" - }, - "variables": { - "type": "array", - "description": "Site variables.", - "items": { - "$ref": "#\/components\/schemas\/templateVariable" - }, - "x-example": [] + "description": "Identity Provider Refresh Token.", + "x-example": "MTQ0NjJkZmQ5OTM2NDE1ZTZjNGZmZjI3" } }, "required": [ - "key", - "name", - "tagline", - "demoUrl", - "screenshotDark", - "screenshotLight", - "useCases", - "frameworks", - "vcsProvider", - "providerRepositoryId", - "providerOwner", - "providerVersion", - "variables" + "$id", + "$createdAt", + "$updatedAt", + "userId", + "provider", + "providerUid", + "providerEmail", + "providerAccessToken", + "providerAccessTokenExpiry", + "providerRefreshToken" ], "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": [] + "$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" } }, - "templateFramework": { - "description": "Template Framework", + "notification": { + "description": "Notification", "type": "object", "properties": { - "key": { + "$id": { "type": "string", - "description": "Parent framework key.", - "x-example": "sveltekit" + "description": "Notification ID.", + "x-example": "5e5ea5c16897e" }, - "name": { + "$createdAt": { "type": "string", - "description": "Framework Name.", - "x-example": "SvelteKit" + "description": "Notification creation date in ISO 8601 format.", + "x-example": "2020-10-15T06:38:00.000+00:00" }, - "installCommand": { + "$updatedAt": { "type": "string", - "description": "The install command used to install the dependencies.", - "x-example": "npm install" + "description": "Notification update date in ISO 8601 format.", + "x-example": "2020-10-15T06:38:00.000+00:00" }, - "buildCommand": { + "messageId": { "type": "string", - "description": "The build command used to build the deployment.", - "x-example": "npm run build" + "description": "Stable message ID used for dedup.", + "x-example": "session.create", + "nullable": true }, - "outputDirectory": { + "type": { "type": "string", - "description": "The output directory to store the build output.", - "x-example": ".\/build" + "description": "Notification type: info, warning, error.", + "x-example": "info" }, - "providerRootDirectory": { + "channel": { "type": "string", - "description": "Path to site in VCS (Version Control System) repository", - "x-example": ".\/svelte-kit\/starter" + "description": "Channel: email, sms, push, console, webhook.", + "x-example": "email" }, - "buildRuntime": { + "resourceType": { "type": "string", - "description": "Runtime used during build step of template.", - "x-example": "node-22" + "description": "Resource type this notification is addressed to.", + "x-example": "users" }, - "adapter": { + "resourceId": { "type": "string", - "description": "Site framework runtime", - "x-example": "ssr" + "description": "Resource ID this notification is addressed to.", + "x-example": "5e5bb8c16897e" }, - "fallbackFile": { + "parentResourceType": { "type": "string", - "description": "Fallback file for SPA. Only relevant for static serve runtime.", - "x-example": "index.html" + "description": "Parent resource type for the notification.", + "x-example": "projects" + }, + "parentResourceId": { + "type": "string", + "description": "Parent resource ID for the notification.", + "x-example": "5e5bb8c16897e" + }, + "projectId": { + "type": "string", + "description": "Project the notification pertains to.", + "x-example": "5e5bb8c16897e", + "nullable": true + }, + "title": { + "type": "string", + "description": "Notification title.", + "x-example": "New sign-in detected" + }, + "body": { + "type": "string", + "description": "Notification body.", + "x-example": "A new device signed in to your account." + }, + "read": { + "type": "boolean", + "description": "Whether the notification has been read.", + "x-example": false, + "nullable": true + }, + "firstSeen": { + "type": "string", + "description": "First time the notification was viewed from a notification logo.", + "x-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.", + "x-example": "2020-10-15T06:38:00.000+00:00", + "nullable": true } }, "required": [ - "key", - "name", - "installCommand", - "buildCommand", - "outputDirectory", - "providerRootDirectory", - "buildRuntime", - "adapter", - "fallbackFile" + "$id", + "$createdAt", + "$updatedAt", + "type", + "channel", + "resourceType", + "resourceId", + "parentResourceType", + "parentResourceId", + "title", + "body" ], "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" + "$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" } }, - "function": { - "description": "Function", + "token": { + "description": "Token", "type": "object", "properties": { "$id": { "type": "string", - "description": "Function ID.", - "x-example": "5e5ea5c16897e" + "description": "Token ID.", + "x-example": "bb8ea5c16897e" }, "$createdAt": { "type": "string", - "description": "Function creation date in ISO 8601 format.", + "description": "Token creation date in ISO 8601 format.", "x-example": "2020-10-15T06:38:00.000+00:00" }, - "$updatedAt": { + "userId": { "type": "string", - "description": "Function update date in ISO 8601 format.", + "description": "User ID.", + "x-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.", + "x-example": "" + }, + "expire": { + "type": "string", + "description": "Token expiration date in ISO 8601 format.", "x-example": "2020-10-15T06:38:00.000+00:00" }, - "execute": { - "type": "array", - "description": "Execution permissions.", - "items": { - "type": "string" - }, - "x-example": "users" + "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.", + "x-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.", + "x-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.", + "x-example": "127.0.0.1" }, - "name": { + "countryCode": { "type": "string", - "description": "Function name.", - "x-example": "My Function" + "description": "Country code in [ISO 3166-1](http:\/\/en.wikipedia.org\/wiki\/ISO_3166-1) two-character format", + "x-example": "US" }, - "enabled": { - "type": "boolean", - "description": "Function enabled.", - "x-example": false + "country": { + "type": "string", + "description": "Country name. This field support localization.", + "x-example": "United States" }, - "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.", - "x-example": false + "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.", + "x-example": "NA" }, - "logging": { + "continent": { + "type": "string", + "description": "Continent name. This field support localization.", + "x-example": "North America" + }, + "eu": { "type": "boolean", - "description": "When disabled, executions will exclude logs and errors, and will be slightly faster.", + "description": "True if country is part of the European Union.", "x-example": false }, - "runtime": { + "currency": { "type": "string", - "description": "Function execution and build runtime.", - "x-example": "python-3.8" + "description": "Currency code in [ISO 4217-1](http:\/\/en.wikipedia.org\/wiki\/ISO_4217) three-character format", + "x-example": "USD" }, - "deploymentRetention": { - "type": "integer", - "description": "How many days to keep the non-active deployments before they will be automatically deleted.", - "x-example": 7, - "format": "int32" + "city": { + "type": "string", + "description": "City", + "x-example": "Kathmandu", + "nullable": true }, - "deploymentId": { + "timeZone": { + "type": "string", + "description": "Name of timezone", + "x-example": "Asia\/Kathmandu", + "nullable": true + }, + "postalCode": { + "type": "string", + "description": "Postal code", + "x-example": "44600", + "nullable": true + }, + "latitude": { + "type": "number", + "description": "Latitude", + "x-example": "82.345", + "format": "double", + "nullable": true + }, + "longitude": { + "type": "number", + "description": "Longitude", + "x-example": "82.345", + "format": "double", + "nullable": true + }, + "autonomousSystemNumber": { + "type": "string", + "description": "Autonomous System Number (ASN) of the IP", + "x-example": "15169", + "nullable": true + }, + "autonomousSystemOrganization": { + "type": "string", + "description": "Organization that owns the ASN", + "x-example": "GOOGLE", + "nullable": true + }, + "isp": { + "type": "string", + "description": "Internet service provider of the IP", + "x-example": "Google", + "nullable": true + }, + "connectionType": { + "type": "string", + "description": "Connection type of the IP (e.g. cable, cellular, corporate)", + "x-example": "cable", + "nullable": true + }, + "connectionUsageType": { + "type": "string", + "description": "User type classification of the IP (e.g. residential, business, hosting)", + "x-example": "residential", + "nullable": true + }, + "connectionOrganization": { + "type": "string", + "description": "Registered organization of the IP", + "x-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)", + "x-example": "en-us" + }, + "name": { + "type": "string", + "description": "Locale name", + "x-example": "US" + } + }, + "required": [ + "code", + "name" + ], + "example": { + "code": "en-us", + "name": "US" + } + }, + "file": { + "description": "File", + "type": "object", + "properties": { + "$id": { "type": "string", - "description": "Function's active deployment ID.", + "description": "File ID.", "x-example": "5e5ea5c16897e" }, - "deploymentCreatedAt": { - "type": "string", - "description": "Active deployment creation date in ISO 8601 format.", - "x-example": "2020-10-15T06:38:00.000+00:00" - }, - "latestDeploymentId": { + "bucketId": { "type": "string", - "description": "Function's latest deployment ID.", + "description": "Bucket ID.", "x-example": "5e5ea5c16897e" }, - "latestDeploymentCreatedAt": { + "$createdAt": { "type": "string", - "description": "Latest deployment creation date in ISO 8601 format.", + "description": "File creation date in ISO 8601 format.", "x-example": "2020-10-15T06:38:00.000+00:00" }, - "latestDeploymentStatus": { + "$updatedAt": { "type": "string", - "description": "Status of latest deployment. Possible values are \"waiting\", \"processing\", \"building\", \"ready\", and \"failed\".", - "x-example": "ready" - }, - "scopes": { - "type": "array", - "description": "Allowed permission scopes.", - "items": { - "type": "string" - }, - "x-example": "users.read" - }, - "vars": { - "type": "array", - "description": "Function variables.", - "items": { - "$ref": "#\/components\/schemas\/variable" - }, - "x-example": [] + "description": "File update date in ISO 8601 format.", + "x-example": "2020-10-15T06:38:00.000+00:00" }, - "events": { + "$permissions": { "type": "array", - "description": "Function trigger events.", + "description": "File permissions. [Learn more about permissions](https:\/\/appwrite.io\/docs\/permissions).", "items": { "type": "string" }, - "x-example": "account.create" - }, - "schedule": { - "type": "string", - "description": "Function execution schedule in CRON format.", - "x-example": "5 4 * * *" - }, - "timeout": { - "type": "integer", - "description": "Function execution timeout in seconds.", - "x-example": 300, - "format": "int32" + "x-example": [ + "read(\"any\")" + ] }, - "entrypoint": { + "name": { "type": "string", - "description": "The entrypoint file used to execute the deployment.", - "x-example": "index.js" + "description": "File name.", + "x-example": "Pink.png" }, - "commands": { + "signature": { "type": "string", - "description": "The build command used to build the deployment.", - "x-example": "npm install" + "description": "File MD5 signature.", + "x-example": "5d529fd02b544198ae075bd57c1762bb" }, - "version": { + "mimeType": { "type": "string", - "description": "Version of Open Runtimes used for the function.", - "x-example": "v2" + "description": "File mime type.", + "x-example": "image\/png" }, - "installationId": { - "type": "string", - "description": "Function VCS (Version Control System) installation id.", - "x-example": "6m40at4ejk5h2u9s1hboo" + "sizeOriginal": { + "type": "integer", + "description": "File original size in bytes.", + "x-example": 17890, + "format": "int32" }, - "providerRepositoryId": { - "type": "string", - "description": "VCS (Version Control System) Repository ID", - "x-example": "appwrite" + "sizeActual": { + "type": "integer", + "description": "File actual stored size in bytes after compression and\/or encryption.", + "x-example": 12345, + "format": "int32" }, - "providerBranch": { - "type": "string", - "description": "VCS (Version Control System) branch name", - "x-example": "main" + "chunksTotal": { + "type": "integer", + "description": "Total number of chunks available", + "x-example": 17890, + "format": "int32" }, - "providerRootDirectory": { - "type": "string", - "description": "Path to function in VCS (Version Control System) repository", - "x-example": "functions\/helloWorld" + "chunksUploaded": { + "type": "integer", + "description": "Total number of chunks uploaded", + "x-example": 17890, + "format": "int32" }, - "providerSilentMode": { + "encryption": { "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", - "x-example": false - }, - "providerBranches": { - "type": "array", - "description": "List of branch name patterns that trigger automatic deployments. Supports glob wildcards. Empty list deploys on all branches.", - "items": { - "type": "string" - }, - "x-example": [ - "main", - "feat\/*" - ] - }, - "providerPaths": { - "type": "array", - "description": "List of file path patterns that trigger automatic deployments. Supports glob wildcards. Empty list deploys on all file changes.", - "items": { - "type": "string" - }, - "x-example": [ - "src\/**", - "!docs\/**" - ] - }, - "buildSpecification": { - "type": "string", - "description": "Machine specification for deployment builds.", - "x-example": "s-1vcpu-512mb" + "description": "Whether file contents are encrypted at rest.", + "x-example": true }, - "runtimeSpecification": { + "compression": { "type": "string", - "description": "Machine specification for executions.", - "x-example": "s-1vcpu-512mb" + "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).", + "x-example": "gzip" } }, "required": [ "$id", + "bucketId", "$createdAt", "$updatedAt", - "execute", + "$permissions", "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" + "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", - "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\/**" + "$permissions": [ + "read(\"any\")" ], - "buildSpecification": "s-1vcpu-512mb", - "runtimeSpecification": "s-1vcpu-512mb" + "name": "Pink.png", + "signature": "5d529fd02b544198ae075bd57c1762bb", + "mimeType": "image\/png", + "sizeOriginal": 17890, + "sizeActual": 12345, + "chunksTotal": 17890, + "chunksUploaded": 17890, + "encryption": true, + "compression": "gzip" } }, - "templateFunction": { - "description": "Template Function", + "bucket": { + "description": "Bucket", "type": "object", "properties": { - "icon": { - "type": "string", - "description": "Function Template Icon.", - "x-example": "icon-lightning-bolt" - }, - "id": { + "$id": { "type": "string", - "description": "Function Template ID.", - "x-example": "starter" + "description": "Bucket ID.", + "x-example": "5e5ea5c16897e" }, - "name": { + "$createdAt": { "type": "string", - "description": "Function Template Name.", - "x-example": "Starter function" + "description": "Bucket creation time in ISO 8601 format.", + "x-example": "2020-10-15T06:38:00.000+00:00" }, - "tagline": { + "$updatedAt": { "type": "string", - "description": "Function Template Tagline.", - "x-example": "A simple function to get started." + "description": "Bucket update date in ISO 8601 format.", + "x-example": "2020-10-15T06:38:00.000+00:00" }, - "permissions": { + "$permissions": { "type": "array", - "description": "Execution permissions.", + "description": "Bucket permissions. [Learn more about permissions](https:\/\/appwrite.io\/docs\/permissions).", "items": { "type": "string" }, - "x-example": "any" + "x-example": [ + "read(\"any\")" + ] }, - "events": { - "type": "array", - "description": "Function trigger events.", - "items": { - "type": "string" - }, - "x-example": "account.create" + "fileSecurity": { + "type": "boolean", + "description": "Whether file-level security is enabled. [Learn more about permissions](https:\/\/appwrite.io\/docs\/permissions).", + "x-example": true }, - "cron": { + "name": { "type": "string", - "description": "Function execution schedult in CRON format.", - "x-example": "0 0 * * *" + "description": "Bucket name.", + "x-example": "Documents" }, - "timeout": { + "enabled": { + "type": "boolean", + "description": "Bucket enabled.", + "x-example": false + }, + "maximumFileSize": { "type": "integer", - "description": "Function execution timeout in seconds.", - "x-example": 300, + "description": "Maximum file size supported.", + "x-example": 100, "format": "int32" }, - "useCases": { + "allowedFileExtensions": { "type": "array", - "description": "Function use cases.", + "description": "Allowed file extensions.", "items": { "type": "string" }, - "x-example": "Starter" - }, - "runtimes": { - "type": "array", - "description": "List of runtimes that can be used with this template.", - "items": { - "$ref": "#\/components\/schemas\/templateRuntime" - }, - "x-example": [] - }, - "instructions": { - "type": "string", - "description": "Function Template Instructions.", - "x-example": "For documentation and instructions check out <link>." - }, - "vcsProvider": { - "type": "string", - "description": "VCS (Version Control System) Provider.", - "x-example": "github" - }, - "providerRepositoryId": { - "type": "string", - "description": "VCS (Version Control System) Repository ID", - "x-example": "templates" - }, - "providerOwner": { - "type": "string", - "description": "VCS (Version Control System) Owner.", - "x-example": "appwrite" + "x-example": [ + "jpg", + "png" + ] }, - "providerVersion": { + "compression": { "type": "string", - "description": "VCS (Version Control System) branch version (tag).", - "x-example": "main" - }, - "variables": { - "type": "array", - "description": "Function variables.", - "items": { - "$ref": "#\/components\/schemas\/templateVariable" - }, - "x-example": [] + "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).", + "x-example": "gzip" }, - "scopes": { - "type": "array", - "description": "Function scopes.", - "items": { - "type": "string" - }, - "x-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.", - "x-example": "node-19.0" + "encryption": { + "type": "boolean", + "description": "Bucket is encrypted.", + "x-example": false }, - "commands": { - "type": "string", - "description": "The build command used to build the deployment.", - "x-example": "npm install" + "antivirus": { + "type": "boolean", + "description": "Virus scanning is enabled.", + "x-example": false }, - "entrypoint": { - "type": "string", - "description": "The entrypoint file used to execute the deployment.", - "x-example": "index.js" + "transformations": { + "type": "boolean", + "description": "Image transformations are enabled.", + "x-example": false }, - "providerRootDirectory": { - "type": "string", - "description": "Path to function in VCS (Version Control System) repository", - "x-example": "node\/starter" + "totalSize": { + "type": "integer", + "description": "Total size of this bucket in bytes.", + "x-example": 128, + "format": "int32" } }, "required": [ + "$id", + "$createdAt", + "$updatedAt", + "$permissions", + "fileSecurity", "name", - "commands", - "entrypoint", - "providerRootDirectory" + "enabled", + "maximumFileSize", + "allowedFileExtensions", + "compression", + "encryption", + "antivirus", + "transformations", + "totalSize" ], "example": { - "name": "node-19.0", - "commands": "npm install", - "entrypoint": "index.js", - "providerRootDirectory": "node\/starter" + "$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 } }, - "templateVariable": { - "description": "Template Variable", + "resourceToken": { + "description": "ResourceToken", "type": "object", "properties": { - "name": { + "$id": { "type": "string", - "description": "Variable Name.", - "x-example": "APPWRITE_DATABASE_ID" + "description": "Token ID.", + "x-example": "bb8ea5c16897e" }, - "description": { + "$createdAt": { "type": "string", - "description": "Variable Description.", - "x-example": "The ID of the Appwrite database that contains the collection to sync." + "description": "Token creation date in ISO 8601 format.", + "x-example": "2020-10-15T06:38:00.000+00:00" }, - "value": { + "resourceId": { "type": "string", - "description": "Variable Value.", - "x-example": "512" + "description": "Resource ID.", + "x-example": "5e5ea5c168bb8:5e5ea5c168bb8" }, - "secret": { - "type": "boolean", - "description": "Variable secret flag. Secret variables can only be updated or deleted, but never read.", - "x-example": false + "resourceType": { + "type": "string", + "description": "Resource type.", + "x-example": "files" }, - "placeholder": { + "expire": { "type": "string", - "description": "Variable Placeholder.", - "x-example": "64a55...7b912" + "description": "Token expiration date in ISO 8601 format.", + "x-example": "2020-10-15T06:38:00.000+00:00" }, - "required": { - "type": "boolean", - "description": "Is the variable required?", - "x-example": false + "secret": { + "type": "string", + "description": "JWT encoded string.", + "x-example": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c" }, - "type": { + "accessedAt": { "type": "string", - "description": "Variable Type.", - "x-example": "password" + "description": "Most recent access date in ISO 8601 format. This attribute is only updated again after 24 hours.", + "x-example": "2020-10-15T06:38:00.000+00:00" } }, "required": [ - "name", - "description", - "value", + "$id", + "$createdAt", + "resourceId", + "resourceType", + "expire", "secret", - "placeholder", - "required", - "type" + "accessedAt" ], "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" + "$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" } }, - "installation": { - "description": "Installation", + "team": { + "description": "Team", "type": "object", "properties": { "$id": { "type": "string", - "description": "Function ID.", + "description": "Team ID.", "x-example": "5e5ea5c16897e" }, "$createdAt": { "type": "string", - "description": "Function creation date in ISO 8601 format.", + "description": "Team creation date in ISO 8601 format.", "x-example": "2020-10-15T06:38:00.000+00:00" }, "$updatedAt": { "type": "string", - "description": "Function update date in ISO 8601 format.", + "description": "Team update date in ISO 8601 format.", "x-example": "2020-10-15T06:38:00.000+00:00" }, - "provider": { + "name": { "type": "string", - "description": "VCS (Version Control System) provider name.", - "x-example": "github" + "description": "Team name.", + "x-example": "VIP" }, - "organization": { - "type": "string", - "description": "VCS (Version Control System) organization name.", - "x-example": "appwrite" + "total": { + "type": "integer", + "description": "Total number of team members.", + "x-example": 7, + "format": "int32" }, - "providerInstallationId": { - "type": "string", - "description": "VCS (Version Control System) installation ID.", - "x-example": "5322" + "prefs": { + "type": "object", + "description": "Team preferences as a key-value object", + "x-example": { + "theme": "pink", + "timezone": "UTC" + }, + "allOf": [ + { + "$ref": "#\/components\/schemas\/preferences" + } + ] } }, "required": [ "$id", "$createdAt", "$updatedAt", - "provider", - "organization", - "providerInstallationId" + "name", + "total", + "prefs" ], "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" + "name": "VIP", + "total": 7, + "prefs": { + "theme": "pink", + "timezone": "UTC" + } } }, - "providerRepository": { - "description": "ProviderRepository", + "membership": { + "description": "Membership", "type": "object", "properties": { - "id": { + "$id": { "type": "string", - "description": "VCS (Version Control System) repository ID.", + "description": "Membership ID.", "x-example": "5e5ea5c16897e" }, - "name": { + "$createdAt": { "type": "string", - "description": "VCS (Version Control System) repository name.", - "x-example": "appwrite" + "description": "Membership creation date in ISO 8601 format.", + "x-example": "2020-10-15T06:38:00.000+00:00" }, - "organization": { + "$updatedAt": { "type": "string", - "description": "VCS (Version Control System) organization name", - "x-example": "appwrite" + "description": "Membership update date in ISO 8601 format.", + "x-example": "2020-10-15T06:38:00.000+00:00" }, - "provider": { + "userId": { "type": "string", - "description": "VCS (Version Control System) provider name.", - "x-example": "github" + "description": "User ID.", + "x-example": "5e5ea5c16897e" }, - "private": { - "type": "boolean", - "description": "Is VCS (Version Control System) repository private?", - "x-example": true + "userName": { + "type": "string", + "description": "User name. Hide this attribute by toggling membership privacy in the Console.", + "x-example": "John Doe" }, - "defaultBranch": { + "userEmail": { "type": "string", - "description": "VCS (Version Control System) repository's default branch name.", - "x-example": "main" + "description": "User email address. Hide this attribute by toggling membership privacy in the Console.", + "x-example": "john@appwrite.io" }, - "providerInstallationId": { + "userPhone": { "type": "string", - "description": "VCS (Version Control System) installation ID.", - "x-example": "108104697" + "description": "User phone number. Hide this attribute by toggling membership privacy in the Console.", + "x-example": "+1 555 555 5555" }, - "authorized": { + "teamId": { + "type": "string", + "description": "Team ID.", + "x-example": "5e5ea5c16897e" + }, + "teamName": { + "type": "string", + "description": "Team name.", + "x-example": "VIP" + }, + "invited": { + "type": "string", + "description": "Date, the user has been invited to join the team in ISO 8601 format.", + "x-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.", + "x-example": "2020-10-15T06:38:00.000+00:00" + }, + "confirm": { "type": "boolean", - "description": "Is VCS (Version Control System) repository authorized for the installation?", - "x-example": true + "description": "User confirmation status, true if the user has joined the team or false otherwise.", + "x-example": false }, - "pushedAt": { + "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.", + "x-example": false + }, + "userAccessedAt": { "type": "string", - "description": "Last commit date in ISO 8601 format.", - "x-example": "datetime" + "description": "Most recent access date in ISO 8601 format. Show this attribute by toggling membership privacy in the Console.", + "x-example": "2020-10-15T06:38:00.000+00:00" }, - "variables": { + "roles": { "type": "array", - "description": "Environment variables found in .env files", + "description": "User list of roles", "items": { "type": "string" }, "x-example": [ - "PORT", - "NODE_ENV" + "owner" ] } }, "required": [ - "id", - "name", - "organization", - "provider", - "private", - "defaultBranch", - "providerInstallationId", - "authorized", - "pushedAt", - "variables" + "$id", + "$createdAt", + "$updatedAt", + "userId", + "userName", + "userEmail", + "userPhone", + "teamId", + "teamName", + "invited", + "joined", + "confirm", + "mfa", + "userAccessedAt", + "roles" ], "example": { - "id": "5e5ea5c16897e", - "name": "appwrite", - "organization": "appwrite", - "provider": "github", - "private": true, - "defaultBranch": "main", - "providerInstallationId": "108104697", - "authorized": true, - "pushedAt": "datetime", - "variables": [ - "PORT", - "NODE_ENV" + "$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" ] } }, - "providerRepositoryFramework": { - "description": "ProviderRepositoryFramework", + "site": { + "description": "Site", "type": "object", "properties": { - "id": { + "$id": { "type": "string", - "description": "VCS (Version Control System) repository ID.", + "description": "Site ID.", "x-example": "5e5ea5c16897e" }, - "name": { + "$createdAt": { "type": "string", - "description": "VCS (Version Control System) repository name.", - "x-example": "appwrite" + "description": "Site creation date in ISO 8601 format.", + "x-example": "2020-10-15T06:38:00.000+00:00" }, - "organization": { + "$updatedAt": { "type": "string", - "description": "VCS (Version Control System) organization name", - "x-example": "appwrite" + "description": "Site update date in ISO 8601 format.", + "x-example": "2020-10-15T06:38:00.000+00:00" }, - "provider": { + "name": { "type": "string", - "description": "VCS (Version Control System) provider name.", - "x-example": "github" + "description": "Site name.", + "x-example": "My Site" }, - "private": { + "enabled": { "type": "boolean", - "description": "Is VCS (Version Control System) repository private?", - "x-example": true + "description": "Site enabled.", + "x-example": false }, - "defaultBranch": { + "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.", + "x-example": false + }, + "logging": { + "type": "boolean", + "description": "When disabled, request logs will exclude logs and errors, and site responses will be slightly faster.", + "x-example": false + }, + "framework": { "type": "string", - "description": "VCS (Version Control System) repository's default branch name.", - "x-example": "main" + "description": "Site framework.", + "x-example": "react" }, - "providerInstallationId": { + "deploymentRetention": { + "type": "integer", + "description": "How many days to keep the non-active deployments before they will be automatically deleted.", + "x-example": 7, + "format": "int32" + }, + "deploymentId": { "type": "string", - "description": "VCS (Version Control System) installation ID.", - "x-example": "108104697" + "description": "Site's active deployment ID.", + "x-example": "5e5ea5c16897e" }, - "authorized": { - "type": "boolean", - "description": "Is VCS (Version Control System) repository authorized for the installation?", - "x-example": true + "deploymentCreatedAt": { + "type": "string", + "description": "Active deployment creation date in ISO 8601 format.", + "x-example": "2020-10-15T06:38:00.000+00:00" }, - "pushedAt": { + "deploymentScreenshotLight": { "type": "string", - "description": "Last commit date in ISO 8601 format.", - "x-example": "datetime" + "description": "Screenshot of active deployment with light theme preference file ID.", + "x-example": "5e5ea5c16897e" }, - "variables": { + "deploymentScreenshotDark": { + "type": "string", + "description": "Screenshot of active deployment with dark theme preference file ID.", + "x-example": "5e5ea5c16897e" + }, + "latestDeploymentId": { + "type": "string", + "description": "Site's latest deployment ID.", + "x-example": "5e5ea5c16897e" + }, + "latestDeploymentCreatedAt": { + "type": "string", + "description": "Latest deployment creation date in ISO 8601 format.", + "x-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\".", + "x-example": "ready" + }, + "vars": { "type": "array", - "description": "Environment variables found in .env files", + "description": "Site variables.", "items": { - "type": "string" + "$ref": "#\/components\/schemas\/variable" }, - "x-example": [ - "PORT", - "NODE_ENV" - ] + "x-example": [] }, - "framework": { + "timeout": { + "type": "integer", + "description": "Site request timeout in seconds.", + "x-example": 300, + "format": "int32" + }, + "installCommand": { "type": "string", - "description": "Auto-detected framework. Empty if type is not \"framework\".", - "x-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": { + "description": "The install command used to install the site dependencies.", + "x-example": "npm install" + }, + "buildCommand": { "type": "string", - "description": "VCS (Version Control System) repository ID.", - "x-example": "5e5ea5c16897e" + "description": "The build command used to build the site.", + "x-example": "npm run build" }, - "name": { + "startCommand": { "type": "string", - "description": "VCS (Version Control System) repository name.", - "x-example": "appwrite" + "description": "Custom command to use when starting site runtime.", + "x-example": "node custom-server.mjs" }, - "organization": { + "outputDirectory": { "type": "string", - "description": "VCS (Version Control System) organization name", - "x-example": "appwrite" + "description": "The directory where the site build output is located.", + "x-example": "build" }, - "provider": { + "installationId": { "type": "string", - "description": "VCS (Version Control System) provider name.", - "x-example": "github" + "description": "Site VCS (Version Control System) installation id.", + "x-example": "6m40at4ejk5h2u9s1hboo" }, - "private": { - "type": "boolean", - "description": "Is VCS (Version Control System) repository private?", - "x-example": true + "providerRepositoryId": { + "type": "string", + "description": "VCS (Version Control System) Repository ID", + "x-example": "appwrite" }, - "defaultBranch": { + "providerBranch": { "type": "string", - "description": "VCS (Version Control System) repository's default branch name.", + "description": "VCS (Version Control System) branch name", "x-example": "main" }, - "providerInstallationId": { + "providerRootDirectory": { "type": "string", - "description": "VCS (Version Control System) installation ID.", - "x-example": "108104697" + "description": "Path to site in VCS (Version Control System) repository", + "x-example": "sites\/helloWorld" }, - "authorized": { + "providerSilentMode": { "type": "boolean", - "description": "Is VCS (Version Control System) repository authorized for the installation?", - "x-example": true - }, - "pushedAt": { - "type": "string", - "description": "Last commit date in ISO 8601 format.", - "x-example": "datetime" + "description": "Is VCS (Version Control System) connection is in silent mode? When in silence mode, no comments will be posted on the repository pull or merge requests", + "x-example": false }, - "variables": { + "providerBranches": { "type": "array", - "description": "Environment variables found in .env files", + "description": "List of branch name patterns that trigger automatic deployments. Supports glob wildcards. Empty list deploys on all branches.", "items": { - "type": "string" - }, - "x-example": [ - "PORT", - "NODE_ENV" - ] - }, - "runtime": { - "type": "string", - "description": "Auto-detected runtime. Empty if type is not \"runtime\".", - "x-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": { - "type": "string", - "description": "Repository detection type.", - "x-example": "framework", - "enum": [ - "framework" + "type": "string" + }, + "x-example": [ + "main", + "feat\/*" ] }, - "variables": { + "providerPaths": { "type": "array", - "description": "Environment variables found in .env files", + "description": "List of file path patterns that trigger automatic deployments. Supports glob wildcards. Empty list deploys on all file changes.", "items": { - "$ref": "#\/components\/schemas\/detectionVariable" + "type": "string" }, - "x-example": {}, - "nullable": true + "x-example": [ + "src\/**", + "!docs\/**" + ] }, - "framework": { + "buildSpecification": { "type": "string", - "description": "Framework", - "x-example": "nuxt" + "description": "Machine specification for deployment builds.", + "x-example": "s-1vcpu-512mb" }, - "installCommand": { + "runtimeSpecification": { "type": "string", - "description": "Site Install Command", - "x-example": "npm install" + "description": "Machine specification for SSR executions.", + "x-example": "s-1vcpu-512mb" }, - "buildCommand": { + "buildRuntime": { "type": "string", - "description": "Site Build Command", - "x-example": "npm run build" + "description": "Site build runtime.", + "x-example": "node-22" }, - "outputDirectory": { + "adapter": { "type": "string", - "description": "Site Output Directory", - "x-example": "dist" + "description": "Site framework adapter.", + "x-example": "static" + }, + "fallbackFile": { + "type": "string", + "description": "Name of fallback file to use instead of 404 page. If null, Appwrite 404 page will be displayed.", + "x-example": "index.html" } }, "required": [ - "type", + "$id", + "$createdAt", + "$updatedAt", + "name", + "enabled", + "live", + "logging", "framework", + "deploymentRetention", + "deploymentId", + "deploymentCreatedAt", + "deploymentScreenshotLight", + "deploymentScreenshotDark", + "latestDeploymentId", + "latestDeploymentCreatedAt", + "latestDeploymentStatus", + "vars", + "timeout", "installCommand", "buildCommand", - "outputDirectory" + "startCommand", + "outputDirectory", + "installationId", + "providerRepositoryId", + "providerBranch", + "providerRootDirectory", + "providerSilentMode", + "providerBranches", + "providerPaths", + "buildSpecification", + "runtimeSpecification", + "buildRuntime", + "adapter", + "fallbackFile" ], "example": { - "type": "framework", - "variables": {}, - "framework": "nuxt", + "$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", + "vars": [], + "timeout": 300, "installCommand": "npm install", "buildCommand": "npm run build", - "outputDirectory": "dist" + "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" } }, - "detectionRuntime": { - "description": "DetectionRuntime", + "templateSite": { + "description": "Template Site", "type": "object", "properties": { - "type": { + "key": { "type": "string", - "description": "Repository detection type.", - "x-example": "runtime", - "enum": [ - "runtime" - ] - }, - "variables": { - "type": "array", - "description": "Environment variables found in .env files", - "items": { - "$ref": "#\/components\/schemas\/detectionVariable" - }, - "x-example": {}, - "nullable": true + "description": "Site Template ID.", + "x-example": "starter" }, - "runtime": { + "name": { "type": "string", - "description": "Runtime", - "x-example": "node" + "description": "Site Template Name.", + "x-example": "Starter site" }, - "entrypoint": { + "tagline": { "type": "string", - "description": "Function Entrypoint", - "x-example": "index.js" + "description": "Short description of template", + "x-example": "Minimal web app integrating with Appwrite." }, - "commands": { - "type": "string", - "description": "Function install and build commands", - "x-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": { + "demoUrl": { "type": "string", - "description": "Name of environment variable", - "x-example": "NODE_ENV" + "description": "URL hosting a template demo.", + "x-example": "https:\/\/nextjs-starter.appwrite.network\/" }, - "value": { + "screenshotDark": { "type": "string", - "description": "Value of environment variable", - "x-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.", - "x-example": 1523, - "format": "int32", - "nullable": true - }, - "isDirectory": { - "type": "boolean", - "description": "If a content is a directory. Directories can be used to check nested contents.", - "x-example": true, - "nullable": true + "description": "File URL with preview screenshot in dark theme preference.", + "x-example": "https:\/\/cloud.appwrite.io\/images\/sites\/templates\/template-for-blog-dark.png" }, - "name": { - "type": "string", - "description": "Name of directory or file.", - "x-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.", - "x-example": "main" - } - }, - "required": [ - "name" - ], - "example": { - "name": "main" - } - }, - "runtime": { - "description": "Runtime", - "type": "object", - "properties": { - "$id": { + "screenshotLight": { "type": "string", - "description": "Runtime ID.", - "x-example": "python-3.8" + "description": "File URL with preview screenshot in light theme preference.", + "x-example": "https:\/\/cloud.appwrite.io\/images\/sites\/templates\/template-for-blog-light.png" }, - "key": { - "type": "string", - "description": "Parent runtime key.", - "x-example": "python" + "useCases": { + "type": "array", + "description": "Site use cases.", + "items": { + "type": "string" + }, + "x-example": "Starter" }, - "name": { - "type": "string", - "description": "Runtime Name.", - "x-example": "Python" + "frameworks": { + "type": "array", + "description": "List of frameworks that can be used with this template.", + "items": { + "$ref": "#\/components\/schemas\/templateFramework" + }, + "x-example": [] }, - "version": { + "vcsProvider": { "type": "string", - "description": "Runtime version.", - "x-example": "3.8" + "description": "VCS (Version Control System) Provider.", + "x-example": "github" }, - "base": { + "providerRepositoryId": { "type": "string", - "description": "Base Docker image used to build the runtime.", - "x-example": "python:3.8-alpine" + "description": "VCS (Version Control System) Repository ID", + "x-example": "templates" }, - "image": { + "providerOwner": { "type": "string", - "description": "Image name of Docker Hub.", - "x-example": "appwrite\\\/runtime-for-python:3.8" + "description": "VCS (Version Control System) Owner.", + "x-example": "appwrite" }, - "logo": { + "providerVersion": { "type": "string", - "description": "Name of the logo image.", - "x-example": "python.png" + "description": "VCS (Version Control System) branch version (tag).", + "x-example": "main" }, - "supports": { + "variables": { "type": "array", - "description": "List of supported architectures.", + "description": "Site variables.", "items": { - "type": "string" + "$ref": "#\/components\/schemas\/templateVariable" }, - "x-example": "amd64" + "x-example": [] } }, "required": [ - "$id", "key", "name", - "version", - "base", - "image", - "logo", - "supports" + "tagline", + "demoUrl", + "screenshotDark", + "screenshotLight", + "useCases", + "frameworks", + "vcsProvider", + "providerRepositoryId", + "providerOwner", + "providerVersion", + "variables" ], "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" + "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": [] } }, - "framework": { - "description": "Framework", + "templateFramework": { + "description": "Template Framework", "type": "object", "properties": { "key": { "type": "string", - "description": "Framework key.", + "description": "Parent framework key.", "x-example": "sveltekit" }, "name": { @@ -101554,2048 +100715,2534 @@ "description": "Framework Name.", "x-example": "SvelteKit" }, - "buildRuntime": { - "type": "string", - "description": "Default runtime version.", - "x-example": "node-22" - }, - "runtimes": { - "type": "array", - "description": "List of supported runtime versions.", - "items": { - "type": "string" - }, - "x-example": [ - "static-1", - "node-22" - ] - }, - "adapters": { - "type": "array", - "description": "List of supported adapters.", - "items": { - "$ref": "#\/components\/schemas\/frameworkAdapter" - }, - "x-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.", - "x-example": "static" - }, "installCommand": { "type": "string", - "description": "Default command to download dependencies.", + "description": "The install command used to install the dependencies.", "x-example": "npm install" }, "buildCommand": { "type": "string", - "description": "Default command to build site into output directory.", + "description": "The build command used to build the deployment.", "x-example": "npm run build" }, "outputDirectory": { "type": "string", - "description": "Default output directory of build.", - "x-example": ".\/dist" + "description": "The output directory to store the build output.", + "x-example": ".\/build" + }, + "providerRootDirectory": { + "type": "string", + "description": "Path to site in VCS (Version Control System) repository", + "x-example": ".\/svelte-kit\/starter" + }, + "buildRuntime": { + "type": "string", + "description": "Runtime used during build step of template.", + "x-example": "node-22" + }, + "adapter": { + "type": "string", + "description": "Site framework runtime", + "x-example": "ssr" }, "fallbackFile": { "type": "string", - "description": "Name of fallback file to use instead of 404 page. If null, Appwrite 404 page will be displayed.", + "description": "Fallback file for SPA. Only relevant for static serve runtime.", "x-example": "index.html" } }, "required": [ "key", + "name", "installCommand", "buildCommand", "outputDirectory", + "providerRootDirectory", + "buildRuntime", + "adapter", "fallbackFile" ], "example": { - "key": "static", + "key": "sveltekit", + "name": "SvelteKit", "installCommand": "npm install", "buildCommand": "npm run build", - "outputDirectory": ".\/dist", + "outputDirectory": ".\/build", + "providerRootDirectory": ".\/svelte-kit\/starter", + "buildRuntime": "node-22", + "adapter": "ssr", "fallbackFile": "index.html" } }, - "deployment": { - "description": "Deployment", + "function": { + "description": "Function", "type": "object", "properties": { "$id": { "type": "string", - "description": "Deployment ID.", + "description": "Function ID.", "x-example": "5e5ea5c16897e" }, "$createdAt": { "type": "string", - "description": "Deployment creation date in ISO 8601 format.", + "description": "Function creation date in ISO 8601 format.", "x-example": "2020-10-15T06:38:00.000+00:00" }, "$updatedAt": { "type": "string", - "description": "Deployment update date in ISO 8601 format.", + "description": "Function update date in ISO 8601 format.", "x-example": "2020-10-15T06:38:00.000+00:00" }, - "type": { - "type": "string", - "description": "Type of deployment.", - "x-example": "vcs" - }, - "resourceId": { - "type": "string", - "description": "Resource ID.", - "x-example": "5e5ea6g16897e" + "execute": { + "type": "array", + "description": "Execution permissions.", + "items": { + "type": "string" + }, + "x-example": "users" }, - "resourceType": { + "name": { "type": "string", - "description": "Resource type.", - "x-example": "functions" + "description": "Function name.", + "x-example": "My Function" }, - "entrypoint": { - "type": "string", - "description": "The entrypoint file to use to execute the deployment code.", - "x-example": "index.js" + "enabled": { + "type": "boolean", + "description": "Function enabled.", + "x-example": false }, - "sourceSize": { - "type": "integer", - "description": "The code size in bytes.", - "x-example": 128, - "format": "int32" + "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.", + "x-example": false }, - "buildSize": { - "type": "integer", - "description": "The build output size in bytes.", - "x-example": 128, - "format": "int32" + "logging": { + "type": "boolean", + "description": "When disabled, executions will exclude logs and errors, and will be slightly faster.", + "x-example": false }, - "totalSize": { + "runtime": { + "type": "string", + "description": "Function execution and build runtime.", + "x-example": "python-3.8" + }, + "deploymentRetention": { "type": "integer", - "description": "The total size in bytes (source and build output).", - "x-example": 128, + "description": "How many days to keep the non-active deployments before they will be automatically deleted.", + "x-example": 7, "format": "int32" }, - "buildId": { + "deploymentId": { "type": "string", - "description": "The current build ID.", + "description": "Function's active deployment ID.", "x-example": "5e5ea5c16897e" }, - "activate": { - "type": "boolean", - "description": "Whether the deployment should be automatically activated.", - "x-example": true + "deploymentCreatedAt": { + "type": "string", + "description": "Active deployment creation date in ISO 8601 format.", + "x-example": "2020-10-15T06:38:00.000+00:00" }, - "screenshotLight": { + "latestDeploymentId": { "type": "string", - "description": "Screenshot with light theme preference file ID.", + "description": "Function's latest deployment ID.", "x-example": "5e5ea5c16897e" }, - "screenshotDark": { + "latestDeploymentCreatedAt": { "type": "string", - "description": "Screenshot with dark theme preference file ID.", - "x-example": "5e5ea5c16897e" + "description": "Latest deployment creation date in ISO 8601 format.", + "x-example": "2020-10-15T06:38:00.000+00:00" }, - "status": { + "latestDeploymentStatus": { "type": "string", - "description": "The deployment status. Possible values are \"waiting\", \"processing\", \"building\", \"ready\", \"canceled\" and \"failed\".", - "x-example": "ready", - "enum": [ - "waiting", - "processing", - "building", - "ready", - "canceled", - "failed" - ] + "description": "Status of latest deployment. Possible values are \"waiting\", \"processing\", \"building\", \"ready\", and \"failed\".", + "x-example": "ready" }, - "buildLogs": { + "scopes": { + "type": "array", + "description": "Allowed permission scopes.", + "items": { + "type": "string" + }, + "x-example": "users.read" + }, + "vars": { + "type": "array", + "description": "Function variables.", + "items": { + "$ref": "#\/components\/schemas\/variable" + }, + "x-example": [] + }, + "events": { + "type": "array", + "description": "Function trigger events.", + "items": { + "type": "string" + }, + "x-example": "account.create" + }, + "schedule": { "type": "string", - "description": "The build logs.", - "x-example": "Compiling source files..." + "description": "Function execution schedule in CRON format.", + "x-example": "5 4 * * *" }, - "buildDuration": { + "timeout": { "type": "integer", - "description": "The current build time in seconds.", - "x-example": 128, + "description": "Function execution timeout in seconds.", + "x-example": 300, "format": "int32" }, - "providerRepositoryName": { + "entrypoint": { "type": "string", - "description": "The name of the vcs provider repository", - "x-example": "database" + "description": "The entrypoint file used to execute the deployment.", + "x-example": "index.js" }, - "providerRepositoryOwner": { + "commands": { "type": "string", - "description": "The name of the vcs provider repository owner", - "x-example": "utopia" + "description": "The build command used to build the deployment.", + "x-example": "npm install" }, - "providerRepositoryUrl": { + "version": { "type": "string", - "description": "The url of the vcs provider repository", - "x-example": "https:\/\/github.com\/vermakhushboo\/g4-node-function" + "description": "Version of Open Runtimes used for the function.", + "x-example": "v2" }, - "providerCommitHash": { + "installationId": { "type": "string", - "description": "The commit hash of the vcs commit", - "x-example": "7c3f25d" + "description": "Function VCS (Version Control System) installation id.", + "x-example": "6m40at4ejk5h2u9s1hboo" }, - "providerCommitAuthorUrl": { + "providerRepositoryId": { "type": "string", - "description": "The url of vcs commit author", - "x-example": "https:\/\/github.com\/vermakhushboo" + "description": "VCS (Version Control System) Repository ID", + "x-example": "appwrite" }, - "providerCommitAuthor": { + "providerBranch": { "type": "string", - "description": "The name of vcs commit author", - "x-example": "Khushboo Verma" + "description": "VCS (Version Control System) branch name", + "x-example": "main" }, - "providerCommitMessage": { + "providerRootDirectory": { "type": "string", - "description": "The commit message", - "x-example": "Update index.js" + "description": "Path to function in VCS (Version Control System) repository", + "x-example": "functions\/helloWorld" }, - "providerCommitUrl": { - "type": "string", - "description": "The url of the vcs commit", - "x-example": "https:\/\/github.com\/vermakhushboo\/g4-node-function\/commit\/60c0416257a9cbcdd96b2d370c38d8f8d150ccfb" + "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", + "x-example": false }, - "providerBranch": { + "providerBranches": { + "type": "array", + "description": "List of branch name patterns that trigger automatic deployments. Supports glob wildcards. Empty list deploys on all branches.", + "items": { + "type": "string" + }, + "x-example": [ + "main", + "feat\/*" + ] + }, + "providerPaths": { + "type": "array", + "description": "List of file path patterns that trigger automatic deployments. Supports glob wildcards. Empty list deploys on all file changes.", + "items": { + "type": "string" + }, + "x-example": [ + "src\/**", + "!docs\/**" + ] + }, + "buildSpecification": { "type": "string", - "description": "The branch of the vcs repository", - "x-example": "0.7.x" + "description": "Machine specification for deployment builds.", + "x-example": "s-1vcpu-512mb" }, - "providerBranchUrl": { + "runtimeSpecification": { "type": "string", - "description": "The branch of the vcs repository", - "x-example": "https:\/\/github.com\/vermakhushboo\/appwrite\/tree\/0.7.x" + "description": "Machine specification for executions.", + "x-example": "s-1vcpu-512mb" } }, "required": [ "$id", "$createdAt", "$updatedAt", - "type", - "resourceId", - "resourceType", + "execute", + "name", + "enabled", + "live", + "logging", + "runtime", + "deploymentRetention", + "deploymentId", + "deploymentCreatedAt", + "latestDeploymentId", + "latestDeploymentCreatedAt", + "latestDeploymentStatus", + "scopes", + "vars", + "events", + "schedule", + "timeout", "entrypoint", - "sourceSize", - "buildSize", - "totalSize", - "buildId", - "activate", - "screenshotLight", - "screenshotDark", - "status", - "buildLogs", - "buildDuration", - "providerRepositoryName", - "providerRepositoryOwner", - "providerRepositoryUrl", - "providerCommitHash", - "providerCommitAuthorUrl", - "providerCommitAuthor", - "providerCommitMessage", - "providerCommitUrl", + "commands", + "version", + "installationId", + "providerRepositoryId", "providerBranch", - "providerBranchUrl" + "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", - "type": "vcs", - "resourceId": "5e5ea6g16897e", - "resourceType": "functions", + "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", - "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" + "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" } }, - "execution": { - "description": "Execution", + "templateFunction": { + "description": "Template Function", "type": "object", "properties": { - "$id": { + "icon": { "type": "string", - "description": "Execution ID.", - "x-example": "5e5ea5c16897e" + "description": "Function Template Icon.", + "x-example": "icon-lightning-bolt" }, - "$createdAt": { + "id": { "type": "string", - "description": "Execution creation date in ISO 8601 format.", - "x-example": "2020-10-15T06:38:00.000+00:00" + "description": "Function Template ID.", + "x-example": "starter" }, - "$updatedAt": { + "name": { "type": "string", - "description": "Execution update date in ISO 8601 format.", - "x-example": "2020-10-15T06:38:00.000+00:00" + "description": "Function Template Name.", + "x-example": "Starter function" }, - "$permissions": { + "tagline": { + "type": "string", + "description": "Function Template Tagline.", + "x-example": "A simple function to get started." + }, + "permissions": { "type": "array", - "description": "Execution roles.", + "description": "Execution permissions.", "items": { "type": "string" }, - "x-example": [ - "any" - ] + "x-example": "any" }, - "functionId": { + "events": { + "type": "array", + "description": "Function trigger events.", + "items": { + "type": "string" + }, + "x-example": "account.create" + }, + "cron": { "type": "string", - "description": "Function ID.", - "x-example": "5e5ea6g16897e" + "description": "Function execution schedult in CRON format.", + "x-example": "0 0 * * *" }, - "deploymentId": { + "timeout": { + "type": "integer", + "description": "Function execution timeout in seconds.", + "x-example": 300, + "format": "int32" + }, + "useCases": { + "type": "array", + "description": "Function use cases.", + "items": { + "type": "string" + }, + "x-example": "Starter" + }, + "runtimes": { + "type": "array", + "description": "List of runtimes that can be used with this template.", + "items": { + "$ref": "#\/components\/schemas\/templateRuntime" + }, + "x-example": [] + }, + "instructions": { "type": "string", - "description": "Function's deployment ID used to create the execution.", - "x-example": "5e5ea5c16897e" + "description": "Function Template Instructions.", + "x-example": "For documentation and instructions check out <link>." }, - "trigger": { + "vcsProvider": { "type": "string", - "description": "The trigger that caused the function to execute. Possible values can be: `http`, `schedule`, or `event`.", - "x-example": "http", - "enum": [ - "http", - "schedule", - "event" - ] + "description": "VCS (Version Control System) Provider.", + "x-example": "github" }, - "status": { + "providerRepositoryId": { "type": "string", - "description": "The status of the function execution. Possible values can be: `waiting`, `processing`, `completed`, `failed`, or `scheduled`.", - "x-example": "processing", - "enum": [ - "waiting", - "processing", - "completed", - "failed", - "scheduled" - ] + "description": "VCS (Version Control System) Repository ID", + "x-example": "templates" }, - "requestMethod": { + "providerOwner": { "type": "string", - "description": "HTTP request method type.", - "x-example": "GET" + "description": "VCS (Version Control System) Owner.", + "x-example": "appwrite" + }, + "providerVersion": { + "type": "string", + "description": "VCS (Version Control System) branch version (tag).", + "x-example": "main" + }, + "variables": { + "type": "array", + "description": "Function variables.", + "items": { + "$ref": "#\/components\/schemas\/templateVariable" + }, + "x-example": [] + }, + "scopes": { + "type": "array", + "description": "Function scopes.", + "items": { + "type": "string" + }, + "x-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.", + "x-example": "node-19.0" + }, + "commands": { + "type": "string", + "description": "The build command used to build the deployment.", + "x-example": "npm install" + }, + "entrypoint": { + "type": "string", + "description": "The entrypoint file used to execute the deployment.", + "x-example": "index.js" + }, + "providerRootDirectory": { + "type": "string", + "description": "Path to function in VCS (Version Control System) repository", + "x-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.", + "x-example": "APPWRITE_DATABASE_ID" + }, + "description": { + "type": "string", + "description": "Variable Description.", + "x-example": "The ID of the Appwrite database that contains the collection to sync." + }, + "value": { + "type": "string", + "description": "Variable Value.", + "x-example": "512" + }, + "secret": { + "type": "boolean", + "description": "Variable secret flag. Secret variables can only be updated or deleted, but never read.", + "x-example": false }, - "requestPath": { + "placeholder": { "type": "string", - "description": "HTTP request path and query.", - "x-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" - }, - "x-example": [ - { - "Content-Type": "application\/json" - } - ] + "description": "Variable Placeholder.", + "x-example": "64a55...7b912" }, - "responseStatusCode": { - "type": "integer", - "description": "HTTP response status code.", - "x-example": 200, - "format": "int32" + "required": { + "type": "boolean", + "description": "Is the variable required?", + "x-example": false }, - "responseBody": { + "type": { "type": "string", - "description": "HTTP response body. This will return empty unless execution is created as synchronous.", - "x-example": "" + "description": "Variable Type.", + "x-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.", + "x-example": "5e5ea5c16897e" }, - "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" - }, - "x-example": [ - { - "Content-Type": "application\/json" - } - ] + "$createdAt": { + "type": "string", + "description": "Function creation date in ISO 8601 format.", + "x-example": "2020-10-15T06:38:00.000+00:00" }, - "logs": { + "$updatedAt": { "type": "string", - "description": "Function 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.", - "x-example": "" + "description": "Function update date in ISO 8601 format.", + "x-example": "2020-10-15T06:38:00.000+00:00" }, - "errors": { + "provider": { "type": "string", - "description": "Function 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.", - "x-example": "" + "description": "VCS (Version Control System) provider name.", + "x-example": "github" }, - "duration": { - "type": "number", - "description": "Resource(function\/site) execution duration in seconds.", - "x-example": 0.4, - "format": "double" + "organization": { + "type": "string", + "description": "VCS (Version Control System) organization name.", + "x-example": "appwrite" }, - "scheduledAt": { + "providerInstallationId": { "type": "string", - "description": "The scheduled time for execution. If left empty, execution will be queued immediately.", - "x-example": "2020-10-15T06:38:00.000+00:00", - "nullable": true + "description": "VCS (Version Control System) installation ID.", + "x-example": "5322" } }, "required": [ "$id", "$createdAt", "$updatedAt", - "$permissions", - "functionId", - "deploymentId", - "trigger", - "status", - "requestMethod", - "requestPath", - "requestHeaders", - "responseStatusCode", - "responseBody", - "responseHeaders", - "logs", - "errors", - "duration" + "provider", + "organization", + "providerInstallationId" ], "example": { "$id": "5e5ea5c16897e", "$createdAt": "2020-10-15T06:38:00.000+00:00", "$updatedAt": "2020-10-15T06:38:00.000+00:00", - "$permissions": [ - "any" - ], - "functionId": "5e5ea6g16897e", - "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": 0.4, - "scheduledAt": "2020-10-15T06:38:00.000+00:00" + "provider": "github", + "organization": "appwrite", + "providerInstallationId": "5322" } }, - "project": { - "description": "Project", + "providerRepository": { + "description": "ProviderRepository", "type": "object", "properties": { - "$id": { + "id": { "type": "string", - "description": "Project ID.", + "description": "VCS (Version Control System) repository ID.", "x-example": "5e5ea5c16897e" }, - "$createdAt": { + "name": { "type": "string", - "description": "Project creation date in ISO 8601 format.", - "x-example": "2020-10-15T06:38:00.000+00:00" + "description": "VCS (Version Control System) repository name.", + "x-example": "appwrite" }, - "$updatedAt": { + "organization": { "type": "string", - "description": "Project update date in ISO 8601 format.", - "x-example": "2020-10-15T06:38:00.000+00:00" + "description": "VCS (Version Control System) organization name", + "x-example": "appwrite" }, - "name": { + "provider": { "type": "string", - "description": "Project name.", - "x-example": "New Project" + "description": "VCS (Version Control System) provider name.", + "x-example": "github" }, - "teamId": { - "type": "string", - "description": "Project team ID.", - "x-example": "1592981250" + "private": { + "type": "boolean", + "description": "Is VCS (Version Control System) repository private?", + "x-example": true }, - "region": { + "defaultBranch": { "type": "string", - "description": "Project region", - "x-example": "fra" + "description": "VCS (Version Control System) repository's default branch name.", + "x-example": "main" }, - "devKeys": { - "type": "array", - "description": "Deprecated since 1.9.5: List of dev keys.", - "items": { - "$ref": "#\/components\/schemas\/devKey" - }, - "x-example": {} + "providerInstallationId": { + "type": "string", + "description": "VCS (Version Control System) installation ID.", + "x-example": "108104697" }, - "smtpEnabled": { + "authorized": { "type": "boolean", - "description": "Status for custom SMTP", - "x-example": false + "description": "Is VCS (Version Control System) repository authorized for the installation?", + "x-example": true }, - "smtpSenderName": { + "pushedAt": { "type": "string", - "description": "SMTP sender name", - "x-example": "John Appwrite" + "description": "Last commit date in ISO 8601 format.", + "x-example": "datetime" }, - "smtpSenderEmail": { + "variables": { + "type": "array", + "description": "Environment variables found in .env files", + "items": { + "type": "string" + }, + "x-example": [ + "PORT", + "NODE_ENV" + ] + } + }, + "required": [ + "id", + "name", + "organization", + "provider", + "private", + "defaultBranch", + "providerInstallationId", + "authorized", + "pushedAt", + "variables" + ], + "example": { + "id": "5e5ea5c16897e", + "name": "appwrite", + "organization": "appwrite", + "provider": "github", + "private": true, + "defaultBranch": "main", + "providerInstallationId": "108104697", + "authorized": true, + "pushedAt": "datetime", + "variables": [ + "PORT", + "NODE_ENV" + ] + } + }, + "providerRepositoryFramework": { + "description": "ProviderRepositoryFramework", + "type": "object", + "properties": { + "id": { "type": "string", - "description": "SMTP sender email", - "x-example": "john@appwrite.io" + "description": "VCS (Version Control System) repository ID.", + "x-example": "5e5ea5c16897e" }, - "smtpReplyToName": { + "name": { "type": "string", - "description": "SMTP reply to name", - "x-example": "Support Team" + "description": "VCS (Version Control System) repository name.", + "x-example": "appwrite" }, - "smtpReplyToEmail": { + "organization": { "type": "string", - "description": "SMTP reply to email", - "x-example": "support@appwrite.io" + "description": "VCS (Version Control System) organization name", + "x-example": "appwrite" }, - "smtpHost": { + "provider": { "type": "string", - "description": "SMTP server host name", - "x-example": "mail.appwrite.io" - }, - "smtpPort": { - "type": "integer", - "description": "SMTP server port", - "x-example": 25, - "format": "int32" + "description": "VCS (Version Control System) provider name.", + "x-example": "github" }, - "smtpUsername": { - "type": "string", - "description": "SMTP server username", - "x-example": "emailuser" + "private": { + "type": "boolean", + "description": "Is VCS (Version Control System) repository private?", + "x-example": true }, - "smtpPassword": { + "defaultBranch": { "type": "string", - "description": "SMTP server password. This property is write-only and always returned empty.", - "x-example": "smtp-password", - "format": "password" + "description": "VCS (Version Control System) repository's default branch name.", + "x-example": "main" }, - "smtpSecure": { + "providerInstallationId": { "type": "string", - "description": "SMTP server secure protocol", - "x-example": "tls" + "description": "VCS (Version Control System) installation ID.", + "x-example": "108104697" }, - "pingCount": { - "type": "integer", - "description": "Number of times the ping was received for this project.", - "x-example": 1, - "format": "int32" + "authorized": { + "type": "boolean", + "description": "Is VCS (Version Control System) repository authorized for the installation?", + "x-example": true }, - "pingedAt": { + "pushedAt": { "type": "string", - "description": "Last ping datetime in ISO 8601 format.", - "x-example": "2020-10-15T06:38:00.000+00:00" + "description": "Last commit date in ISO 8601 format.", + "x-example": "datetime" }, - "labels": { + "variables": { "type": "array", - "description": "Labels for the project.", + "description": "Environment variables found in .env files", "items": { "type": "string" }, "x-example": [ - "vip" + "PORT", + "NODE_ENV" ] }, - "status": { + "framework": { "type": "string", - "description": "Project status", - "x-example": "active" - }, - "onboarding": { - "type": "object", - "additionalProperties": true, - "description": "Stage progress (completed or skipped) with timestamps and actor types, keyed by stage id.", - "x-example": [] + "description": "Auto-detected framework. Empty if type is not \"framework\".", + "x-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.", + "x-example": "5e5ea5c16897e" }, - "authMethods": { - "type": "array", - "description": "List of auth methods.", - "items": { - "$ref": "#\/components\/schemas\/projectAuthMethod" - }, - "x-example": {} + "name": { + "type": "string", + "description": "VCS (Version Control System) repository name.", + "x-example": "appwrite" }, - "services": { - "type": "array", - "description": "List of services.", - "items": { - "$ref": "#\/components\/schemas\/projectService" - }, - "x-example": {} + "organization": { + "type": "string", + "description": "VCS (Version Control System) organization name", + "x-example": "appwrite" }, - "protocols": { - "type": "array", - "description": "List of protocols.", - "items": { - "$ref": "#\/components\/schemas\/projectProtocol" - }, - "x-example": {} + "provider": { + "type": "string", + "description": "VCS (Version Control System) provider name.", + "x-example": "github" }, - "blocks": { - "type": "array", - "description": "Project blocks information", - "items": { - "$ref": "#\/components\/schemas\/block" - }, - "x-example": "" + "private": { + "type": "boolean", + "description": "Is VCS (Version Control System) repository private?", + "x-example": true }, - "consoleAccessedAt": { + "defaultBranch": { "type": "string", - "description": "Last time the project was accessed via console. Used with plan's projectInactivityDays to determine if project is paused.", - "x-example": "2020-10-15T06:38:00.000+00:00" + "description": "VCS (Version Control System) repository's default branch name.", + "x-example": "main" }, - "billingLimits": { - "type": "object", - "description": "Billing limits reached", - "x-example": "", - "allOf": [ - { - "$ref": "#\/components\/schemas\/billingLimits" - } - ], - "nullable": true + "providerInstallationId": { + "type": "string", + "description": "VCS (Version Control System) installation ID.", + "x-example": "108104697" }, - "oAuth2ServerEnabled": { + "authorized": { "type": "boolean", - "description": "OAuth2 server status", - "x-example": false, - "nullable": true + "description": "Is VCS (Version Control System) repository authorized for the installation?", + "x-example": true }, - "oAuth2ServerAuthorizationUrl": { + "pushedAt": { "type": "string", - "description": "OAuth2 server authorization URL", - "x-example": "https:\/\/cloud.appwrite.io\/oauth2\/.well-known\/openid-configuration", - "nullable": true + "description": "Last commit date in ISO 8601 format.", + "x-example": "datetime" + }, + "variables": { + "type": "array", + "description": "Environment variables found in .env files", + "items": { + "type": "string" + }, + "x-example": [ + "PORT", + "NODE_ENV" + ] + }, + "runtime": { + "type": "string", + "description": "Auto-detected runtime. Empty if type is not \"runtime\".", + "x-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": { + "type": "string", + "description": "Repository detection type.", + "x-example": "framework", + "enum": [ + "framework" + ] }, - "oAuth2ServerScopes": { + "variables": { "type": "array", - "description": "OAuth2 server allowed scopes", + "description": "Environment variables found in .env files", "items": { - "type": "string" + "$ref": "#\/components\/schemas\/detectionVariable" }, - "x-example": [ - "read", - "write" - ], + "x-example": {}, "nullable": true }, - "oAuth2ServerAuthorizationDetailsTypes": { + "framework": { + "type": "string", + "description": "Framework", + "x-example": "nuxt" + }, + "installCommand": { + "type": "string", + "description": "Site Install Command", + "x-example": "npm install" + }, + "buildCommand": { + "type": "string", + "description": "Site Build Command", + "x-example": "npm run build" + }, + "outputDirectory": { + "type": "string", + "description": "Site Output Directory", + "x-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": { + "type": "string", + "description": "Repository detection type.", + "x-example": "runtime", + "enum": [ + "runtime" + ] + }, + "variables": { "type": "array", - "description": "OAuth2 server accepted RFC 9396 authorization_details types", + "description": "Environment variables found in .env files", "items": { - "type": "string" + "$ref": "#\/components\/schemas\/detectionVariable" }, - "x-example": [ - "calendar" - ], + "x-example": {}, "nullable": true }, - "oAuth2ServerAccessTokenDuration": { - "type": "integer", - "description": "OAuth2 server access token duration in seconds for confidential clients", - "x-example": 3600, - "format": "int32", - "nullable": true + "runtime": { + "type": "string", + "description": "Runtime", + "x-example": "node" }, - "oAuth2ServerRefreshTokenDuration": { - "type": "integer", - "description": "OAuth2 server refresh token duration in seconds for confidential clients", - "x-example": 86400, - "format": "int32", - "nullable": true + "entrypoint": { + "type": "string", + "description": "Function Entrypoint", + "x-example": "index.js" }, - "oAuth2ServerPublicAccessTokenDuration": { - "type": "integer", - "description": "OAuth2 server access token duration in seconds for public clients (SPAs, mobile, native)", - "x-example": 3600, - "format": "int32", - "nullable": true + "commands": { + "type": "string", + "description": "Function install and build commands", + "x-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", + "x-example": "NODE_ENV" }, - "oAuth2ServerPublicRefreshTokenDuration": { + "value": { + "type": "string", + "description": "Value of environment variable", + "x-example": "production" + } + }, + "required": [ + "name", + "value" + ], + "example": { + "name": "NODE_ENV", + "value": "production" + } + }, + "vcsContent": { + "description": "VcsContents", + "type": "object", + "properties": { + "size": { "type": "integer", - "description": "OAuth2 server refresh token duration in seconds for public clients (SPAs, mobile, native)", - "x-example": 2592000, + "description": "Content size in bytes. Only files have size, and for directories, 0 is returned.", + "x-example": 1523, "format": "int32", "nullable": true }, - "oAuth2ServerConfidentialPkce": { + "isDirectory": { "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.", - "x-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.", - "x-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.", - "x-example": 8, - "format": "int32", + "description": "If a content is a directory. Directories can be used to check nested contents.", + "x-example": true, "nullable": true }, - "oAuth2ServerUserCodeFormat": { + "name": { "type": "string", - "description": "Character set for device flow user codes: `numeric`, `alphabetic`, or `alphanumeric`.", - "x-example": "alphanumeric", - "nullable": true - }, - "oAuth2ServerDeviceCodeDuration": { - "type": "integer", - "description": "Lifetime in seconds of device flow device codes and user codes.", - "x-example": 600, - "format": "int32", - "nullable": true - }, - "oAuth2ServerDiscoveryUrl": { + "description": "Name of directory or file.", + "x-example": "Main.java" + } + }, + "required": [ + "name" + ], + "example": { + "size": 1523, + "isDirectory": true, + "name": "Main.java" + } + }, + "branch": { + "description": "Branch", + "type": "object", + "properties": { + "name": { "type": "string", - "description": "OAuth2 server discovery URL", - "x-example": "https:\/\/auth.example.com\/.well-known\/openid-configuration", - "nullable": true + "description": "Branch Name.", + "x-example": "main" } }, "required": [ - "$id", - "$createdAt", - "$updatedAt", - "name", - "teamId", - "region", - "devKeys", - "smtpEnabled", - "smtpSenderName", - "smtpSenderEmail", - "smtpReplyToName", - "smtpReplyToEmail", - "smtpHost", - "smtpPort", - "smtpUsername", - "smtpPassword", - "smtpSecure", - "pingCount", - "pingedAt", - "labels", - "status", - "onboarding", - "authMethods", - "services", - "protocols", - "blocks", - "consoleAccessedAt" + "name" ], "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", - "devKeys": {}, - "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", - "billingLimits": "", - "oAuth2ServerEnabled": false, - "oAuth2ServerAuthorizationUrl": "https:\/\/cloud.appwrite.io\/oauth2\/.well-known\/openid-configuration", - "oAuth2ServerScopes": [ - "read", - "write" - ], - "oAuth2ServerAuthorizationDetailsTypes": [ - "calendar" - ], - "oAuth2ServerAccessTokenDuration": 3600, - "oAuth2ServerRefreshTokenDuration": 86400, - "oAuth2ServerPublicAccessTokenDuration": 3600, - "oAuth2ServerPublicRefreshTokenDuration": 2592000, - "oAuth2ServerConfidentialPkce": false, - "oAuth2ServerVerificationUrl": "https:\/\/cloud.appwrite.io\/device", - "oAuth2ServerUserCodeLength": 8, - "oAuth2ServerUserCodeFormat": "alphanumeric", - "oAuth2ServerDeviceCodeDuration": 600, - "oAuth2ServerDiscoveryUrl": "https:\/\/auth.example.com\/.well-known\/openid-configuration" + "name": "main" } }, - "projectAuthMethod": { - "description": "ProjectAuthMethod", + "runtime": { + "description": "Runtime", "type": "object", "properties": { "$id": { "type": "string", - "description": "Auth method ID.", - "x-example": "email-password", - "enum": [ - "email-password", - "magic-url", - "email-otp", - "anonymous", - "invites", - "jwt", - "phone" - ], - "x-enum-name": "ProjectAuthMethodId" + "description": "Runtime ID.", + "x-example": "python-3.8" }, - "enabled": { - "type": "boolean", - "description": "Auth method status.", - "x-example": false + "key": { + "type": "string", + "description": "Parent runtime key.", + "x-example": "python" + }, + "name": { + "type": "string", + "description": "Runtime Name.", + "x-example": "Python" + }, + "version": { + "type": "string", + "description": "Runtime version.", + "x-example": "3.8" + }, + "base": { + "type": "string", + "description": "Base Docker image used to build the runtime.", + "x-example": "python:3.8-alpine" + }, + "image": { + "type": "string", + "description": "Image name of Docker Hub.", + "x-example": "appwrite\\\/runtime-for-python:3.8" + }, + "logo": { + "type": "string", + "description": "Name of the logo image.", + "x-example": "python.png" + }, + "supports": { + "type": "array", + "description": "List of supported architectures.", + "items": { + "type": "string" + }, + "x-example": "amd64" } }, "required": [ "$id", - "enabled" + "key", + "name", + "version", + "base", + "image", + "logo", + "supports" ], "example": { - "$id": "email-password", - "enabled": false + "$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" } }, - "projectService": { - "description": "ProjectService", + "framework": { + "description": "Framework", "type": "object", "properties": { - "$id": { + "key": { "type": "string", - "description": "Service ID.", - "x-example": "sites", - "enum": [ - "account", - "avatars", - "databases", - "tablesdb", - "locale", - "health", - "project", - "storage", - "teams", - "users", - "vcs", - "sites", - "functions", - "proxy", - "graphql", - "migrations", - "messaging", - "advisor" - ], - "x-enum-name": "ProjectServiceId" + "description": "Framework key.", + "x-example": "sveltekit" }, - "enabled": { - "type": "boolean", - "description": "Service status.", - "x-example": false + "name": { + "type": "string", + "description": "Framework Name.", + "x-example": "SvelteKit" + }, + "buildRuntime": { + "type": "string", + "description": "Default runtime version.", + "x-example": "node-22" + }, + "runtimes": { + "type": "array", + "description": "List of supported runtime versions.", + "items": { + "type": "string" + }, + "x-example": [ + "static-1", + "node-22" + ] + }, + "adapters": { + "type": "array", + "description": "List of supported adapters.", + "items": { + "$ref": "#\/components\/schemas\/frameworkAdapter" + }, + "x-example": [ + { + "key": "static", + "buildRuntime": "node-22", + "buildCommand": "npm run build", + "installCommand": "npm install", + "outputDirectory": ".\/dist" + } + ] } }, "required": [ - "$id", - "enabled" + "key", + "name", + "buildRuntime", + "runtimes", + "adapters" ], "example": { - "$id": "sites", - "enabled": false + "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" + } + ] } }, - "projectProtocol": { - "description": "ProjectProtocol", + "frameworkAdapter": { + "description": "Framework Adapter", "type": "object", "properties": { - "$id": { + "key": { "type": "string", - "description": "Protocol ID.", - "x-example": "graphql", - "enum": [ - "rest", - "graphql", - "websocket" - ], - "x-enum-name": "ProjectProtocolId" + "description": "Adapter key.", + "x-example": "static" }, - "enabled": { - "type": "boolean", - "description": "Protocol status.", - "x-example": false + "installCommand": { + "type": "string", + "description": "Default command to download dependencies.", + "x-example": "npm install" + }, + "buildCommand": { + "type": "string", + "description": "Default command to build site into output directory.", + "x-example": "npm run build" + }, + "outputDirectory": { + "type": "string", + "description": "Default output directory of build.", + "x-example": ".\/dist" + }, + "fallbackFile": { + "type": "string", + "description": "Name of fallback file to use instead of 404 page. If null, Appwrite 404 page will be displayed.", + "x-example": "index.html" } }, "required": [ - "$id", - "enabled" + "key", + "installCommand", + "buildCommand", + "outputDirectory", + "fallbackFile" ], "example": { - "$id": "graphql", - "enabled": false + "key": "static", + "installCommand": "npm install", + "buildCommand": "npm run build", + "outputDirectory": ".\/dist", + "fallbackFile": "index.html" } }, - "webhook": { - "description": "Webhook", + "deployment": { + "description": "Deployment", "type": "object", "properties": { "$id": { "type": "string", - "description": "Webhook ID.", + "description": "Deployment ID.", "x-example": "5e5ea5c16897e" }, "$createdAt": { "type": "string", - "description": "Webhook creation date in ISO 8601 format.", + "description": "Deployment creation date in ISO 8601 format.", "x-example": "2020-10-15T06:38:00.000+00:00" }, "$updatedAt": { "type": "string", - "description": "Webhook update date in ISO 8601 format.", + "description": "Deployment update date in ISO 8601 format.", "x-example": "2020-10-15T06:38:00.000+00:00" }, - "name": { + "type": { "type": "string", - "description": "Webhook name.", - "x-example": "My Webhook" + "description": "Type of deployment.", + "x-example": "vcs" }, - "url": { + "resourceId": { "type": "string", - "description": "Webhook URL endpoint.", - "x-example": "https:\/\/example.com\/webhook" + "description": "Resource ID.", + "x-example": "5e5ea6g16897e" }, - "events": { - "type": "array", - "description": "Webhook trigger events.", - "items": { - "type": "string" - }, - "x-example": [ - "databases.tables.update", - "databases.collections.update" - ] + "resourceType": { + "type": "string", + "description": "Resource type.", + "x-example": "functions" }, - "tls": { + "entrypoint": { + "type": "string", + "description": "The entrypoint file to use to execute the deployment code.", + "x-example": "index.js" + }, + "sourceSize": { + "type": "integer", + "description": "The code size in bytes.", + "x-example": 128, + "format": "int32" + }, + "buildSize": { + "type": "integer", + "description": "The build output size in bytes.", + "x-example": 128, + "format": "int32" + }, + "totalSize": { + "type": "integer", + "description": "The total size in bytes (source and build output).", + "x-example": 128, + "format": "int32" + }, + "buildId": { + "type": "string", + "description": "The current build ID.", + "x-example": "5e5ea5c16897e" + }, + "activate": { "type": "boolean", - "description": "Indicates if SSL \/ TLS certificate verification is enabled.", + "description": "Whether the deployment should be automatically activated.", "x-example": true }, - "authUsername": { + "screenshotLight": { "type": "string", - "description": "HTTP basic authentication username.", - "x-example": "username" + "description": "Screenshot with light theme preference file ID.", + "x-example": "5e5ea5c16897e" }, - "authPassword": { + "screenshotDark": { "type": "string", - "description": "HTTP basic authentication password.", - "x-example": "webhook-password", - "format": "password" + "description": "Screenshot with dark theme preference file ID.", + "x-example": "5e5ea5c16897e" }, - "secret": { + "status": { "type": "string", - "description": "Signature key which can be used to validate incoming webhook payloads. Only returned on creation and secret rotation.", - "x-example": "ad3d581ca230e2b7059c545e5a" - }, - "enabled": { - "type": "boolean", - "description": "Indicates if this webhook is enabled.", - "x-example": true + "description": "The deployment status. Possible values are \"waiting\", \"processing\", \"building\", \"ready\", \"canceled\" and \"failed\".", + "x-example": "ready", + "enum": [ + "waiting", + "processing", + "building", + "ready", + "canceled", + "failed" + ] }, - "logs": { + "buildLogs": { "type": "string", - "description": "Webhook error logs from the most recent failure.", - "x-example": "Failed to connect to remote server." + "description": "The build logs.", + "x-example": "Compiling source files..." }, - "attempts": { + "buildDuration": { "type": "integer", - "description": "Number of consecutive failed webhook attempts.", - "x-example": 10, + "description": "The current build time in seconds.", + "x-example": 128, "format": "int32" - } - }, - "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": { + }, + "providerRepositoryName": { "type": "string", - "description": "Key ID.", - "x-example": "5e5ea5c16897e" + "description": "The name of the vcs provider repository", + "x-example": "database" }, - "$createdAt": { + "providerRepositoryOwner": { "type": "string", - "description": "Key creation date in ISO 8601 format.", - "x-example": "2020-10-15T06:38:00.000+00:00" + "description": "The name of the vcs provider repository owner", + "x-example": "utopia" }, - "$updatedAt": { + "providerRepositoryUrl": { "type": "string", - "description": "Key update date in ISO 8601 format.", - "x-example": "2020-10-15T06:38:00.000+00:00" + "description": "The url of the vcs provider repository", + "x-example": "https:\/\/github.com\/vermakhushboo\/g4-node-function" }, - "name": { + "providerCommitHash": { "type": "string", - "description": "Key name.", - "x-example": "My API Key" + "description": "The commit hash of the vcs commit", + "x-example": "7c3f25d" }, - "expire": { + "providerCommitAuthorUrl": { "type": "string", - "description": "Key expiration date in ISO 8601 format.", - "x-example": "2020-10-15T06:38:00.000+00:00" + "description": "The url of vcs commit author", + "x-example": "https:\/\/github.com\/vermakhushboo" }, - "scopes": { - "type": "array", - "description": "Allowed permission scopes.", - "items": { - "type": "string" - }, - "x-example": "users.read" + "providerCommitAuthor": { + "type": "string", + "description": "The name of vcs commit author", + "x-example": "Khushboo Verma" }, - "secret": { + "providerCommitMessage": { "type": "string", - "description": "Secret key.", - "x-example": "919c2d18fb5d4...a2ae413da83346ad2" + "description": "The commit message", + "x-example": "Update index.js" }, - "accessedAt": { + "providerCommitUrl": { "type": "string", - "description": "Most recent access date in ISO 8601 format. This attribute is only updated again after 24 hours.", - "x-example": "2020-10-15T06:38:00.000+00:00" + "description": "The url of the vcs commit", + "x-example": "https:\/\/github.com\/vermakhushboo\/g4-node-function\/commit\/60c0416257a9cbcdd96b2d370c38d8f8d150ccfb" }, - "sdks": { - "type": "array", - "description": "List of SDK user agents that used this key.", - "items": { - "type": "string" - }, - "x-example": "appwrite:flutter" + "providerBranch": { + "type": "string", + "description": "The branch of the vcs repository", + "x-example": "0.7.x" + }, + "providerBranchUrl": { + "type": "string", + "description": "The branch of the vcs repository", + "x-example": "https:\/\/github.com\/vermakhushboo\/appwrite\/tree\/0.7.x" } }, "required": [ "$id", "$createdAt", "$updatedAt", - "name", - "expire", - "scopes", - "secret", - "accessedAt", - "sdks" + "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", - "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" + "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" } }, - "ephemeralKey": { - "description": "Ephemeral Key", + "execution": { + "description": "Execution", "type": "object", "properties": { "$id": { "type": "string", - "description": "Key ID.", + "description": "Execution ID.", "x-example": "5e5ea5c16897e" }, "$createdAt": { "type": "string", - "description": "Key creation date in ISO 8601 format.", + "description": "Execution creation date in ISO 8601 format.", "x-example": "2020-10-15T06:38:00.000+00:00" }, "$updatedAt": { "type": "string", - "description": "Key update date in ISO 8601 format.", - "x-example": "2020-10-15T06:38:00.000+00:00" - }, - "name": { - "type": "string", - "description": "Key name.", - "x-example": "My API Key" - }, - "expire": { - "type": "string", - "description": "Key expiration date in ISO 8601 format.", + "description": "Execution update date in ISO 8601 format.", "x-example": "2020-10-15T06:38:00.000+00:00" }, - "scopes": { + "$permissions": { "type": "array", - "description": "Allowed permission scopes.", + "description": "Execution roles.", "items": { "type": "string" }, - "x-example": "users.read" - }, - "secret": { - "type": "string", - "description": "Secret key.", - "x-example": "919c2d18fb5d4...a2ae413da83346ad2" + "x-example": [ + "any" + ] }, - "accessedAt": { + "functionId": { "type": "string", - "description": "Most recent access date in ISO 8601 format. This attribute is only updated again after 24 hours.", - "x-example": "2020-10-15T06:38:00.000+00:00" + "description": "Function ID.", + "x-example": "5e5ea6g16897e" }, - "sdks": { - "type": "array", - "description": "List of SDK user agents that used this key.", - "items": { - "type": "string" - }, - "x-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" - } - }, - "devKey": { - "description": "DevKey", - "type": "object", - "properties": { - "$id": { + "deploymentId": { "type": "string", - "description": "Key ID.", + "description": "Function's deployment ID used to create the execution.", "x-example": "5e5ea5c16897e" }, - "$createdAt": { + "trigger": { "type": "string", - "description": "Key creation date in ISO 8601 format.", - "x-example": "2020-10-15T06:38:00.000+00:00" + "description": "The trigger that caused the function to execute. Possible values can be: `http`, `schedule`, or `event`.", + "x-example": "http", + "enum": [ + "http", + "schedule", + "event" + ] }, - "$updatedAt": { + "status": { "type": "string", - "description": "Key update date in ISO 8601 format.", - "x-example": "2020-10-15T06:38:00.000+00:00" + "description": "The status of the function execution. Possible values can be: `waiting`, `processing`, `completed`, `failed`, or `scheduled`.", + "x-example": "processing", + "enum": [ + "waiting", + "processing", + "completed", + "failed", + "scheduled" + ] }, - "name": { + "requestMethod": { "type": "string", - "description": "Key name.", - "x-example": "Dev API Key" + "description": "HTTP request method type.", + "x-example": "GET" }, - "expire": { + "requestPath": { "type": "string", - "description": "Key expiration date in ISO 8601 format.", - "x-example": "2020-10-15T06:38:00.000+00:00" + "description": "HTTP request path and query.", + "x-example": "\/articles?id=5" }, - "secret": { - "type": "string", - "description": "Secret key.", - "x-example": "919c2d18fb5d4...a2ae413da83346ad2" + "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" + }, + "x-example": [ + { + "Content-Type": "application\/json" + } + ] }, - "accessedAt": { + "responseStatusCode": { + "type": "integer", + "description": "HTTP response status code.", + "x-example": 200, + "format": "int32" + }, + "responseBody": { "type": "string", - "description": "Most recent access date in ISO 8601 format. This attribute is only updated again after 24 hours.", - "x-example": "2020-10-15T06:38:00.000+00:00" + "description": "HTTP response body. This will return empty unless execution is created as synchronous.", + "x-example": "" }, - "sdks": { + "responseHeaders": { "type": "array", - "description": "List of SDK user agents that used this key.", + "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": { - "type": "string" + "$ref": "#\/components\/schemas\/headers" }, - "x-example": "appwrite:flutter" + "x-example": [ + { + "Content-Type": "application\/json" + } + ] + }, + "logs": { + "type": "string", + "description": "Function 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.", + "x-example": "" + }, + "errors": { + "type": "string", + "description": "Function 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.", + "x-example": "" + }, + "duration": { + "type": "number", + "description": "Resource(function\/site) execution duration in seconds.", + "x-example": 0.4, + "format": "double" + }, + "scheduledAt": { + "type": "string", + "description": "The scheduled time for execution. If left empty, execution will be queued immediately.", + "x-example": "2020-10-15T06:38:00.000+00:00", + "nullable": true } }, "required": [ "$id", "$createdAt", "$updatedAt", - "name", - "expire", - "secret", - "accessedAt", - "sdks" + "$permissions", + "functionId", + "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", - "name": "Dev API Key", - "expire": "2020-10-15T06:38:00.000+00:00", - "secret": "919c2d18fb5d4...a2ae413da83346ad2", - "accessedAt": "2020-10-15T06:38:00.000+00:00", - "sdks": "appwrite:flutter" + "$permissions": [ + "any" + ], + "functionId": "5e5ea6g16897e", + "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": 0.4, + "scheduledAt": "2020-10-15T06:38:00.000+00:00" } }, - "mockNumber": { - "description": "Mock Number", + "project": { + "description": "Project", "type": "object", "properties": { - "number": { - "type": "string", - "description": "Mock phone number for testing phone authentication. Useful for testing phone authentication without sending an SMS.", - "x-example": "+1612842323" - }, - "otp": { + "$id": { "type": "string", - "description": "Mock OTP for the number. ", - "x-example": "123456" + "description": "Project ID.", + "x-example": "5e5ea5c16897e" }, "$createdAt": { "type": "string", - "description": "Attribute creation date in ISO 8601 format.", + "description": "Project creation date in ISO 8601 format.", "x-example": "2020-10-15T06:38:00.000+00:00" }, "$updatedAt": { "type": "string", - "description": "Attribute update date in ISO 8601 format.", + "description": "Project update date in ISO 8601 format.", "x-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.", - "x-example": "github" }, - "enabled": { - "type": "boolean", - "description": "OAuth2 provider is active and can be used to create sessions.", - "x-example": false - }, - "clientId": { + "name": { "type": "string", - "description": "GitHub OAuth2 client ID. For GitHub Apps, use the \"App ID\" when both an App ID and client ID are available.", - "x-example": "e4d87900000000540733" + "description": "Project name.", + "x-example": "New Project" }, - "clientSecret": { + "teamId": { "type": "string", - "description": "GitHub OAuth2 client secret.", - "x-example": "5e07c00000000000000000000000000000198bcc" - } - }, - "required": [ - "$id", - "enabled", - "clientId", - "clientSecret" - ], - "example": { - "$id": "github", - "enabled": false, - "clientId": "e4d87900000000540733", - "clientSecret": "5e07c00000000000000000000000000000198bcc" - } - }, - "oAuth2Discord": { - "description": "OAuth2Discord", - "type": "object", - "properties": { - "$id": { + "description": "Project team ID.", + "x-example": "1592981250" + }, + "region": { "type": "string", - "description": "OAuth2 provider ID.", - "x-example": "github" + "description": "Project region", + "x-example": "fra" }, - "enabled": { + "devKeys": { + "type": "array", + "description": "Deprecated since 1.9.5: List of dev keys.", + "items": { + "$ref": "#\/components\/schemas\/devKey" + }, + "x-example": {} + }, + "smtpEnabled": { "type": "boolean", - "description": "OAuth2 provider is active and can be used to create sessions.", + "description": "Status for custom SMTP", "x-example": false }, - "clientId": { + "smtpSenderName": { "type": "string", - "description": "Discord OAuth2 client ID.", - "x-example": "950722000000343754" + "description": "SMTP sender name", + "x-example": "John Appwrite" }, - "clientSecret": { + "smtpSenderEmail": { "type": "string", - "description": "Discord OAuth2 client secret.", - "x-example": "YmPXnM000000000000000000002zFg5D" - } - }, - "required": [ - "$id", - "enabled", - "clientId", - "clientSecret" - ], - "example": { - "$id": "github", - "enabled": false, - "clientId": "950722000000343754", - "clientSecret": "YmPXnM000000000000000000002zFg5D" - } - }, - "oAuth2Figma": { - "description": "OAuth2Figma", - "type": "object", - "properties": { - "$id": { + "description": "SMTP sender email", + "x-example": "john@appwrite.io" + }, + "smtpReplyToName": { "type": "string", - "description": "OAuth2 provider ID.", - "x-example": "github" + "description": "SMTP reply to name", + "x-example": "Support Team" }, - "enabled": { - "type": "boolean", - "description": "OAuth2 provider is active and can be used to create sessions.", - "x-example": false + "smtpReplyToEmail": { + "type": "string", + "description": "SMTP reply to email", + "x-example": "support@appwrite.io" }, - "clientId": { + "smtpHost": { "type": "string", - "description": "Figma OAuth2 client ID.", - "x-example": "byay5H0000000000VtiI40" + "description": "SMTP server host name", + "x-example": "mail.appwrite.io" }, - "clientSecret": { + "smtpPort": { + "type": "integer", + "description": "SMTP server port", + "x-example": 25, + "format": "int32" + }, + "smtpUsername": { "type": "string", - "description": "Figma OAuth2 client secret.", - "x-example": "yEpOYn0000000000000000004iIsU5" - } - }, - "required": [ - "$id", - "enabled", - "clientId", - "clientSecret" - ], - "example": { - "$id": "github", - "enabled": false, - "clientId": "byay5H0000000000VtiI40", - "clientSecret": "yEpOYn0000000000000000004iIsU5" - } - }, - "oAuth2Dropbox": { - "description": "OAuth2Dropbox", - "type": "object", - "properties": { - "$id": { + "description": "SMTP server username", + "x-example": "emailuser" + }, + "smtpPassword": { "type": "string", - "description": "OAuth2 provider ID.", - "x-example": "github" + "description": "SMTP server password. This property is write-only and always returned empty.", + "x-example": "smtp-password", + "format": "password" }, - "enabled": { - "type": "boolean", - "description": "OAuth2 provider is active and can be used to create sessions.", - "x-example": false + "smtpSecure": { + "type": "string", + "description": "SMTP server secure protocol", + "x-example": "tls" }, - "appKey": { + "pingCount": { + "type": "integer", + "description": "Number of times the ping was received for this project.", + "x-example": 1, + "format": "int32" + }, + "pingedAt": { "type": "string", - "description": "Dropbox OAuth2 app key.", - "x-example": "jl000000000009t" + "description": "Last ping datetime in ISO 8601 format.", + "x-example": "2020-10-15T06:38:00.000+00:00" }, - "appSecret": { + "labels": { + "type": "array", + "description": "Labels for the project.", + "items": { + "type": "string" + }, + "x-example": [ + "vip" + ] + }, + "status": { "type": "string", - "description": "Dropbox OAuth2 app secret.", - "x-example": "g200000000000vw" - } - }, - "required": [ - "$id", - "enabled", - "appKey", - "appSecret" - ], - "example": { - "$id": "github", - "enabled": false, - "appKey": "jl000000000009t", - "appSecret": "g200000000000vw" - } - }, - "oAuth2Dailymotion": { - "description": "OAuth2Dailymotion", - "type": "object", - "properties": { - "$id": { + "description": "Project status", + "x-example": "active" + }, + "onboarding": { + "type": "object", + "additionalProperties": true, + "description": "Stage progress (completed or skipped) with timestamps and actor types, keyed by stage id.", + "x-example": [] + }, + "authMethods": { + "type": "array", + "description": "List of auth methods.", + "items": { + "$ref": "#\/components\/schemas\/projectAuthMethod" + }, + "x-example": {} + }, + "services": { + "type": "array", + "description": "List of services.", + "items": { + "$ref": "#\/components\/schemas\/projectService" + }, + "x-example": {} + }, + "protocols": { + "type": "array", + "description": "List of protocols.", + "items": { + "$ref": "#\/components\/schemas\/projectProtocol" + }, + "x-example": {} + }, + "blocks": { + "type": "array", + "description": "Project blocks information", + "items": { + "$ref": "#\/components\/schemas\/block" + }, + "x-example": "" + }, + "consoleAccessedAt": { "type": "string", - "description": "OAuth2 provider ID.", - "x-example": "github" + "description": "Last time the project was accessed via console. Used with plan's projectInactivityDays to determine if project is paused.", + "x-example": "2020-10-15T06:38:00.000+00:00" }, - "enabled": { + "wafEnabled": { "type": "boolean", - "description": "OAuth2 provider is active and can be used to create sessions.", - "x-example": false + "description": "Whether WAF enforcement is enabled for the project.", + "x-example": true }, - "apiKey": { - "type": "string", - "description": "Dailymotion OAuth2 API key.", - "x-example": "07a9000000000000067f" + "billingLimits": { + "type": "object", + "description": "Billing limits reached", + "x-example": "", + "allOf": [ + { + "$ref": "#\/components\/schemas\/billingLimits" + } + ], + "nullable": true }, - "apiSecret": { - "type": "string", - "description": "Dailymotion OAuth2 API secret.", - "x-example": "a399a90000000000000000000000000000d90639" - } - }, - "required": [ - "$id", - "enabled", - "apiKey", - "apiSecret" - ], - "example": { - "$id": "github", - "enabled": false, - "apiKey": "07a9000000000000067f", - "apiSecret": "a399a90000000000000000000000000000d90639" - } - }, - "oAuth2Bitbucket": { - "description": "OAuth2Bitbucket", - "type": "object", - "properties": { - "$id": { + "oAuth2ServerEnabled": { + "type": "boolean", + "description": "OAuth2 server status", + "x-example": false, + "nullable": true + }, + "oAuth2ServerAuthorizationUrl": { "type": "string", - "description": "OAuth2 provider ID.", - "x-example": "github" + "description": "OAuth2 server authorization URL", + "x-example": "https:\/\/cloud.appwrite.io\/oauth2\/.well-known\/openid-configuration", + "nullable": true }, - "enabled": { + "oAuth2ServerScopes": { + "type": "array", + "description": "OAuth2 server allowed scopes", + "items": { + "type": "string" + }, + "x-example": [ + "read", + "write" + ], + "nullable": true + }, + "oAuth2ServerDefaultScopes": { + "type": "array", + "description": "OAuth2 server scopes used when an authorization request omits the scope parameter", + "items": { + "type": "string" + }, + "x-example": [ + "read" + ], + "nullable": true + }, + "oAuth2ServerAuthorizationDetailsTypes": { + "type": "array", + "description": "OAuth2 server accepted RFC 9396 authorization_details types", + "items": { + "type": "string" + }, + "x-example": [ + "calendar" + ], + "nullable": true + }, + "oAuth2ServerAccessTokenDuration": { + "type": "integer", + "description": "OAuth2 server access token duration in seconds for confidential clients", + "x-example": 3600, + "format": "int32", + "nullable": true + }, + "oAuth2ServerRefreshTokenDuration": { + "type": "integer", + "description": "OAuth2 server refresh token duration in seconds for confidential clients", + "x-example": 86400, + "format": "int32", + "nullable": true + }, + "oAuth2ServerPublicAccessTokenDuration": { + "type": "integer", + "description": "OAuth2 server access token duration in seconds for public clients (SPAs, mobile, native)", + "x-example": 3600, + "format": "int32", + "nullable": true + }, + "oAuth2ServerPublicRefreshTokenDuration": { + "type": "integer", + "description": "OAuth2 server refresh token duration in seconds for public clients (SPAs, mobile, native)", + "x-example": 2592000, + "format": "int32", + "nullable": true + }, + "oAuth2ServerConfidentialPkce": { "type": "boolean", - "description": "OAuth2 provider is active and can be used to create sessions.", - "x-example": false + "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.", + "x-example": false, + "nullable": true }, - "key": { + "oAuth2ServerVerificationUrl": { "type": "string", - "description": "Bitbucket OAuth2 key.", - "x-example": "Knt70000000000ByRc" + "description": "URL to your application page where users enter the device flow user code. Empty when the Device Authorization Grant is not configured.", + "x-example": "https:\/\/cloud.appwrite.io\/device", + "nullable": true }, - "secret": { + "oAuth2ServerUserCodeLength": { + "type": "integer", + "description": "Number of characters in the device flow user code, excluding the formatting separator.", + "x-example": 8, + "format": "int32", + "nullable": true + }, + "oAuth2ServerUserCodeFormat": { "type": "string", - "description": "Bitbucket OAuth2 secret.", - "x-example": "NMfLZJ00000000000000000000TLQdDx" + "description": "Character set for device flow user codes: `numeric`, `alphabetic`, or `alphanumeric`.", + "x-example": "alphanumeric", + "nullable": true + }, + "oAuth2ServerDeviceCodeDuration": { + "type": "integer", + "description": "Lifetime in seconds of device flow device codes and user codes.", + "x-example": 600, + "format": "int32", + "nullable": true + }, + "oAuth2ServerDiscoveryUrl": { + "type": "string", + "description": "OAuth2 server discovery URL", + "x-example": "https:\/\/auth.example.com\/.well-known\/openid-configuration", + "nullable": true } }, "required": [ "$id", - "enabled", - "key", - "secret" + "$createdAt", + "$updatedAt", + "name", + "teamId", + "region", + "devKeys", + "smtpEnabled", + "smtpSenderName", + "smtpSenderEmail", + "smtpReplyToName", + "smtpReplyToEmail", + "smtpHost", + "smtpPort", + "smtpUsername", + "smtpPassword", + "smtpSecure", + "pingCount", + "pingedAt", + "labels", + "status", + "onboarding", + "authMethods", + "services", + "protocols", + "blocks", + "consoleAccessedAt", + "wafEnabled" ], "example": { - "$id": "github", - "enabled": false, - "key": "Knt70000000000ByRc", - "secret": "NMfLZJ00000000000000000000TLQdDx" + "$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", + "devKeys": {}, + "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": "", + "oAuth2ServerEnabled": false, + "oAuth2ServerAuthorizationUrl": "https:\/\/cloud.appwrite.io\/oauth2\/.well-known\/openid-configuration", + "oAuth2ServerScopes": [ + "read", + "write" + ], + "oAuth2ServerDefaultScopes": [ + "read" + ], + "oAuth2ServerAuthorizationDetailsTypes": [ + "calendar" + ], + "oAuth2ServerAccessTokenDuration": 3600, + "oAuth2ServerRefreshTokenDuration": 86400, + "oAuth2ServerPublicAccessTokenDuration": 3600, + "oAuth2ServerPublicRefreshTokenDuration": 2592000, + "oAuth2ServerConfidentialPkce": false, + "oAuth2ServerVerificationUrl": "https:\/\/cloud.appwrite.io\/device", + "oAuth2ServerUserCodeLength": 8, + "oAuth2ServerUserCodeFormat": "alphanumeric", + "oAuth2ServerDeviceCodeDuration": 600, + "oAuth2ServerDiscoveryUrl": "https:\/\/auth.example.com\/.well-known\/openid-configuration" } }, - "oAuth2Bitly": { - "description": "OAuth2Bitly", + "projectAuthMethod": { + "description": "ProjectAuthMethod", "type": "object", "properties": { "$id": { "type": "string", - "description": "OAuth2 provider ID.", - "x-example": "github" + "description": "Auth method ID.", + "x-example": "email-password", + "enum": [ + "email-password", + "magic-url", + "email-otp", + "anonymous", + "invites", + "jwt", + "phone" + ], + "x-enum-name": "ProjectAuthMethodId" }, "enabled": { "type": "boolean", - "description": "OAuth2 provider is active and can be used to create sessions.", + "description": "Auth method status.", "x-example": false - }, - "clientId": { - "type": "string", - "description": "Bitly OAuth2 client ID.", - "x-example": "d95151000000000000000000000000000067af9b" - }, - "clientSecret": { - "type": "string", - "description": "Bitly OAuth2 client secret.", - "x-example": "a13e250000000000000000000000000000d73095" } }, "required": [ "$id", - "enabled", - "clientId", - "clientSecret" + "enabled" ], "example": { - "$id": "github", - "enabled": false, - "clientId": "d95151000000000000000000000000000067af9b", - "clientSecret": "a13e250000000000000000000000000000d73095" + "$id": "email-password", + "enabled": false } }, - "oAuth2Box": { - "description": "OAuth2Box", + "projectService": { + "description": "ProjectService", "type": "object", "properties": { "$id": { "type": "string", - "description": "OAuth2 provider ID.", - "x-example": "github" + "description": "Service ID.", + "x-example": "sites", + "enum": [ + "account", + "avatars", + "databases", + "tablesdb", + "locale", + "health", + "project", + "storage", + "teams", + "users", + "vcs", + "sites", + "functions", + "proxy", + "graphql", + "migrations", + "messaging", + "advisor" + ], + "x-enum-name": "ProjectServiceId" }, "enabled": { "type": "boolean", - "description": "OAuth2 provider is active and can be used to create sessions.", + "description": "Service status.", "x-example": false - }, - "clientId": { - "type": "string", - "description": "Box OAuth2 client ID.", - "x-example": "deglcs00000000000000000000x2og6y" - }, - "clientSecret": { - "type": "string", - "description": "Box OAuth2 client secret.", - "x-example": "OKM1f100000000000000000000eshEif" } }, "required": [ "$id", - "enabled", - "clientId", - "clientSecret" + "enabled" ], "example": { - "$id": "github", - "enabled": false, - "clientId": "deglcs00000000000000000000x2og6y", - "clientSecret": "OKM1f100000000000000000000eshEif" + "$id": "sites", + "enabled": false } }, - "oAuth2Autodesk": { - "description": "OAuth2Autodesk", + "projectProtocol": { + "description": "ProjectProtocol", "type": "object", "properties": { "$id": { "type": "string", - "description": "OAuth2 provider ID.", - "x-example": "github" + "description": "Protocol ID.", + "x-example": "graphql", + "enum": [ + "rest", + "graphql", + "websocket" + ], + "x-enum-name": "ProjectProtocolId" }, "enabled": { "type": "boolean", - "description": "OAuth2 provider is active and can be used to create sessions.", + "description": "Protocol status.", "x-example": false - }, - "clientId": { - "type": "string", - "description": "Autodesk OAuth2 client ID.", - "x-example": "5zw90v00000000000000000000kVYXN7" - }, - "clientSecret": { - "type": "string", - "description": "Autodesk OAuth2 client secret.", - "x-example": "7I000000000000MW" } }, "required": [ "$id", - "enabled", - "clientId", - "clientSecret" + "enabled" ], "example": { - "$id": "github", - "enabled": false, - "clientId": "5zw90v00000000000000000000kVYXN7", - "clientSecret": "7I000000000000MW" + "$id": "graphql", + "enabled": false } }, - "oAuth2Google": { - "description": "OAuth2Google", + "webhook": { + "description": "Webhook", "type": "object", "properties": { "$id": { "type": "string", - "description": "OAuth2 provider ID.", - "x-example": "github" + "description": "Webhook ID.", + "x-example": "5e5ea5c16897e" }, - "enabled": { - "type": "boolean", - "description": "OAuth2 provider is active and can be used to create sessions.", - "x-example": false + "$createdAt": { + "type": "string", + "description": "Webhook creation date in ISO 8601 format.", + "x-example": "2020-10-15T06:38:00.000+00:00" }, - "clientId": { + "$updatedAt": { "type": "string", - "description": "Google OAuth2 client ID.", - "x-example": "120000000095-92ifjb00000000000000000000g7ijfb.apps.googleusercontent.com" + "description": "Webhook update date in ISO 8601 format.", + "x-example": "2020-10-15T06:38:00.000+00:00" }, - "clientSecret": { + "name": { "type": "string", - "description": "Google OAuth2 client secret.", - "x-example": "GOCSPX-2k8gsR0000000000000000VNahJj" + "description": "Webhook name.", + "x-example": "My Webhook" }, - "prompt": { + "url": { + "type": "string", + "description": "Webhook URL endpoint.", + "x-example": "https:\/\/example.com\/webhook" + }, + "events": { "type": "array", - "description": "Google OAuth2 prompt values.", + "description": "Webhook trigger events.", "items": { - "type": "string", - "enum": [ - "none", - "consent", - "select_account" - ] + "type": "string" }, "x-example": [ - "consent" + "databases.tables.update", + "databases.collections.update" ] - } - }, - "required": [ - "$id", - "enabled", - "clientId", - "clientSecret", - "prompt" - ], - "example": { - "$id": "github", - "enabled": false, - "clientId": "120000000095-92ifjb00000000000000000000g7ijfb.apps.googleusercontent.com", - "clientSecret": "GOCSPX-2k8gsR0000000000000000VNahJj", - "prompt": [ - "consent" - ] - } - }, - "oAuth2Zoom": { - "description": "OAuth2Zoom", - "type": "object", - "properties": { - "$id": { - "type": "string", - "description": "OAuth2 provider ID.", - "x-example": "github" }, - "enabled": { + "tls": { "type": "boolean", - "description": "OAuth2 provider is active and can be used to create sessions.", - "x-example": false + "description": "Indicates if SSL \/ TLS certificate verification is enabled.", + "x-example": true }, - "clientId": { + "authUsername": { "type": "string", - "description": "Zoom OAuth2 client ID.", - "x-example": "QMAC00000000000000w0AQ" + "description": "HTTP basic authentication username.", + "x-example": "username" }, - "clientSecret": { + "authPassword": { "type": "string", - "description": "Zoom OAuth2 client secret.", - "x-example": "GAWsG4000000000000000000007U01ON" - } - }, - "required": [ - "$id", - "enabled", - "clientId", - "clientSecret" - ], - "example": { - "$id": "github", - "enabled": false, - "clientId": "QMAC00000000000000w0AQ", - "clientSecret": "GAWsG4000000000000000000007U01ON" - } - }, - "oAuth2Zoho": { - "description": "OAuth2Zoho", - "type": "object", - "properties": { - "$id": { + "description": "HTTP basic authentication password.", + "x-example": "webhook-password", + "format": "password" + }, + "secret": { "type": "string", - "description": "OAuth2 provider ID.", - "x-example": "github" + "description": "Signature key which can be used to validate incoming webhook payloads. Only returned on creation and secret rotation.", + "x-example": "ad3d581ca230e2b7059c545e5a" }, "enabled": { "type": "boolean", - "description": "OAuth2 provider is active and can be used to create sessions.", - "x-example": false + "description": "Indicates if this webhook is enabled.", + "x-example": true }, - "clientId": { + "logs": { "type": "string", - "description": "Zoho OAuth2 client ID.", - "x-example": "1000.83C178000000000000000000RPNX0B" + "description": "Webhook error logs from the most recent failure.", + "x-example": "Failed to connect to remote server." }, - "clientSecret": { - "type": "string", - "description": "Zoho OAuth2 client secret.", - "x-example": "fb5cac000000000000000000000000000000a68f6e" + "attempts": { + "type": "integer", + "description": "Number of consecutive failed webhook attempts.", + "x-example": 10, + "format": "int32" } }, "required": [ "$id", + "$createdAt", + "$updatedAt", + "name", + "url", + "events", + "tls", + "authUsername", + "authPassword", + "secret", "enabled", - "clientId", - "clientSecret" + "logs", + "attempts" ], "example": { - "$id": "github", - "enabled": false, - "clientId": "1000.83C178000000000000000000RPNX0B", - "clientSecret": "fb5cac000000000000000000000000000000a68f6e" + "$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 } }, - "oAuth2Yandex": { - "description": "OAuth2Yandex", + "key": { + "description": "Key", "type": "object", "properties": { "$id": { "type": "string", - "description": "OAuth2 provider ID.", - "x-example": "github" + "description": "Key ID.", + "x-example": "5e5ea5c16897e" }, - "enabled": { - "type": "boolean", - "description": "OAuth2 provider is active and can be used to create sessions.", - "x-example": false + "$createdAt": { + "type": "string", + "description": "Key creation date in ISO 8601 format.", + "x-example": "2020-10-15T06:38:00.000+00:00" }, - "clientId": { + "$updatedAt": { "type": "string", - "description": "Yandex OAuth2 client ID.", - "x-example": "6a8a6a0000000000000000000091483c" + "description": "Key update date in ISO 8601 format.", + "x-example": "2020-10-15T06:38:00.000+00:00" }, - "clientSecret": { + "name": { "type": "string", - "description": "Yandex OAuth2 client secret.", - "x-example": "bbf98500000000000000000000c75a63" - } - }, - "required": [ - "$id", - "enabled", - "clientId", - "clientSecret" - ], - "example": { - "$id": "github", - "enabled": false, - "clientId": "6a8a6a0000000000000000000091483c", - "clientSecret": "bbf98500000000000000000000c75a63" - } - }, - "oAuth2X": { - "description": "OAuth2X", - "type": "object", - "properties": { - "$id": { + "description": "Key name.", + "x-example": "My API Key" + }, + "expire": { "type": "string", - "description": "OAuth2 provider ID.", - "x-example": "github" + "description": "Key expiration date in ISO 8601 format.", + "x-example": "2020-10-15T06:38:00.000+00:00" }, - "enabled": { - "type": "boolean", - "description": "OAuth2 provider is active and can be used to create sessions.", - "x-example": false + "scopes": { + "type": "array", + "description": "Allowed permission scopes.", + "items": { + "type": "string" + }, + "x-example": "users.read" }, - "customerKey": { + "secret": { "type": "string", - "description": "X OAuth2 customer key.", - "x-example": "slzZV0000000000000NFLaWT" + "description": "Secret key.", + "x-example": "919c2d18fb5d4...a2ae413da83346ad2" }, - "secretKey": { + "accessedAt": { "type": "string", - "description": "X OAuth2 secret key.", - "x-example": "tkEPkp00000000000000000000000000000000000000FTxbI9" + "description": "Most recent access date in ISO 8601 format. This attribute is only updated again after 24 hours.", + "x-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" + }, + "x-example": "appwrite:flutter" } }, "required": [ "$id", - "enabled", - "customerKey", - "secretKey" + "$createdAt", + "$updatedAt", + "name", + "expire", + "scopes", + "secret", + "accessedAt", + "sdks" ], "example": { - "$id": "github", - "enabled": false, - "customerKey": "slzZV0000000000000NFLaWT", - "secretKey": "tkEPkp00000000000000000000000000000000000000FTxbI9" + "$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" } }, - "oAuth2WordPress": { - "description": "OAuth2WordPress", + "ephemeralKey": { + "description": "Ephemeral Key", "type": "object", "properties": { "$id": { "type": "string", - "description": "OAuth2 provider ID.", - "x-example": "github" + "description": "Key ID.", + "x-example": "5e5ea5c16897e" }, - "enabled": { - "type": "boolean", - "description": "OAuth2 provider is active and can be used to create sessions.", - "x-example": false + "$createdAt": { + "type": "string", + "description": "Key creation date in ISO 8601 format.", + "x-example": "2020-10-15T06:38:00.000+00:00" }, - "clientId": { + "$updatedAt": { "type": "string", - "description": "WordPress OAuth2 client ID.", - "x-example": "130005" + "description": "Key update date in ISO 8601 format.", + "x-example": "2020-10-15T06:38:00.000+00:00" }, - "clientSecret": { + "name": { "type": "string", - "description": "WordPress OAuth2 client secret.", - "x-example": "PlBfJS0000000000000000000000000000000000000000000000000000EdUZJk" - } - }, - "required": [ - "$id", - "enabled", - "clientId", - "clientSecret" - ], - "example": { - "$id": "github", - "enabled": false, - "clientId": "130005", - "clientSecret": "PlBfJS0000000000000000000000000000000000000000000000000000EdUZJk" - } - }, - "oAuth2Twitch": { - "description": "OAuth2Twitch", - "type": "object", - "properties": { - "$id": { + "description": "Key name.", + "x-example": "My API Key" + }, + "expire": { "type": "string", - "description": "OAuth2 provider ID.", - "x-example": "github" + "description": "Key expiration date in ISO 8601 format.", + "x-example": "2020-10-15T06:38:00.000+00:00" }, - "enabled": { - "type": "boolean", - "description": "OAuth2 provider is active and can be used to create sessions.", - "x-example": false + "scopes": { + "type": "array", + "description": "Allowed permission scopes.", + "items": { + "type": "string" + }, + "x-example": "users.read" }, - "clientId": { + "secret": { "type": "string", - "description": "Twitch OAuth2 client ID.", - "x-example": "vvi0in000000000000000000ikmt9p" + "description": "Secret key.", + "x-example": "919c2d18fb5d4...a2ae413da83346ad2" }, - "clientSecret": { + "accessedAt": { "type": "string", - "description": "Twitch OAuth2 client secret.", - "x-example": "pmapue000000000000000000zylw3v" + "description": "Most recent access date in ISO 8601 format. This attribute is only updated again after 24 hours.", + "x-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" + }, + "x-example": "appwrite:flutter" } }, "required": [ "$id", - "enabled", - "clientId", - "clientSecret" + "$createdAt", + "$updatedAt", + "name", + "expire", + "scopes", + "secret", + "accessedAt", + "sdks" ], "example": { - "$id": "github", - "enabled": false, - "clientId": "vvi0in000000000000000000ikmt9p", - "clientSecret": "pmapue000000000000000000zylw3v" + "$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" } }, - "oAuth2Stripe": { - "description": "OAuth2Stripe", + "devKey": { + "description": "DevKey", "type": "object", "properties": { "$id": { "type": "string", - "description": "OAuth2 provider ID.", - "x-example": "github" + "description": "Key ID.", + "x-example": "5e5ea5c16897e" }, - "enabled": { - "type": "boolean", - "description": "OAuth2 provider is active and can be used to create sessions.", - "x-example": false + "$createdAt": { + "type": "string", + "description": "Key creation date in ISO 8601 format.", + "x-example": "2020-10-15T06:38:00.000+00:00" }, - "clientId": { + "$updatedAt": { "type": "string", - "description": "Stripe OAuth2 client ID.", - "x-example": "ca_UKibXX0000000000000000000006byvR" + "description": "Key update date in ISO 8601 format.", + "x-example": "2020-10-15T06:38:00.000+00:00" }, - "apiSecretKey": { + "name": { "type": "string", - "description": "Stripe OAuth2 API secret key.", - "x-example": "sk_51SfOd000000000000000000000000000000000000000000000000000000000000000000000000000000000000000QGWYfp" + "description": "Key name.", + "x-example": "Dev API Key" + }, + "expire": { + "type": "string", + "description": "Key expiration date in ISO 8601 format.", + "x-example": "2020-10-15T06:38:00.000+00:00" + }, + "secret": { + "type": "string", + "description": "Secret key.", + "x-example": "919c2d18fb5d4...a2ae413da83346ad2" + }, + "accessedAt": { + "type": "string", + "description": "Most recent access date in ISO 8601 format. This attribute is only updated again after 24 hours.", + "x-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" + }, + "x-example": "appwrite:flutter" } }, "required": [ "$id", - "enabled", - "clientId", - "apiSecretKey" + "$createdAt", + "$updatedAt", + "name", + "expire", + "secret", + "accessedAt", + "sdks" ], "example": { - "$id": "github", - "enabled": false, - "clientId": "ca_UKibXX0000000000000000000006byvR", - "apiSecretKey": "sk_51SfOd000000000000000000000000000000000000000000000000000000000000000000000000000000000000000QGWYfp" + "$id": "5e5ea5c16897e", + "$createdAt": "2020-10-15T06:38:00.000+00:00", + "$updatedAt": "2020-10-15T06:38:00.000+00:00", + "name": "Dev API Key", + "expire": "2020-10-15T06:38:00.000+00:00", + "secret": "919c2d18fb5d4...a2ae413da83346ad2", + "accessedAt": "2020-10-15T06:38:00.000+00:00", + "sdks": "appwrite:flutter" } }, - "oAuth2Spotify": { - "description": "OAuth2Spotify", + "mockNumber": { + "description": "Mock Number", "type": "object", "properties": { - "$id": { + "number": { "type": "string", - "description": "OAuth2 provider ID.", - "x-example": "github" + "description": "Mock phone number for testing phone authentication. Useful for testing phone authentication without sending an SMS.", + "x-example": "+1612842323" }, - "enabled": { - "type": "boolean", - "description": "OAuth2 provider is active and can be used to create sessions.", - "x-example": false + "otp": { + "type": "string", + "description": "Mock OTP for the number. ", + "x-example": "123456" }, - "clientId": { + "$createdAt": { "type": "string", - "description": "Spotify OAuth2 client ID.", - "x-example": "6ec271000000000000000000009beace" + "description": "Attribute creation date in ISO 8601 format.", + "x-example": "2020-10-15T06:38:00.000+00:00" }, - "clientSecret": { + "$updatedAt": { "type": "string", - "description": "Spotify OAuth2 client secret.", - "x-example": "db068a000000000000000000008b5b9f" + "description": "Attribute update date in ISO 8601 format.", + "x-example": "2020-10-15T06:38:00.000+00:00" } }, "required": [ - "$id", - "enabled", - "clientId", - "clientSecret" + "number", + "otp", + "$createdAt", + "$updatedAt" ], "example": { - "$id": "github", - "enabled": false, - "clientId": "6ec271000000000000000000009beace", - "clientSecret": "db068a000000000000000000008b5b9f" + "number": "+1612842323", + "otp": "123456", + "$createdAt": "2020-10-15T06:38:00.000+00:00", + "$updatedAt": "2020-10-15T06:38:00.000+00:00" } }, - "oAuth2Slack": { - "description": "OAuth2Slack", + "oAuth2Github": { + "description": "OAuth2GitHub", "type": "object", "properties": { "$id": { @@ -103610,13 +103257,13 @@ }, "clientId": { "type": "string", - "description": "Slack OAuth2 client ID.", - "x-example": "23000000089.15000000000023" + "description": "GitHub OAuth2 client ID. For GitHub Apps, use the \"App ID\" when both an App ID and client ID are available.", + "x-example": "e4d87900000000540733" }, "clientSecret": { "type": "string", - "description": "Slack OAuth2 client secret.", - "x-example": "81656000000000000000000000f3d2fd" + "description": "GitHub OAuth2 client secret.", + "x-example": "5e07c00000000000000000000000000000198bcc" } }, "required": [ @@ -103628,12 +103275,12 @@ "example": { "$id": "github", "enabled": false, - "clientId": "23000000089.15000000000023", - "clientSecret": "81656000000000000000000000f3d2fd" + "clientId": "e4d87900000000540733", + "clientSecret": "5e07c00000000000000000000000000000198bcc" } }, - "oAuth2Podio": { - "description": "OAuth2Podio", + "oAuth2Discord": { + "description": "OAuth2Discord", "type": "object", "properties": { "$id": { @@ -103648,13 +103295,13 @@ }, "clientId": { "type": "string", - "description": "Podio OAuth2 client ID.", - "x-example": "appwrite-oauth-test-app" + "description": "Discord OAuth2 client ID.", + "x-example": "950722000000343754" }, "clientSecret": { "type": "string", - "description": "Podio OAuth2 client secret.", - "x-example": "Rn247T0000000000000000000000000000000000000000000000000000W2zWTN" + "description": "Discord OAuth2 client secret.", + "x-example": "YmPXnM000000000000000000002zFg5D" } }, "required": [ @@ -103666,12 +103313,12 @@ "example": { "$id": "github", "enabled": false, - "clientId": "appwrite-oauth-test-app", - "clientSecret": "Rn247T0000000000000000000000000000000000000000000000000000W2zWTN" + "clientId": "950722000000343754", + "clientSecret": "YmPXnM000000000000000000002zFg5D" } }, - "oAuth2Notion": { - "description": "OAuth2Notion", + "oAuth2Figma": { + "description": "OAuth2Figma", "type": "object", "properties": { "$id": { @@ -103684,32 +103331,32 @@ "description": "OAuth2 provider is active and can be used to create sessions.", "x-example": false }, - "oauthClientId": { + "clientId": { "type": "string", - "description": "Notion OAuth2 client ID.", - "x-example": "341d8700-0000-0000-0000-000000446ee3" + "description": "Figma OAuth2 client ID.", + "x-example": "byay5H0000000000VtiI40" }, - "oauthClientSecret": { + "clientSecret": { "type": "string", - "description": "Notion OAuth2 client secret.", - "x-example": "secret_dLUr4b000000000000000000000000000000lFHAa9" + "description": "Figma OAuth2 client secret.", + "x-example": "yEpOYn0000000000000000004iIsU5" } }, "required": [ "$id", "enabled", - "oauthClientId", - "oauthClientSecret" + "clientId", + "clientSecret" ], "example": { "$id": "github", "enabled": false, - "oauthClientId": "341d8700-0000-0000-0000-000000446ee3", - "oauthClientSecret": "secret_dLUr4b000000000000000000000000000000lFHAa9" + "clientId": "byay5H0000000000VtiI40", + "clientSecret": "yEpOYn0000000000000000004iIsU5" } }, - "oAuth2Salesforce": { - "description": "OAuth2Salesforce", + "oAuth2Dropbox": { + "description": "OAuth2Dropbox", "type": "object", "properties": { "$id": { @@ -103722,32 +103369,32 @@ "description": "OAuth2 provider is active and can be used to create sessions.", "x-example": false }, - "customerKey": { + "appKey": { "type": "string", - "description": "Salesforce OAuth2 consumer key.", - "x-example": "3MVG9I0000000000000000000000000000000000000000000000000000000000000000000000000C5Aejq" + "description": "Dropbox OAuth2 app key.", + "x-example": "jl000000000009t" }, - "customerSecret": { + "appSecret": { "type": "string", - "description": "Salesforce OAuth2 consumer secret.", - "x-example": "3w000000000000e2" + "description": "Dropbox OAuth2 app secret.", + "x-example": "g200000000000vw" } }, "required": [ "$id", "enabled", - "customerKey", - "customerSecret" + "appKey", + "appSecret" ], "example": { "$id": "github", "enabled": false, - "customerKey": "3MVG9I0000000000000000000000000000000000000000000000000000000000000000000000000C5Aejq", - "customerSecret": "3w000000000000e2" + "appKey": "jl000000000009t", + "appSecret": "g200000000000vw" } }, - "oAuth2Yahoo": { - "description": "OAuth2Yahoo", + "oAuth2Dailymotion": { + "description": "OAuth2Dailymotion", "type": "object", "properties": { "$id": { @@ -103760,32 +103407,32 @@ "description": "OAuth2 provider is active and can be used to create sessions.", "x-example": false }, - "clientId": { + "apiKey": { "type": "string", - "description": "Yahoo OAuth2 client ID.", - "x-example": "dj0yJm000000000000000000000000000000000000000000000000000000000000000000000000000000000000Z4PWRm" + "description": "Dailymotion OAuth2 API key.", + "x-example": "07a9000000000000067f" }, - "clientSecret": { + "apiSecret": { "type": "string", - "description": "Yahoo OAuth2 client secret.", - "x-example": "cf978f0000000000000000000000000000c5e2e9" + "description": "Dailymotion OAuth2 API secret.", + "x-example": "a399a90000000000000000000000000000d90639" } }, "required": [ "$id", "enabled", - "clientId", - "clientSecret" + "apiKey", + "apiSecret" ], "example": { "$id": "github", "enabled": false, - "clientId": "dj0yJm000000000000000000000000000000000000000000000000000000000000000000000000000000000000Z4PWRm", - "clientSecret": "cf978f0000000000000000000000000000c5e2e9" + "apiKey": "07a9000000000000067f", + "apiSecret": "a399a90000000000000000000000000000d90639" } }, - "oAuth2Linkedin": { - "description": "OAuth2Linkedin", + "oAuth2Bitbucket": { + "description": "OAuth2Bitbucket", "type": "object", "properties": { "$id": { @@ -103798,32 +103445,32 @@ "description": "OAuth2 provider is active and can be used to create sessions.", "x-example": false }, - "clientId": { + "key": { "type": "string", - "description": "LinkedIn OAuth2 client ID.", - "x-example": "770000000000dv" + "description": "Bitbucket OAuth2 key.", + "x-example": "Knt70000000000ByRc" }, - "primaryClientSecret": { + "secret": { "type": "string", - "description": "LinkedIn OAuth2 primary client secret.", - "x-example": "WPL_AP1.2Bf0000000000000.\/HtlYw==" + "description": "Bitbucket OAuth2 secret.", + "x-example": "NMfLZJ00000000000000000000TLQdDx" } }, "required": [ "$id", "enabled", - "clientId", - "primaryClientSecret" + "key", + "secret" ], "example": { "$id": "github", "enabled": false, - "clientId": "770000000000dv", - "primaryClientSecret": "WPL_AP1.2Bf0000000000000.\/HtlYw==" + "key": "Knt70000000000ByRc", + "secret": "NMfLZJ00000000000000000000TLQdDx" } }, - "oAuth2Disqus": { - "description": "OAuth2Disqus", + "oAuth2Bitly": { + "description": "OAuth2Bitly", "type": "object", "properties": { "$id": { @@ -103836,32 +103483,32 @@ "description": "OAuth2 provider is active and can be used to create sessions.", "x-example": false }, - "publicKey": { + "clientId": { "type": "string", - "description": "Disqus OAuth2 public key.", - "x-example": "cgegH70000000000000000000000000000000000000000000000000000Hr1nYX" + "description": "Bitly OAuth2 client ID.", + "x-example": "d95151000000000000000000000000000067af9b" }, - "secretKey": { + "clientSecret": { "type": "string", - "description": "Disqus OAuth2 secret key.", - "x-example": "W7Bykj00000000000000000000000000000000000000000000000000003o43w9" + "description": "Bitly OAuth2 client secret.", + "x-example": "a13e250000000000000000000000000000d73095" } }, "required": [ "$id", "enabled", - "publicKey", - "secretKey" + "clientId", + "clientSecret" ], "example": { "$id": "github", "enabled": false, - "publicKey": "cgegH70000000000000000000000000000000000000000000000000000Hr1nYX", - "secretKey": "W7Bykj00000000000000000000000000000000000000000000000000003o43w9" + "clientId": "d95151000000000000000000000000000067af9b", + "clientSecret": "a13e250000000000000000000000000000d73095" } }, - "oAuth2Amazon": { - "description": "OAuth2Amazon", + "oAuth2Box": { + "description": "OAuth2Box", "type": "object", "properties": { "$id": { @@ -103876,13 +103523,13 @@ }, "clientId": { "type": "string", - "description": "Amazon OAuth2 client ID.", - "x-example": "amzn1.application-oa2-client.87400c00000000000000000000063d5b2" + "description": "Box OAuth2 client ID.", + "x-example": "deglcs00000000000000000000x2og6y" }, "clientSecret": { "type": "string", - "description": "Amazon OAuth2 client secret.", - "x-example": "79ffe4000000000000000000000000000000000000000000000000000002de55" + "description": "Box OAuth2 client secret.", + "x-example": "OKM1f100000000000000000000eshEif" } }, "required": [ @@ -103894,12 +103541,12 @@ "example": { "$id": "github", "enabled": false, - "clientId": "amzn1.application-oa2-client.87400c00000000000000000000063d5b2", - "clientSecret": "79ffe4000000000000000000000000000000000000000000000000000002de55" + "clientId": "deglcs00000000000000000000x2og6y", + "clientSecret": "OKM1f100000000000000000000eshEif" } }, - "oAuth2Etsy": { - "description": "OAuth2Etsy", + "oAuth2Autodesk": { + "description": "OAuth2Autodesk", "type": "object", "properties": { "$id": { @@ -103912,32 +103559,32 @@ "description": "OAuth2 provider is active and can be used to create sessions.", "x-example": false }, - "keyString": { + "clientId": { "type": "string", - "description": "Etsy OAuth2 keystring.", - "x-example": "nsgzxh0000000000008j85a2" + "description": "Autodesk OAuth2 client ID.", + "x-example": "5zw90v00000000000000000000kVYXN7" }, - "sharedSecret": { + "clientSecret": { "type": "string", - "description": "Etsy OAuth2 shared secret.", - "x-example": "tp000000ru" + "description": "Autodesk OAuth2 client secret.", + "x-example": "7I000000000000MW" } }, "required": [ "$id", "enabled", - "keyString", - "sharedSecret" + "clientId", + "clientSecret" ], "example": { "$id": "github", "enabled": false, - "keyString": "nsgzxh0000000000008j85a2", - "sharedSecret": "tp000000ru" + "clientId": "5zw90v00000000000000000000kVYXN7", + "clientSecret": "7I000000000000MW" } }, - "oAuth2Facebook": { - "description": "OAuth2Facebook", + "oAuth2Google": { + "description": "OAuth2Google", "type": "object", "properties": { "$id": { @@ -103950,32 +103597,51 @@ "description": "OAuth2 provider is active and can be used to create sessions.", "x-example": false }, - "appId": { + "clientId": { "type": "string", - "description": "Facebook OAuth2 app ID.", - "x-example": "260600000007694" + "description": "Google OAuth2 client ID.", + "x-example": "120000000095-92ifjb00000000000000000000g7ijfb.apps.googleusercontent.com" }, - "appSecret": { + "clientSecret": { "type": "string", - "description": "Facebook OAuth2 app secret.", - "x-example": "2d0b2800000000000000000000d38af4" + "description": "Google OAuth2 client secret.", + "x-example": "GOCSPX-2k8gsR0000000000000000VNahJj" + }, + "prompt": { + "type": "array", + "description": "Google OAuth2 prompt values.", + "items": { + "type": "string", + "enum": [ + "none", + "consent", + "select_account" + ] + }, + "x-example": [ + "consent" + ] } }, "required": [ "$id", "enabled", - "appId", - "appSecret" + "clientId", + "clientSecret", + "prompt" ], "example": { "$id": "github", "enabled": false, - "appId": "260600000007694", - "appSecret": "2d0b2800000000000000000000d38af4" + "clientId": "120000000095-92ifjb00000000000000000000g7ijfb.apps.googleusercontent.com", + "clientSecret": "GOCSPX-2k8gsR0000000000000000VNahJj", + "prompt": [ + "consent" + ] } }, - "oAuth2Tradeshift": { - "description": "OAuth2Tradeshift", + "oAuth2Zoom": { + "description": "OAuth2Zoom", "type": "object", "properties": { "$id": { @@ -103988,32 +103654,32 @@ "description": "OAuth2 provider is active and can be used to create sessions.", "x-example": false }, - "oauth2ClientId": { + "clientId": { "type": "string", - "description": "Tradeshift OAuth2 client ID.", - "x-example": "appwrite-test-org.appwrite-test-app" + "description": "Zoom OAuth2 client ID.", + "x-example": "QMAC00000000000000w0AQ" }, - "oauth2ClientSecret": { + "clientSecret": { "type": "string", - "description": "Tradeshift OAuth2 client secret.", - "x-example": "7cb52700-0000-0000-0000-000000ca5b83" + "description": "Zoom OAuth2 client secret.", + "x-example": "GAWsG4000000000000000000007U01ON" } }, "required": [ "$id", "enabled", - "oauth2ClientId", - "oauth2ClientSecret" + "clientId", + "clientSecret" ], "example": { "$id": "github", "enabled": false, - "oauth2ClientId": "appwrite-test-org.appwrite-test-app", - "oauth2ClientSecret": "7cb52700-0000-0000-0000-000000ca5b83" + "clientId": "QMAC00000000000000w0AQ", + "clientSecret": "GAWsG4000000000000000000007U01ON" } }, - "oAuth2Paypal": { - "description": "OAuth2Paypal", + "oAuth2Zoho": { + "description": "OAuth2Zoho", "type": "object", "properties": { "$id": { @@ -104028,30 +103694,30 @@ }, "clientId": { "type": "string", - "description": "PayPal OAuth2 client ID.", - "x-example": "AdhIEG7-000000000000-0000000000000000000000000000000-0000000000000000000000-2pyB" + "description": "Zoho OAuth2 client ID.", + "x-example": "1000.83C178000000000000000000RPNX0B" }, - "secretKey": { + "clientSecret": { "type": "string", - "description": "PayPal OAuth2 secret key.", - "x-example": "EH8KCXtew--000000000000000000000000000000000000000_C-1_5UP_000000000000000CB7KDp" + "description": "Zoho OAuth2 client secret.", + "x-example": "fb5cac000000000000000000000000000000a68f6e" } }, "required": [ "$id", "enabled", "clientId", - "secretKey" + "clientSecret" ], "example": { "$id": "github", "enabled": false, - "clientId": "AdhIEG7-000000000000-0000000000000000000000000000000-0000000000000000000000-2pyB", - "secretKey": "EH8KCXtew--000000000000000000000000000000000000000_C-1_5UP_000000000000000CB7KDp" + "clientId": "1000.83C178000000000000000000RPNX0B", + "clientSecret": "fb5cac000000000000000000000000000000a68f6e" } }, - "oAuth2Gitlab": { - "description": "OAuth2Gitlab", + "oAuth2Yandex": { + "description": "OAuth2Yandex", "type": "object", "properties": { "$id": { @@ -104064,39 +103730,32 @@ "description": "OAuth2 provider is active and can be used to create sessions.", "x-example": false }, - "applicationId": { - "type": "string", - "description": "GitLab OAuth2 application ID.", - "x-example": "d41ffe0000000000000000000000000000000000000000000000000000d5e252" - }, - "secret": { + "clientId": { "type": "string", - "description": "GitLab OAuth2 secret.", - "x-example": "gloas-838cfa0000000000000000000000000000000000000000000000000000ecbb38" + "description": "Yandex OAuth2 client ID.", + "x-example": "6a8a6a0000000000000000000091483c" }, - "endpoint": { + "clientSecret": { "type": "string", - "description": "GitLab OAuth2 endpoint URL. Defaults to https:\/\/gitlab.com for self-hosted instances.", - "x-example": "https:\/\/gitlab.com" + "description": "Yandex OAuth2 client secret.", + "x-example": "bbf98500000000000000000000c75a63" } }, "required": [ "$id", "enabled", - "applicationId", - "secret", - "endpoint" + "clientId", + "clientSecret" ], "example": { "$id": "github", "enabled": false, - "applicationId": "d41ffe0000000000000000000000000000000000000000000000000000d5e252", - "secret": "gloas-838cfa0000000000000000000000000000000000000000000000000000ecbb38", - "endpoint": "https:\/\/gitlab.com" + "clientId": "6a8a6a0000000000000000000091483c", + "clientSecret": "bbf98500000000000000000000c75a63" } }, - "oAuth2Authentik": { - "description": "OAuth2Authentik", + "oAuth2X": { + "description": "OAuth2X", "type": "object", "properties": { "$id": { @@ -104109,39 +103768,32 @@ "description": "OAuth2 provider is active and can be used to create sessions.", "x-example": false }, - "clientId": { - "type": "string", - "description": "Authentik OAuth2 client ID.", - "x-example": "dTKOPa0000000000000000000000000000e7G8hv" - }, - "clientSecret": { + "customerKey": { "type": "string", - "description": "Authentik OAuth2 client secret.", - "x-example": "ntQadq000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000Hp5WK" + "description": "X OAuth2 customer key.", + "x-example": "slzZV0000000000000NFLaWT" }, - "endpoint": { + "secretKey": { "type": "string", - "description": "Authentik OAuth2 endpoint domain.", - "x-example": "example.authentik.com" + "description": "X OAuth2 secret key.", + "x-example": "tkEPkp00000000000000000000000000000000000000FTxbI9" } }, "required": [ "$id", "enabled", - "clientId", - "clientSecret", - "endpoint" + "customerKey", + "secretKey" ], "example": { "$id": "github", "enabled": false, - "clientId": "dTKOPa0000000000000000000000000000e7G8hv", - "clientSecret": "ntQadq000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000Hp5WK", - "endpoint": "example.authentik.com" + "customerKey": "slzZV0000000000000NFLaWT", + "secretKey": "tkEPkp00000000000000000000000000000000000000FTxbI9" } }, - "oAuth2Auth0": { - "description": "OAuth2Auth0", + "oAuth2WordPress": { + "description": "OAuth2WordPress", "type": "object", "properties": { "$id": { @@ -104156,37 +103808,30 @@ }, "clientId": { "type": "string", - "description": "Auth0 OAuth2 client ID.", - "x-example": "OaOkIA000000000000000000005KLSYq" + "description": "WordPress OAuth2 client ID.", + "x-example": "130005" }, "clientSecret": { "type": "string", - "description": "Auth0 OAuth2 client secret.", - "x-example": "zXz0000-00000000000000000000000000000-00000000000000000000PJafnF" - }, - "endpoint": { - "type": "string", - "description": "Auth0 OAuth2 endpoint domain.", - "x-example": "example.us.auth0.com" + "description": "WordPress OAuth2 client secret.", + "x-example": "PlBfJS0000000000000000000000000000000000000000000000000000EdUZJk" } }, "required": [ "$id", "enabled", "clientId", - "clientSecret", - "endpoint" + "clientSecret" ], "example": { "$id": "github", "enabled": false, - "clientId": "OaOkIA000000000000000000005KLSYq", - "clientSecret": "zXz0000-00000000000000000000000000000-00000000000000000000PJafnF", - "endpoint": "example.us.auth0.com" + "clientId": "130005", + "clientSecret": "PlBfJS0000000000000000000000000000000000000000000000000000EdUZJk" } }, - "oAuth2FusionAuth": { - "description": "OAuth2FusionAuth", + "oAuth2Twitch": { + "description": "OAuth2Twitch", "type": "object", "properties": { "$id": { @@ -104201,37 +103846,30 @@ }, "clientId": { "type": "string", - "description": "FusionAuth OAuth2 client ID.", - "x-example": "b2222c00-0000-0000-0000-000000862097" - }, - "clientSecret": { - "type": "string", - "description": "FusionAuth OAuth2 client secret.", - "x-example": "Jx4s0C0000000000000000000000000000000wGqLsc" + "description": "Twitch OAuth2 client ID.", + "x-example": "vvi0in000000000000000000ikmt9p" }, - "endpoint": { + "clientSecret": { "type": "string", - "description": "FusionAuth OAuth2 endpoint domain.", - "x-example": "example.fusionauth.io" + "description": "Twitch OAuth2 client secret.", + "x-example": "pmapue000000000000000000zylw3v" } }, "required": [ "$id", "enabled", "clientId", - "clientSecret", - "endpoint" + "clientSecret" ], "example": { "$id": "github", "enabled": false, - "clientId": "b2222c00-0000-0000-0000-000000862097", - "clientSecret": "Jx4s0C0000000000000000000000000000000wGqLsc", - "endpoint": "example.fusionauth.io" + "clientId": "vvi0in000000000000000000ikmt9p", + "clientSecret": "pmapue000000000000000000zylw3v" } }, - "oAuth2Keycloak": { - "description": "OAuth2Keycloak", + "oAuth2Stripe": { + "description": "OAuth2Stripe", "type": "object", "properties": { "$id": { @@ -104246,44 +103884,30 @@ }, "clientId": { "type": "string", - "description": "Keycloak OAuth2 client ID.", - "x-example": "appwrite-o0000000st-app" - }, - "clientSecret": { - "type": "string", - "description": "Keycloak OAuth2 client secret.", - "x-example": "jdjrJd00000000000000000000HUsaZO" - }, - "endpoint": { - "type": "string", - "description": "Keycloak OAuth2 endpoint domain.", - "x-example": "keycloak.example.com" + "description": "Stripe OAuth2 client ID.", + "x-example": "ca_UKibXX0000000000000000000006byvR" }, - "realmName": { + "apiSecretKey": { "type": "string", - "description": "Keycloak OAuth2 realm name.", - "x-example": "appwrite-realm" + "description": "Stripe OAuth2 API secret key.", + "x-example": "sk_51SfOd000000000000000000000000000000000000000000000000000000000000000000000000000000000000000QGWYfp" } }, "required": [ "$id", "enabled", "clientId", - "clientSecret", - "endpoint", - "realmName" + "apiSecretKey" ], "example": { "$id": "github", "enabled": false, - "clientId": "appwrite-o0000000st-app", - "clientSecret": "jdjrJd00000000000000000000HUsaZO", - "endpoint": "keycloak.example.com", - "realmName": "appwrite-realm" + "clientId": "ca_UKibXX0000000000000000000006byvR", + "apiSecretKey": "sk_51SfOd000000000000000000000000000000000000000000000000000000000000000000000000000000000000000QGWYfp" } }, - "oAuth2Oidc": { - "description": "OAuth2Oidc", + "oAuth2Spotify": { + "description": "OAuth2Spotify", "type": "object", "properties": { "$id": { @@ -104298,86 +103922,30 @@ }, "clientId": { "type": "string", - "description": "OpenID Connect OAuth2 client ID.", - "x-example": "qibI2x0000000000000000000000000006L2YFoG" + "description": "Spotify OAuth2 client ID.", + "x-example": "6ec271000000000000000000009beace" }, "clientSecret": { "type": "string", - "description": "OpenID Connect OAuth2 client secret.", - "x-example": "Ah68ed000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003qpcHV" - }, - "wellKnownURL": { - "type": "string", - "description": "OpenID Connect well-known configuration URL. When set, authorization, token, and user info endpoints can be discovered automatically.", - "x-example": "https:\/\/myoauth.com\/.well-known\/openid-configuration" - }, - "authorizationURL": { - "type": "string", - "description": "OpenID Connect authorization endpoint URL.", - "x-example": "https:\/\/myoauth.com\/oauth2\/authorize" - }, - "tokenURL": { - "type": "string", - "description": "OpenID Connect token endpoint URL.", - "x-example": "https:\/\/myoauth.com\/oauth2\/token" - }, - "userInfoURL": { - "type": "string", - "description": "OpenID Connect user info endpoint URL.", - "x-example": "https:\/\/myoauth.com\/oauth2\/userinfo" - }, - "prompt": { - "type": "array", - "description": "OpenID Connect prompt values controlling the authentication and consent screens.", - "items": { - "type": "string", - "enum": [ - "none", - "login", - "consent", - "select_account" - ] - }, - "x-example": [ - "consent" - ] - }, - "maxAge": { - "type": "integer", - "description": "Maximum authentication age in seconds. When set, the user must have authenticated within this many seconds.", - "x-example": 3600, - "format": "int32", - "nullable": true + "description": "Spotify OAuth2 client secret.", + "x-example": "db068a000000000000000000008b5b9f" } }, "required": [ "$id", "enabled", "clientId", - "clientSecret", - "wellKnownURL", - "authorizationURL", - "tokenURL", - "userInfoURL", - "prompt" + "clientSecret" ], "example": { "$id": "github", "enabled": false, - "clientId": "qibI2x0000000000000000000000000006L2YFoG", - "clientSecret": "Ah68ed000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003qpcHV", - "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 + "clientId": "6ec271000000000000000000009beace", + "clientSecret": "db068a000000000000000000008b5b9f" } }, - "oAuth2Okta": { - "description": "OAuth2Okta", + "oAuth2Slack": { + "description": "OAuth2Slack", "type": "object", "properties": { "$id": { @@ -104392,44 +103960,30 @@ }, "clientId": { "type": "string", - "description": "Okta OAuth2 client ID.", - "x-example": "0oa00000000000000698" + "description": "Slack OAuth2 client ID.", + "x-example": "23000000089.15000000000023" }, "clientSecret": { "type": "string", - "description": "Okta OAuth2 client secret.", - "x-example": "Kiq0000000000000000000000000000000000000-00000000000H2L5-3SJ-vRV" - }, - "domain": { - "type": "string", - "description": "Okta OAuth2 domain.", - "x-example": "trial-6400025.okta.com" - }, - "authorizationServerId": { - "type": "string", - "description": "Okta OAuth2 authorization server ID.", - "x-example": "aus000000000000000h7z" + "description": "Slack OAuth2 client secret.", + "x-example": "81656000000000000000000000f3d2fd" } }, "required": [ "$id", "enabled", "clientId", - "clientSecret", - "domain", - "authorizationServerId" + "clientSecret" ], "example": { "$id": "github", "enabled": false, - "clientId": "0oa00000000000000698", - "clientSecret": "Kiq0000000000000000000000000000000000000-00000000000H2L5-3SJ-vRV", - "domain": "trial-6400025.okta.com", - "authorizationServerId": "aus000000000000000h7z" + "clientId": "23000000089.15000000000023", + "clientSecret": "81656000000000000000000000f3d2fd" } }, - "oAuth2Kick": { - "description": "OAuth2Kick", + "oAuth2Podio": { + "description": "OAuth2Podio", "type": "object", "properties": { "$id": { @@ -104444,13 +103998,13 @@ }, "clientId": { "type": "string", - "description": "Kick OAuth2 client ID.", - "x-example": "01KQ7C00000000000001MFHS32" + "description": "Podio OAuth2 client ID.", + "x-example": "appwrite-oauth-test-app" }, "clientSecret": { "type": "string", - "description": "Kick OAuth2 client secret.", - "x-example": "34ac5600000000000000000000000000000000000000000000000000e830c8b" + "description": "Podio OAuth2 client secret.", + "x-example": "Rn247T0000000000000000000000000000000000000000000000000000W2zWTN" } }, "required": [ @@ -104462,64 +104016,50 @@ "example": { "$id": "github", "enabled": false, - "clientId": "01KQ7C00000000000001MFHS32", - "clientSecret": "34ac5600000000000000000000000000000000000000000000000000e830c8b" + "clientId": "appwrite-oauth-test-app", + "clientSecret": "Rn247T0000000000000000000000000000000000000000000000000000W2zWTN" } }, - "oAuth2Apple": { - "description": "OAuth2Apple", + "oAuth2Notion": { + "description": "OAuth2Notion", "type": "object", "properties": { "$id": { "type": "string", "description": "OAuth2 provider ID.", - "x-example": "apple" + "x-example": "github" }, "enabled": { "type": "boolean", "description": "OAuth2 provider is active and can be used to create sessions.", "x-example": false }, - "serviceId": { - "type": "string", - "description": "Apple OAuth2 service ID.", - "x-example": "ip.appwrite.app.web" - }, - "keyId": { - "type": "string", - "description": "Apple OAuth2 key ID.", - "x-example": "P4000000N8" - }, - "teamId": { + "oauthClientId": { "type": "string", - "description": "Apple OAuth2 team ID.", - "x-example": "D4000000R6" + "description": "Notion OAuth2 client ID.", + "x-example": "341d8700-0000-0000-0000-000000446ee3" }, - "p8File": { + "oauthClientSecret": { "type": "string", - "description": "Apple OAuth2 .p8 private key file contents. The secret key wrapped by the PEM markers is 200 characters long.", - "x-example": "-----BEGIN PRIVATE KEY-----MIGTAg...jy2Xbna-----END PRIVATE KEY-----" + "description": "Notion OAuth2 client secret.", + "x-example": "secret_dLUr4b000000000000000000000000000000lFHAa9" } }, "required": [ "$id", "enabled", - "serviceId", - "keyId", - "teamId", - "p8File" + "oauthClientId", + "oauthClientSecret" ], "example": { - "$id": "apple", + "$id": "github", "enabled": false, - "serviceId": "ip.appwrite.app.web", - "keyId": "P4000000N8", - "teamId": "D4000000R6", - "p8File": "-----BEGIN PRIVATE KEY-----MIGTAg...jy2Xbna-----END PRIVATE KEY-----" + "oauthClientId": "341d8700-0000-0000-0000-000000446ee3", + "oauthClientSecret": "secret_dLUr4b000000000000000000000000000000lFHAa9" } }, - "oAuth2Microsoft": { - "description": "OAuth2Microsoft", + "oAuth2Salesforce": { + "description": "OAuth2Salesforce", "type": "object", "properties": { "$id": { @@ -104532,2642 +104072,2082 @@ "description": "OAuth2 provider is active and can be used to create sessions.", "x-example": false }, - "applicationId": { - "type": "string", - "description": "Microsoft OAuth2 application ID.", - "x-example": "00001111-aaaa-2222-bbbb-3333cccc4444" - }, - "applicationSecret": { + "customerKey": { "type": "string", - "description": "Microsoft OAuth2 application secret.", - "x-example": "A1bC2dE3fH4iJ5kL6mN7oP8qR9sT0u" + "description": "Salesforce OAuth2 consumer key.", + "x-example": "3MVG9I0000000000000000000000000000000000000000000000000000000000000000000000000C5Aejq" }, - "tenant": { + "customerSecret": { "type": "string", - "description": "Microsoft Entra ID tenant identifier. Use 'common', 'organizations', 'consumers' or a specific tenant ID.", - "x-example": "common" + "description": "Salesforce OAuth2 consumer secret.", + "x-example": "3w000000000000e2" } }, "required": [ "$id", "enabled", - "applicationId", - "applicationSecret", - "tenant" + "customerKey", + "customerSecret" ], "example": { "$id": "github", "enabled": false, - "applicationId": "00001111-aaaa-2222-bbbb-3333cccc4444", - "applicationSecret": "A1bC2dE3fH4iJ5kL6mN7oP8qR9sT0u", - "tenant": "common" - } - }, - "oAuth2ProviderList": { - "description": "OAuth2 Providers List", - "type": "object", - "properties": { - "total": { - "type": "integer", - "description": "Total number of OAuth2 providers in the given project.", - "x-example": 5, - "format": "int32" - }, - "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\/oAuth2Twitch" - }, - { - "$ref": "#\/components\/schemas\/oAuth2Stripe" - }, - { - "$ref": "#\/components\/schemas\/oAuth2Spotify" - }, - { - "$ref": "#\/components\/schemas\/oAuth2Slack" - }, - { - "$ref": "#\/components\/schemas\/oAuth2Podio" - }, - { - "$ref": "#\/components\/schemas\/oAuth2Notion" - }, - { - "$ref": "#\/components\/schemas\/oAuth2Salesforce" - }, - { - "$ref": "#\/components\/schemas\/oAuth2Yahoo" - }, - { - "$ref": "#\/components\/schemas\/oAuth2Linkedin" - }, - { - "$ref": "#\/components\/schemas\/oAuth2Disqus" - }, - { - "$ref": "#\/components\/schemas\/oAuth2Amazon" - }, - { - "$ref": "#\/components\/schemas\/oAuth2Etsy" - }, - { - "$ref": "#\/components\/schemas\/oAuth2Facebook" - }, - { - "$ref": "#\/components\/schemas\/oAuth2Tradeshift" - }, - { - "$ref": "#\/components\/schemas\/oAuth2Paypal" - }, - { - "$ref": "#\/components\/schemas\/oAuth2Gitlab" - }, - { - "$ref": "#\/components\/schemas\/oAuth2Authentik" - }, - { - "$ref": "#\/components\/schemas\/oAuth2Auth0" - }, - { - "$ref": "#\/components\/schemas\/oAuth2FusionAuth" - }, - { - "$ref": "#\/components\/schemas\/oAuth2Keycloak" - }, - { - "$ref": "#\/components\/schemas\/oAuth2Oidc" - }, - { - "$ref": "#\/components\/schemas\/oAuth2Apple" - }, - { - "$ref": "#\/components\/schemas\/oAuth2Okta" - }, - { - "$ref": "#\/components\/schemas\/oAuth2Kick" - }, - { - "$ref": "#\/components\/schemas\/oAuth2Microsoft" - } - ], - "discriminator": { - "propertyName": "$id", - "mapping": { - "github": "#\/components\/schemas\/oAuth2Github", - "discord": "#\/components\/schemas\/oAuth2Discord", - "figma": "#\/components\/schemas\/oAuth2Figma", - "dropbox": "#\/components\/schemas\/oAuth2Dropbox", - "dailymotion": "#\/components\/schemas\/oAuth2Dailymotion", - "bitbucket": "#\/components\/schemas\/oAuth2Bitbucket", - "bitly": "#\/components\/schemas\/oAuth2Bitly", - "box": "#\/components\/schemas\/oAuth2Box", - "autodesk": "#\/components\/schemas\/oAuth2Autodesk", - "google": "#\/components\/schemas\/oAuth2Google", - "zoom": "#\/components\/schemas\/oAuth2Zoom", - "zoho": "#\/components\/schemas\/oAuth2Zoho", - "yandex": "#\/components\/schemas\/oAuth2Yandex", - "x": "#\/components\/schemas\/oAuth2X", - "wordpress": "#\/components\/schemas\/oAuth2WordPress", - "twitch": "#\/components\/schemas\/oAuth2Twitch", - "stripe": "#\/components\/schemas\/oAuth2Stripe", - "spotify": "#\/components\/schemas\/oAuth2Spotify", - "slack": "#\/components\/schemas\/oAuth2Slack", - "podio": "#\/components\/schemas\/oAuth2Podio", - "notion": "#\/components\/schemas\/oAuth2Notion", - "salesforce": "#\/components\/schemas\/oAuth2Salesforce", - "yahoo": "#\/components\/schemas\/oAuth2Yahoo", - "linkedin": "#\/components\/schemas\/oAuth2Linkedin", - "disqus": "#\/components\/schemas\/oAuth2Disqus", - "amazon": "#\/components\/schemas\/oAuth2Amazon", - "etsy": "#\/components\/schemas\/oAuth2Etsy", - "facebook": "#\/components\/schemas\/oAuth2Facebook", - "tradeshift": "#\/components\/schemas\/oAuth2Tradeshift", - "tradeshiftBox": "#\/components\/schemas\/oAuth2Tradeshift", - "paypal": "#\/components\/schemas\/oAuth2Paypal", - "paypalSandbox": "#\/components\/schemas\/oAuth2Paypal", - "gitlab": "#\/components\/schemas\/oAuth2Gitlab", - "authentik": "#\/components\/schemas\/oAuth2Authentik", - "auth0": "#\/components\/schemas\/oAuth2Auth0", - "fusionauth": "#\/components\/schemas\/oAuth2FusionAuth", - "keycloak": "#\/components\/schemas\/oAuth2Keycloak", - "oidc": "#\/components\/schemas\/oAuth2Oidc", - "apple": "#\/components\/schemas\/oAuth2Apple", - "okta": "#\/components\/schemas\/oAuth2Okta", - "kick": "#\/components\/schemas\/oAuth2Kick", - "microsoft": "#\/components\/schemas\/oAuth2Microsoft" - } - } - }, - "x-example": "" - } - }, - "required": [ - "total", - "providers" - ], - "example": { - "total": 5, - "providers": "" + "customerKey": "3MVG9I0000000000000000000000000000000000000000000000000000000000000000000000000C5Aejq", + "customerSecret": "3w000000000000e2" } }, - "policyPasswordDictionary": { - "description": "Policy Password Dictionary", + "oAuth2Yahoo": { + "description": "OAuth2Yahoo", "type": "object", "properties": { "$id": { "type": "string", - "description": "Policy ID.", - "x-example": "password-dictionary" + "description": "OAuth2 provider ID.", + "x-example": "github" }, "enabled": { "type": "boolean", - "description": "Whether password dictionary policy is enabled.", - "x-example": true - } - }, - "required": [ - "$id", - "enabled" - ], - "example": { - "$id": "password-dictionary", - "enabled": true - } - }, - "policyPasswordHistory": { - "description": "Policy Password History", - "type": "object", - "properties": { - "$id": { + "description": "OAuth2 provider is active and can be used to create sessions.", + "x-example": false + }, + "clientId": { "type": "string", - "description": "Policy ID.", - "x-example": "password-dictionary" + "description": "Yahoo OAuth2 client ID.", + "x-example": "dj0yJm000000000000000000000000000000000000000000000000000000000000000000000000000000000000Z4PWRm" }, - "total": { - "type": "integer", - "description": "Password history length. A value of 0 means the policy is disabled.", - "x-example": 5, - "format": "int32" + "clientSecret": { + "type": "string", + "description": "Yahoo OAuth2 client secret.", + "x-example": "cf978f0000000000000000000000000000c5e2e9" } }, "required": [ "$id", - "total" + "enabled", + "clientId", + "clientSecret" ], "example": { - "$id": "password-dictionary", - "total": 5 + "$id": "github", + "enabled": false, + "clientId": "dj0yJm000000000000000000000000000000000000000000000000000000000000000000000000000000000000Z4PWRm", + "clientSecret": "cf978f0000000000000000000000000000c5e2e9" } }, - "policyPasswordStrength": { - "description": "Policy Password Strength", + "oAuth2Linkedin": { + "description": "OAuth2Linkedin", "type": "object", - "properties": { - "$id": { - "type": "string", - "description": "Policy ID.", - "x-example": "password-dictionary" - }, - "min": { - "type": "integer", - "description": "Minimum password length required for user passwords.", - "x-example": 12, - "format": "int32" - }, - "uppercase": { - "type": "boolean", - "description": "Whether passwords must include at least one uppercase letter.", - "x-example": true + "properties": { + "$id": { + "type": "string", + "description": "OAuth2 provider ID.", + "x-example": "github" }, - "lowercase": { + "enabled": { "type": "boolean", - "description": "Whether passwords must include at least one lowercase letter.", - "x-example": true + "description": "OAuth2 provider is active and can be used to create sessions.", + "x-example": false }, - "number": { - "type": "boolean", - "description": "Whether passwords must include at least one number.", - "x-example": true + "clientId": { + "type": "string", + "description": "LinkedIn OAuth2 client ID.", + "x-example": "770000000000dv" }, - "symbols": { - "type": "boolean", - "description": "Whether passwords must include at least one symbol.", - "x-example": true + "primaryClientSecret": { + "type": "string", + "description": "LinkedIn OAuth2 primary client secret.", + "x-example": "WPL_AP1.2Bf0000000000000.\/HtlYw==" } }, "required": [ "$id", - "min", - "uppercase", - "lowercase", - "number", - "symbols" + "enabled", + "clientId", + "primaryClientSecret" ], "example": { - "$id": "password-dictionary", - "min": 12, - "uppercase": true, - "lowercase": true, - "number": true, - "symbols": true + "$id": "github", + "enabled": false, + "clientId": "770000000000dv", + "primaryClientSecret": "WPL_AP1.2Bf0000000000000.\/HtlYw==" } }, - "policyPasswordPersonalData": { - "description": "Policy Password Personal Data", + "oAuth2Disqus": { + "description": "OAuth2Disqus", "type": "object", "properties": { "$id": { "type": "string", - "description": "Policy ID.", - "x-example": "password-dictionary" + "description": "OAuth2 provider ID.", + "x-example": "github" }, "enabled": { "type": "boolean", - "description": "Whether password personal data policy is enabled.", - "x-example": true + "description": "OAuth2 provider is active and can be used to create sessions.", + "x-example": false + }, + "publicKey": { + "type": "string", + "description": "Disqus OAuth2 public key.", + "x-example": "cgegH70000000000000000000000000000000000000000000000000000Hr1nYX" + }, + "secretKey": { + "type": "string", + "description": "Disqus OAuth2 secret key.", + "x-example": "W7Bykj00000000000000000000000000000000000000000000000000003o43w9" } }, "required": [ "$id", - "enabled" + "enabled", + "publicKey", + "secretKey" ], "example": { - "$id": "password-dictionary", - "enabled": true + "$id": "github", + "enabled": false, + "publicKey": "cgegH70000000000000000000000000000000000000000000000000000Hr1nYX", + "secretKey": "W7Bykj00000000000000000000000000000000000000000000000000003o43w9" } }, - "policySessionAlert": { - "description": "Policy Session Alert", + "oAuth2Amazon": { + "description": "OAuth2Amazon", "type": "object", "properties": { "$id": { "type": "string", - "description": "Policy ID.", - "x-example": "password-dictionary" + "description": "OAuth2 provider ID.", + "x-example": "github" }, "enabled": { "type": "boolean", - "description": "Whether session alert policy is enabled.", - "x-example": true + "description": "OAuth2 provider is active and can be used to create sessions.", + "x-example": false + }, + "clientId": { + "type": "string", + "description": "Amazon OAuth2 client ID.", + "x-example": "amzn1.application-oa2-client.87400c00000000000000000000063d5b2" + }, + "clientSecret": { + "type": "string", + "description": "Amazon OAuth2 client secret.", + "x-example": "79ffe4000000000000000000000000000000000000000000000000000002de55" } }, "required": [ "$id", - "enabled" + "enabled", + "clientId", + "clientSecret" ], "example": { - "$id": "password-dictionary", - "enabled": true + "$id": "github", + "enabled": false, + "clientId": "amzn1.application-oa2-client.87400c00000000000000000000063d5b2", + "clientSecret": "79ffe4000000000000000000000000000000000000000000000000000002de55" } }, - "policySessionDuration": { - "description": "Policy Session Duration", + "oAuth2Etsy": { + "description": "OAuth2Etsy", "type": "object", "properties": { "$id": { "type": "string", - "description": "Policy ID.", - "x-example": "password-dictionary" + "description": "OAuth2 provider ID.", + "x-example": "github" }, - "duration": { - "type": "integer", - "description": "Session duration in seconds.", - "x-example": 3600, - "format": "int32" + "enabled": { + "type": "boolean", + "description": "OAuth2 provider is active and can be used to create sessions.", + "x-example": false + }, + "keyString": { + "type": "string", + "description": "Etsy OAuth2 keystring.", + "x-example": "nsgzxh0000000000008j85a2" + }, + "sharedSecret": { + "type": "string", + "description": "Etsy OAuth2 shared secret.", + "x-example": "tp000000ru" } }, "required": [ "$id", - "duration" + "enabled", + "keyString", + "sharedSecret" ], "example": { - "$id": "password-dictionary", - "duration": 3600 + "$id": "github", + "enabled": false, + "keyString": "nsgzxh0000000000008j85a2", + "sharedSecret": "tp000000ru" } }, - "policySessionInvalidation": { - "description": "Policy Session Invalidation", + "oAuth2Facebook": { + "description": "OAuth2Facebook", "type": "object", "properties": { "$id": { "type": "string", - "description": "Policy ID.", - "x-example": "password-dictionary" + "description": "OAuth2 provider ID.", + "x-example": "github" }, "enabled": { "type": "boolean", - "description": "Whether session invalidation policy is enabled.", - "x-example": true + "description": "OAuth2 provider is active and can be used to create sessions.", + "x-example": false + }, + "appId": { + "type": "string", + "description": "Facebook OAuth2 app ID.", + "x-example": "260600000007694" + }, + "appSecret": { + "type": "string", + "description": "Facebook OAuth2 app secret.", + "x-example": "2d0b2800000000000000000000d38af4" } }, "required": [ "$id", - "enabled" + "enabled", + "appId", + "appSecret" ], "example": { - "$id": "password-dictionary", - "enabled": true + "$id": "github", + "enabled": false, + "appId": "260600000007694", + "appSecret": "2d0b2800000000000000000000d38af4" } }, - "policySessionLimit": { - "description": "Policy Session Limit", + "oAuth2Tradeshift": { + "description": "OAuth2Tradeshift", "type": "object", "properties": { "$id": { "type": "string", - "description": "Policy ID.", - "x-example": "password-dictionary" + "description": "OAuth2 provider ID.", + "x-example": "github" }, - "total": { - "type": "integer", - "description": "Maximum number of sessions allowed per user. A value of 0 means the policy is disabled.", - "x-example": 10, - "format": "int32" + "enabled": { + "type": "boolean", + "description": "OAuth2 provider is active and can be used to create sessions.", + "x-example": false + }, + "oauth2ClientId": { + "type": "string", + "description": "Tradeshift OAuth2 client ID.", + "x-example": "appwrite-test-org.appwrite-test-app" + }, + "oauth2ClientSecret": { + "type": "string", + "description": "Tradeshift OAuth2 client secret.", + "x-example": "7cb52700-0000-0000-0000-000000ca5b83" } }, "required": [ "$id", - "total" + "enabled", + "oauth2ClientId", + "oauth2ClientSecret" ], "example": { - "$id": "password-dictionary", - "total": 10 + "$id": "github", + "enabled": false, + "oauth2ClientId": "appwrite-test-org.appwrite-test-app", + "oauth2ClientSecret": "7cb52700-0000-0000-0000-000000ca5b83" } }, - "policyUserLimit": { - "description": "Policy User Limit", + "oAuth2Paypal": { + "description": "OAuth2Paypal", "type": "object", "properties": { "$id": { "type": "string", - "description": "Policy ID.", - "x-example": "password-dictionary" + "description": "OAuth2 provider ID.", + "x-example": "github" }, - "total": { - "type": "integer", - "description": "Maximum number of users allowed in the project. A value of 0 means the policy is disabled.", - "x-example": 100, - "format": "int32" + "enabled": { + "type": "boolean", + "description": "OAuth2 provider is active and can be used to create sessions.", + "x-example": false + }, + "clientId": { + "type": "string", + "description": "PayPal OAuth2 client ID.", + "x-example": "AdhIEG7-000000000000-0000000000000000000000000000000-0000000000000000000000-2pyB" + }, + "secretKey": { + "type": "string", + "description": "PayPal OAuth2 secret key.", + "x-example": "EH8KCXtew--000000000000000000000000000000000000000_C-1_5UP_000000000000000CB7KDp" } }, "required": [ "$id", - "total" + "enabled", + "clientId", + "secretKey" ], "example": { - "$id": "password-dictionary", - "total": 100 + "$id": "github", + "enabled": false, + "clientId": "AdhIEG7-000000000000-0000000000000000000000000000000-0000000000000000000000-2pyB", + "secretKey": "EH8KCXtew--000000000000000000000000000000000000000_C-1_5UP_000000000000000CB7KDp" } }, - "policyMembershipPrivacy": { - "description": "Policy Membership Privacy", + "oAuth2Gitlab": { + "description": "OAuth2Gitlab", "type": "object", "properties": { "$id": { "type": "string", - "description": "Policy ID.", - "x-example": "password-dictionary" - }, - "userId": { - "type": "boolean", - "description": "Whether user ID is visible in memberships.", - "x-example": true - }, - "userEmail": { - "type": "boolean", - "description": "Whether user email is visible in memberships.", - "x-example": true + "description": "OAuth2 provider ID.", + "x-example": "github" }, - "userPhone": { + "enabled": { "type": "boolean", - "description": "Whether user phone is visible in memberships.", - "x-example": true + "description": "OAuth2 provider is active and can be used to create sessions.", + "x-example": false }, - "userName": { - "type": "boolean", - "description": "Whether user name is visible in memberships.", - "x-example": true + "applicationId": { + "type": "string", + "description": "GitLab OAuth2 application ID.", + "x-example": "d41ffe0000000000000000000000000000000000000000000000000000d5e252" }, - "userMFA": { - "type": "boolean", - "description": "Whether user MFA status is visible in memberships.", - "x-example": true + "secret": { + "type": "string", + "description": "GitLab OAuth2 secret.", + "x-example": "gloas-838cfa0000000000000000000000000000000000000000000000000000ecbb38" }, - "userAccessedAt": { - "type": "boolean", - "description": "Whether user last access time is visible in memberships.", - "x-example": true + "endpoint": { + "type": "string", + "description": "GitLab OAuth2 endpoint URL. Defaults to https:\/\/gitlab.com for self-hosted instances.", + "x-example": "https:\/\/gitlab.com" } }, "required": [ "$id", - "userId", - "userEmail", - "userPhone", - "userName", - "userMFA", - "userAccessedAt" + "enabled", + "applicationId", + "secret", + "endpoint" ], "example": { - "$id": "password-dictionary", - "userId": true, - "userEmail": true, - "userPhone": true, - "userName": true, - "userMFA": true, - "userAccessedAt": true + "$id": "github", + "enabled": false, + "applicationId": "d41ffe0000000000000000000000000000000000000000000000000000d5e252", + "secret": "gloas-838cfa0000000000000000000000000000000000000000000000000000ecbb38", + "endpoint": "https:\/\/gitlab.com" } }, - "platformWeb": { - "description": "Platform Web", + "oAuth2Appwrite": { + "description": "OAuth2Appwrite", "type": "object", "properties": { "$id": { "type": "string", - "description": "Platform ID.", - "x-example": "5e5ea5c16897e" - }, - "$createdAt": { - "type": "string", - "description": "Platform creation date in ISO 8601 format.", - "x-example": "2020-10-15T06:38:00.000+00:00" - }, - "$updatedAt": { - "type": "string", - "description": "Platform update date in ISO 8601 format.", - "x-example": "2020-10-15T06:38:00.000+00:00" + "description": "OAuth2 provider ID.", + "x-example": "github" }, - "name": { - "type": "string", - "description": "Platform name.", - "x-example": "My Web App" + "enabled": { + "type": "boolean", + "description": "OAuth2 provider is active and can be used to create sessions.", + "x-example": false }, - "type": { + "clientId": { "type": "string", - "description": "Platform type. Possible values are: windows, apple, android, linux, web.", - "x-example": "web", - "enum": [ - "windows", - "apple", - "android", - "linux", - "web" - ], - "x-enum-name": "PlatformType" + "description": "Appwrite OAuth2 client ID.", + "x-example": "6a42000000000000b5a0" }, - "hostname": { + "clientSecret": { "type": "string", - "description": "Web app hostname. Empty string for other platforms.", - "x-example": "app.example.com" + "description": "Appwrite OAuth2 client secret.", + "x-example": "b86afd000000000000000000000000000000000000000000000000000ced5f93" } }, "required": [ "$id", - "$createdAt", - "$updatedAt", - "name", - "type", - "hostname", - "key" + "enabled", + "clientId", + "clientSecret" ], "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" + "$id": "github", + "enabled": false, + "clientId": "6a42000000000000b5a0", + "clientSecret": "b86afd000000000000000000000000000000000000000000000000000ced5f93" } }, - "platformApple": { - "description": "Platform Apple", + "oAuth2Authentik": { + "description": "OAuth2Authentik", "type": "object", "properties": { "$id": { "type": "string", - "description": "Platform ID.", - "x-example": "5e5ea5c16897e" - }, - "$createdAt": { - "type": "string", - "description": "Platform creation date in ISO 8601 format.", - "x-example": "2020-10-15T06:38:00.000+00:00" + "description": "OAuth2 provider ID.", + "x-example": "github" }, - "$updatedAt": { - "type": "string", - "description": "Platform update date in ISO 8601 format.", - "x-example": "2020-10-15T06:38:00.000+00:00" + "enabled": { + "type": "boolean", + "description": "OAuth2 provider is active and can be used to create sessions.", + "x-example": false }, - "name": { + "clientId": { "type": "string", - "description": "Platform name.", - "x-example": "My Web App" + "description": "Authentik OAuth2 client ID.", + "x-example": "dTKOPa0000000000000000000000000000e7G8hv" }, - "type": { + "clientSecret": { "type": "string", - "description": "Platform type. Possible values are: windows, apple, android, linux, web.", - "x-example": "web", - "enum": [ - "windows", - "apple", - "android", - "linux", - "web" - ], - "x-enum-name": "PlatformType" + "description": "Authentik OAuth2 client secret.", + "x-example": "ntQadq000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000Hp5WK" }, - "bundleIdentifier": { + "endpoint": { "type": "string", - "description": "Apple bundle identifier.", - "x-example": "com.company.appname" + "description": "Authentik OAuth2 endpoint domain.", + "x-example": "example.authentik.com" } }, "required": [ "$id", - "$createdAt", - "$updatedAt", - "name", - "type", - "bundleIdentifier" + "enabled", + "clientId", + "clientSecret", + "endpoint" ], "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" + "$id": "github", + "enabled": false, + "clientId": "dTKOPa0000000000000000000000000000e7G8hv", + "clientSecret": "ntQadq000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000Hp5WK", + "endpoint": "example.authentik.com" } }, - "platformAndroid": { - "description": "Platform Android", + "oAuth2Auth0": { + "description": "OAuth2Auth0", "type": "object", "properties": { "$id": { "type": "string", - "description": "Platform ID.", - "x-example": "5e5ea5c16897e" - }, - "$createdAt": { - "type": "string", - "description": "Platform creation date in ISO 8601 format.", - "x-example": "2020-10-15T06:38:00.000+00:00" + "description": "OAuth2 provider ID.", + "x-example": "github" }, - "$updatedAt": { - "type": "string", - "description": "Platform update date in ISO 8601 format.", - "x-example": "2020-10-15T06:38:00.000+00:00" + "enabled": { + "type": "boolean", + "description": "OAuth2 provider is active and can be used to create sessions.", + "x-example": false }, - "name": { + "clientId": { "type": "string", - "description": "Platform name.", - "x-example": "My Web App" + "description": "Auth0 OAuth2 client ID.", + "x-example": "OaOkIA000000000000000000005KLSYq" }, - "type": { + "clientSecret": { "type": "string", - "description": "Platform type. Possible values are: windows, apple, android, linux, web.", - "x-example": "web", - "enum": [ - "windows", - "apple", - "android", - "linux", - "web" - ], - "x-enum-name": "PlatformType" + "description": "Auth0 OAuth2 client secret.", + "x-example": "zXz0000-00000000000000000000000000000-00000000000000000000PJafnF" }, - "applicationId": { + "endpoint": { "type": "string", - "description": "Android application ID.", - "x-example": "com.company.appname" + "description": "Auth0 OAuth2 endpoint domain.", + "x-example": "example.us.auth0.com" } }, "required": [ "$id", - "$createdAt", - "$updatedAt", - "name", - "type", - "applicationId" + "enabled", + "clientId", + "clientSecret", + "endpoint" ], "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" + "$id": "github", + "enabled": false, + "clientId": "OaOkIA000000000000000000005KLSYq", + "clientSecret": "zXz0000-00000000000000000000000000000-00000000000000000000PJafnF", + "endpoint": "example.us.auth0.com" } }, - "platformWindows": { - "description": "Platform Windows", + "oAuth2FusionAuth": { + "description": "OAuth2FusionAuth", "type": "object", "properties": { "$id": { "type": "string", - "description": "Platform ID.", - "x-example": "5e5ea5c16897e" - }, - "$createdAt": { - "type": "string", - "description": "Platform creation date in ISO 8601 format.", - "x-example": "2020-10-15T06:38:00.000+00:00" + "description": "OAuth2 provider ID.", + "x-example": "github" }, - "$updatedAt": { - "type": "string", - "description": "Platform update date in ISO 8601 format.", - "x-example": "2020-10-15T06:38:00.000+00:00" + "enabled": { + "type": "boolean", + "description": "OAuth2 provider is active and can be used to create sessions.", + "x-example": false }, - "name": { + "clientId": { "type": "string", - "description": "Platform name.", - "x-example": "My Web App" + "description": "FusionAuth OAuth2 client ID.", + "x-example": "b2222c00-0000-0000-0000-000000862097" }, - "type": { + "clientSecret": { "type": "string", - "description": "Platform type. Possible values are: windows, apple, android, linux, web.", - "x-example": "web", - "enum": [ - "windows", - "apple", - "android", - "linux", - "web" - ], - "x-enum-name": "PlatformType" + "description": "FusionAuth OAuth2 client secret.", + "x-example": "Jx4s0C0000000000000000000000000000000wGqLsc" }, - "packageIdentifierName": { + "endpoint": { "type": "string", - "description": "Windows package identifier name.", - "x-example": "com.company.appname" + "description": "FusionAuth OAuth2 endpoint domain.", + "x-example": "example.fusionauth.io" } }, "required": [ "$id", - "$createdAt", - "$updatedAt", - "name", - "type", - "packageIdentifierName" + "enabled", + "clientId", + "clientSecret", + "endpoint" ], "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" + "$id": "github", + "enabled": false, + "clientId": "b2222c00-0000-0000-0000-000000862097", + "clientSecret": "Jx4s0C0000000000000000000000000000000wGqLsc", + "endpoint": "example.fusionauth.io" } }, - "platformLinux": { - "description": "Platform Linux", + "oAuth2Keycloak": { + "description": "OAuth2Keycloak", "type": "object", "properties": { "$id": { "type": "string", - "description": "Platform ID.", - "x-example": "5e5ea5c16897e" + "description": "OAuth2 provider ID.", + "x-example": "github" }, - "$createdAt": { - "type": "string", - "description": "Platform creation date in ISO 8601 format.", - "x-example": "2020-10-15T06:38:00.000+00:00" + "enabled": { + "type": "boolean", + "description": "OAuth2 provider is active and can be used to create sessions.", + "x-example": false }, - "$updatedAt": { + "clientId": { "type": "string", - "description": "Platform update date in ISO 8601 format.", - "x-example": "2020-10-15T06:38:00.000+00:00" + "description": "Keycloak OAuth2 client ID.", + "x-example": "appwrite-o0000000st-app" }, - "name": { + "clientSecret": { "type": "string", - "description": "Platform name.", - "x-example": "My Web App" + "description": "Keycloak OAuth2 client secret.", + "x-example": "jdjrJd00000000000000000000HUsaZO" }, - "type": { + "endpoint": { "type": "string", - "description": "Platform type. Possible values are: windows, apple, android, linux, web.", - "x-example": "web", - "enum": [ - "windows", - "apple", - "android", - "linux", - "web" - ], - "x-enum-name": "PlatformType" + "description": "Keycloak OAuth2 endpoint domain.", + "x-example": "keycloak.example.com" }, - "packageName": { + "realmName": { "type": "string", - "description": "Linux package name.", - "x-example": "com.company.appname" + "description": "Keycloak OAuth2 realm name.", + "x-example": "appwrite-realm" } }, "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.", - "x-example": 5, - "format": "int32" - }, - "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" - } - } - }, - "x-example": "" - } - }, - "required": [ - "total", - "platforms" + "enabled", + "clientId", + "clientSecret", + "endpoint", + "realmName" ], "example": { - "total": 5, - "platforms": "" + "$id": "github", + "enabled": false, + "clientId": "appwrite-o0000000st-app", + "clientSecret": "jdjrJd00000000000000000000HUsaZO", + "endpoint": "keycloak.example.com", + "realmName": "appwrite-realm" } }, - "variable": { - "description": "Variable", + "oAuth2Oidc": { + "description": "OAuth2Oidc", "type": "object", "properties": { "$id": { "type": "string", - "description": "Variable ID.", - "x-example": "5e5ea5c16897e" + "description": "OAuth2 provider ID.", + "x-example": "github" }, - "$createdAt": { - "type": "string", - "description": "Variable creation date in ISO 8601 format.", - "x-example": "2020-10-15T06:38:00.000+00:00" + "enabled": { + "type": "boolean", + "description": "OAuth2 provider is active and can be used to create sessions.", + "x-example": false }, - "$updatedAt": { + "clientId": { "type": "string", - "description": "Variable creation date in ISO 8601 format.", - "x-example": "2020-10-15T06:38:00.000+00:00" + "description": "OpenID Connect OAuth2 client ID.", + "x-example": "qibI2x0000000000000000000000000006L2YFoG" }, - "key": { + "clientSecret": { "type": "string", - "description": "Variable key.", - "x-example": "API_KEY" + "description": "OpenID Connect OAuth2 client secret.", + "x-example": "Ah68ed000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003qpcHV" }, - "value": { + "wellKnownURL": { "type": "string", - "description": "Variable value.", - "x-example": "myPa$$word1" + "description": "OpenID Connect well-known configuration URL. When set, authorization, token, and user info endpoints can be discovered automatically.", + "x-example": "https:\/\/myoauth.com\/.well-known\/openid-configuration" }, - "secret": { - "type": "boolean", - "description": "Variable secret flag. Secret variables can only be updated or deleted, but never read.", - "x-example": false + "authorizationURL": { + "type": "string", + "description": "OpenID Connect authorization endpoint URL.", + "x-example": "https:\/\/myoauth.com\/oauth2\/authorize" }, - "resourceType": { + "tokenURL": { "type": "string", - "description": "Service to which the variable belongs. Possible values are \"project\", \"function\"", - "x-example": "function" + "description": "OpenID Connect token endpoint URL.", + "x-example": "https:\/\/myoauth.com\/oauth2\/token" }, - "resourceId": { + "userInfoURL": { "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.", - "x-example": "myAwesomeFunction" + "description": "OpenID Connect user info endpoint URL.", + "x-example": "https:\/\/myoauth.com\/oauth2\/userinfo" + }, + "prompt": { + "type": "array", + "description": "OpenID Connect prompt values controlling the authentication and consent screens.", + "items": { + "type": "string", + "enum": [ + "none", + "login", + "consent", + "select_account" + ] + }, + "x-example": [ + "consent" + ] + }, + "maxAge": { + "type": "integer", + "description": "Maximum authentication age in seconds. When set, the user must have authenticated within this many seconds.", + "x-example": 3600, + "format": "int32", + "nullable": true } }, "required": [ "$id", - "$createdAt", - "$updatedAt", - "key", - "value", - "secret", - "resourceType", - "resourceId" + "enabled", + "clientId", + "clientSecret", + "wellKnownURL", + "authorizationURL", + "tokenURL", + "userInfoURL", + "prompt" ], "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" + "$id": "github", + "enabled": false, + "clientId": "qibI2x0000000000000000000000000006L2YFoG", + "clientSecret": "Ah68ed000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003qpcHV", + "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 } }, - "country": { - "description": "Country", + "oAuth2Okta": { + "description": "OAuth2Okta", "type": "object", "properties": { - "name": { + "$id": { "type": "string", - "description": "Country name.", - "x-example": "United States" + "description": "OAuth2 provider ID.", + "x-example": "github" }, - "code": { + "enabled": { + "type": "boolean", + "description": "OAuth2 provider is active and can be used to create sessions.", + "x-example": false + }, + "clientId": { "type": "string", - "description": "Country two-character ISO 3166-1 alpha code.", - "x-example": "US" - } - }, - "required": [ - "name", - "code" - ], - "example": { - "name": "United States", - "code": "US" - } - }, - "continent": { - "description": "Continent", - "type": "object", - "properties": { - "name": { + "description": "Okta OAuth2 client ID.", + "x-example": "0oa00000000000000698" + }, + "clientSecret": { "type": "string", - "description": "Continent name.", - "x-example": "Europe" + "description": "Okta OAuth2 client secret.", + "x-example": "Kiq0000000000000000000000000000000000000-00000000000H2L5-3SJ-vRV" }, - "code": { + "domain": { "type": "string", - "description": "Continent two letter code.", - "x-example": "EU" + "description": "Okta OAuth2 domain.", + "x-example": "trial-6400025.okta.com" + }, + "authorizationServerId": { + "type": "string", + "description": "Okta OAuth2 authorization server ID.", + "x-example": "aus000000000000000h7z" } }, "required": [ - "name", - "code" + "$id", + "enabled", + "clientId", + "clientSecret", + "domain", + "authorizationServerId" ], "example": { - "name": "Europe", - "code": "EU" + "$id": "github", + "enabled": false, + "clientId": "0oa00000000000000698", + "clientSecret": "Kiq0000000000000000000000000000000000000-00000000000H2L5-3SJ-vRV", + "domain": "trial-6400025.okta.com", + "authorizationServerId": "aus000000000000000h7z" } }, - "language": { - "description": "Language", + "oAuth2Kick": { + "description": "OAuth2Kick", "type": "object", "properties": { - "name": { + "$id": { "type": "string", - "description": "Language name.", - "x-example": "Italian" + "description": "OAuth2 provider ID.", + "x-example": "github" }, - "code": { + "enabled": { + "type": "boolean", + "description": "OAuth2 provider is active and can be used to create sessions.", + "x-example": false + }, + "clientId": { "type": "string", - "description": "Language two-character ISO 639-1 codes.", - "x-example": "it" + "description": "Kick OAuth2 client ID.", + "x-example": "01KQ7C00000000000001MFHS32" }, - "nativeName": { + "clientSecret": { "type": "string", - "description": "Language native name.", - "x-example": "Italiano" + "description": "Kick OAuth2 client secret.", + "x-example": "34ac5600000000000000000000000000000000000000000000000000e830c8b" } }, "required": [ - "name", - "code", - "nativeName" + "$id", + "enabled", + "clientId", + "clientSecret" ], "example": { - "name": "Italian", - "code": "it", - "nativeName": "Italiano" + "$id": "github", + "enabled": false, + "clientId": "01KQ7C00000000000001MFHS32", + "clientSecret": "34ac5600000000000000000000000000000000000000000000000000e830c8b" } }, - "currency": { - "description": "Currency", + "oAuth2Apple": { + "description": "OAuth2Apple", "type": "object", "properties": { - "symbol": { + "$id": { "type": "string", - "description": "Currency symbol.", - "x-example": "$" + "description": "OAuth2 provider ID.", + "x-example": "apple" }, - "name": { - "type": "string", - "description": "Currency name.", - "x-example": "US dollar" + "enabled": { + "type": "boolean", + "description": "OAuth2 provider is active and can be used to create sessions.", + "x-example": false }, - "symbolNative": { + "serviceId": { "type": "string", - "description": "Currency native symbol.", - "x-example": "$" - }, - "decimalDigits": { - "type": "integer", - "description": "Number of decimal digits.", - "x-example": 2, - "format": "int32" + "description": "Apple OAuth2 service ID.", + "x-example": "ip.appwrite.app.web" }, - "rounding": { - "type": "number", - "description": "Currency digit rounding.", - "x-example": 0, - "format": "double" + "keyId": { + "type": "string", + "description": "Apple OAuth2 key ID.", + "x-example": "P4000000N8" }, - "code": { + "teamId": { "type": "string", - "description": "Currency code in [ISO 4217-1](http:\/\/en.wikipedia.org\/wiki\/ISO_4217) three-character format.", - "x-example": "USD" + "description": "Apple OAuth2 team ID.", + "x-example": "D4000000R6" }, - "namePlural": { + "p8File": { "type": "string", - "description": "Currency plural name", - "x-example": "US dollars" + "description": "Apple OAuth2 .p8 private key file contents. The secret key wrapped by the PEM markers is 200 characters long.", + "x-example": "-----BEGIN PRIVATE KEY-----MIGTAg...jy2Xbna-----END PRIVATE KEY-----" } }, "required": [ - "symbol", - "name", - "symbolNative", - "decimalDigits", - "rounding", - "code", - "namePlural" + "$id", + "enabled", + "serviceId", + "keyId", + "teamId", + "p8File" ], "example": { - "symbol": "$", - "name": "US dollar", - "symbolNative": "$", - "decimalDigits": 2, - "rounding": 0, - "code": "USD", - "namePlural": "US dollars" + "$id": "apple", + "enabled": false, + "serviceId": "ip.appwrite.app.web", + "keyId": "P4000000N8", + "teamId": "D4000000R6", + "p8File": "-----BEGIN PRIVATE KEY-----MIGTAg...jy2Xbna-----END PRIVATE KEY-----" } }, - "phone": { - "description": "Phone", + "oAuth2Microsoft": { + "description": "OAuth2Microsoft", "type": "object", "properties": { - "code": { + "$id": { "type": "string", - "description": "Phone code.", - "x-example": "+1" + "description": "OAuth2 provider ID.", + "x-example": "github" + }, + "enabled": { + "type": "boolean", + "description": "OAuth2 provider is active and can be used to create sessions.", + "x-example": false + }, + "applicationId": { + "type": "string", + "description": "Microsoft OAuth2 application ID.", + "x-example": "00001111-aaaa-2222-bbbb-3333cccc4444" }, - "countryCode": { + "applicationSecret": { "type": "string", - "description": "Country two-character ISO 3166-1 alpha code.", - "x-example": "US" + "description": "Microsoft OAuth2 application secret.", + "x-example": "A1bC2dE3fH4iJ5kL6mN7oP8qR9sT0u" }, - "countryName": { + "tenant": { "type": "string", - "description": "Country name.", - "x-example": "United States" + "description": "Microsoft Entra ID tenant identifier. Use 'common', 'organizations', 'consumers' or a specific tenant ID.", + "x-example": "common" } }, "required": [ - "code", - "countryCode", - "countryName" + "$id", + "enabled", + "applicationId", + "applicationSecret", + "tenant" ], "example": { - "code": "+1", - "countryCode": "US", - "countryName": "United States" + "$id": "github", + "enabled": false, + "applicationId": "00001111-aaaa-2222-bbbb-3333cccc4444", + "applicationSecret": "A1bC2dE3fH4iJ5kL6mN7oP8qR9sT0u", + "tenant": "common" } }, - "healthAntivirus": { - "description": "Health Antivirus", + "oAuth2ProviderList": { + "description": "OAuth2 Providers List", "type": "object", "properties": { - "version": { - "type": "string", - "description": "Antivirus version.", - "x-example": "1.0.0" + "total": { + "type": "integer", + "description": "Total number of OAuth2 providers in the given project.", + "x-example": 5, + "format": "int32" }, - "status": { - "type": "string", - "description": "Antivirus status. Possible values are: `disabled`, `offline`, `online`", - "x-example": "online", - "enum": [ - "disabled", - "offline", - "online" - ] + "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\/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" + } + ], + "discriminator": { + "propertyName": "$id", + "mapping": { + "github": "#\/components\/schemas\/oAuth2Github", + "discord": "#\/components\/schemas\/oAuth2Discord", + "figma": "#\/components\/schemas\/oAuth2Figma", + "dropbox": "#\/components\/schemas\/oAuth2Dropbox", + "dailymotion": "#\/components\/schemas\/oAuth2Dailymotion", + "bitbucket": "#\/components\/schemas\/oAuth2Bitbucket", + "bitly": "#\/components\/schemas\/oAuth2Bitly", + "box": "#\/components\/schemas\/oAuth2Box", + "autodesk": "#\/components\/schemas\/oAuth2Autodesk", + "google": "#\/components\/schemas\/oAuth2Google", + "zoom": "#\/components\/schemas\/oAuth2Zoom", + "zoho": "#\/components\/schemas\/oAuth2Zoho", + "yandex": "#\/components\/schemas\/oAuth2Yandex", + "x": "#\/components\/schemas\/oAuth2X", + "wordpress": "#\/components\/schemas\/oAuth2WordPress", + "twitch": "#\/components\/schemas\/oAuth2Twitch", + "stripe": "#\/components\/schemas\/oAuth2Stripe", + "spotify": "#\/components\/schemas\/oAuth2Spotify", + "slack": "#\/components\/schemas\/oAuth2Slack", + "podio": "#\/components\/schemas\/oAuth2Podio", + "notion": "#\/components\/schemas\/oAuth2Notion", + "salesforce": "#\/components\/schemas\/oAuth2Salesforce", + "yahoo": "#\/components\/schemas\/oAuth2Yahoo", + "linkedin": "#\/components\/schemas\/oAuth2Linkedin", + "disqus": "#\/components\/schemas\/oAuth2Disqus", + "amazon": "#\/components\/schemas\/oAuth2Amazon", + "etsy": "#\/components\/schemas\/oAuth2Etsy", + "facebook": "#\/components\/schemas\/oAuth2Facebook", + "tradeshift": "#\/components\/schemas\/oAuth2Tradeshift", + "tradeshiftBox": "#\/components\/schemas\/oAuth2Tradeshift", + "paypal": "#\/components\/schemas\/oAuth2Paypal", + "paypalSandbox": "#\/components\/schemas\/oAuth2Paypal", + "gitlab": "#\/components\/schemas\/oAuth2Gitlab", + "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" + } + } + }, + "x-example": "" } }, "required": [ - "version", - "status" + "total", + "providers" ], "example": { - "version": "1.0.0", - "status": "online" + "total": 5, + "providers": "" } }, - "healthQueue": { - "description": "Health Queue", + "policyPasswordDictionary": { + "description": "Policy Password Dictionary", "type": "object", "properties": { - "size": { - "type": "integer", - "description": "Amount of actions in the queue.", - "x-example": 8, - "format": "int32" + "$id": { + "type": "string", + "description": "Policy ID.", + "x-example": "password-dictionary" + }, + "enabled": { + "type": "boolean", + "description": "Whether password dictionary policy is enabled.", + "x-example": true } }, "required": [ - "size" + "$id", + "enabled" ], "example": { - "size": 8 + "$id": "password-dictionary", + "enabled": true } }, - "healthStatus": { - "description": "Health Status", + "policyPasswordHistory": { + "description": "Policy Password History", "type": "object", "properties": { - "name": { + "$id": { "type": "string", - "description": "Name of the service.", - "x-example": "database" + "description": "Policy ID.", + "x-example": "password-dictionary" }, - "ping": { + "total": { "type": "integer", - "description": "Duration in milliseconds how long the health check took.", - "x-example": 128, + "description": "Password history length. A value of 0 means the policy is disabled.", + "x-example": 5, "format": "int32" - }, - "status": { - "type": "string", - "description": "Service status. Possible values are: `pass`, `fail`", - "x-example": "pass", - "enum": [ - "pass", - "fail" - ], - "x-enum-name": "HealthCheckStatus" } }, "required": [ - "name", - "ping", - "status" + "$id", + "total" ], "example": { - "name": "database", - "ping": 128, - "status": "pass" + "$id": "password-dictionary", + "total": 5 } }, - "healthCertificate": { - "description": "Health Certificate", + "policyPasswordStrength": { + "description": "Policy Password Strength", "type": "object", "properties": { - "name": { + "$id": { "type": "string", - "description": "Certificate name", - "x-example": "\/CN=www.google.com" + "description": "Policy ID.", + "x-example": "password-dictionary" }, - "subjectSN": { - "type": "string", - "description": "Subject SN", - "x-example": "" + "min": { + "type": "integer", + "description": "Minimum password length required for user passwords.", + "x-example": 12, + "format": "int32" }, - "issuerOrganisation": { - "type": "string", - "description": "Issuer organisation", - "x-example": "" + "uppercase": { + "type": "boolean", + "description": "Whether passwords must include at least one uppercase letter.", + "x-example": true }, - "validFrom": { - "type": "string", - "description": "Valid from", - "x-example": "1704200998" + "lowercase": { + "type": "boolean", + "description": "Whether passwords must include at least one lowercase letter.", + "x-example": true }, - "validTo": { - "type": "string", - "description": "Valid to", - "x-example": "1711458597" + "number": { + "type": "boolean", + "description": "Whether passwords must include at least one number.", + "x-example": true }, - "signatureTypeSN": { - "type": "string", - "description": "Signature type SN", - "x-example": "RSA-SHA256" + "symbols": { + "type": "boolean", + "description": "Whether passwords must include at least one symbol.", + "x-example": true } }, "required": [ - "name", - "subjectSN", - "issuerOrganisation", - "validFrom", - "validTo", - "signatureTypeSN" + "$id", + "min", + "uppercase", + "lowercase", + "number", + "symbols" ], "example": { - "name": "\/CN=www.google.com", - "subjectSN": "", - "issuerOrganisation": "", - "validFrom": "1704200998", - "validTo": "1711458597", - "signatureTypeSN": "RSA-SHA256" + "$id": "password-dictionary", + "min": 12, + "uppercase": true, + "lowercase": true, + "number": true, + "symbols": true } }, - "healthTime": { - "description": "Health Time", + "policyPasswordPersonalData": { + "description": "Policy Password Personal Data", "type": "object", "properties": { - "remoteTime": { - "type": "integer", - "description": "Current unix timestamp on trustful remote server.", - "x-example": 1639490751, - "format": "int32" - }, - "localTime": { - "type": "integer", - "description": "Current unix timestamp of local server where Appwrite runs.", - "x-example": 1639490844, - "format": "int32" + "$id": { + "type": "string", + "description": "Policy ID.", + "x-example": "password-dictionary" }, - "diff": { - "type": "integer", - "description": "Difference of unix remote and local timestamps in milliseconds.", - "x-example": 93, - "format": "int32" + "enabled": { + "type": "boolean", + "description": "Whether password personal data policy is enabled.", + "x-example": true } }, "required": [ - "remoteTime", - "localTime", - "diff" + "$id", + "enabled" ], "example": { - "remoteTime": 1639490751, - "localTime": 1639490844, - "diff": 93 + "$id": "password-dictionary", + "enabled": true } }, - "metric": { - "description": "Metric", + "policySessionAlert": { + "description": "Policy Session Alert", "type": "object", "properties": { - "value": { - "type": "integer", - "description": "The value of this metric at the timestamp.", - "x-example": 1, - "format": "int32" - }, - "date": { + "$id": { "type": "string", - "description": "The date at which this metric was aggregated in ISO 8601 format.", - "x-example": "2020-10-15T06:38:00.000+00:00" + "description": "Policy ID.", + "x-example": "password-dictionary" + }, + "enabled": { + "type": "boolean", + "description": "Whether session alert policy is enabled.", + "x-example": true } }, "required": [ - "value", - "date" + "$id", + "enabled" ], "example": { - "value": 1, - "date": "2020-10-15T06:38:00.000+00:00" + "$id": "password-dictionary", + "enabled": true } }, - "metricBreakdown": { - "description": "Metric Breakdown", + "policySessionDuration": { + "description": "Policy Session Duration", "type": "object", "properties": { - "resourceId": { - "type": "string", - "description": "Resource ID.", - "x-example": "5e5ea5c16897e", - "nullable": true - }, - "name": { + "$id": { "type": "string", - "description": "Resource name.", - "x-example": "Documents" + "description": "Policy ID.", + "x-example": "password-dictionary" }, - "value": { + "duration": { "type": "integer", - "description": "The value of this metric at the timestamp.", - "x-example": 1, + "description": "Session duration in seconds.", + "x-example": 3600, "format": "int32" - }, - "estimate": { - "type": "number", - "description": "The estimated value of this metric at the end of the period.", - "x-example": 1, - "format": "double", - "nullable": true } }, "required": [ - "name", - "value" + "$id", + "duration" ], "example": { - "resourceId": "5e5ea5c16897e", - "name": "Documents", - "value": 1, - "estimate": 1 + "$id": "password-dictionary", + "duration": 3600 } }, - "usageDatabases": { - "description": "UsageDatabases", + "policySessionInvalidation": { + "description": "Policy Session Invalidation", "type": "object", "properties": { - "range": { + "$id": { "type": "string", - "description": "Time range of the usage stats.", - "x-example": "30d" - }, - "databasesTotal": { - "type": "integer", - "description": "Total aggregated number of databases.", - "x-example": 0, - "format": "int32" - }, - "collectionsTotal": { - "type": "integer", - "description": "Total aggregated number of collections.", - "x-example": 0, - "format": "int32" - }, - "tablesTotal": { - "type": "integer", - "description": "Total aggregated number of tables.", - "x-example": 0, - "format": "int32" - }, - "documentsTotal": { - "type": "integer", - "description": "Total aggregated number of documents.", - "x-example": 0, - "format": "int32" - }, - "rowsTotal": { - "type": "integer", - "description": "Total aggregated number of rows.", - "x-example": 0, - "format": "int32" - }, - "storageTotal": { - "type": "integer", - "description": "Total aggregated number of total databases storage in bytes.", - "x-example": 0, - "format": "int32" - }, - "databasesReadsTotal": { - "type": "integer", - "description": "Total number of databases reads.", - "x-example": 0, - "format": "int32" - }, - "databasesWritesTotal": { - "type": "integer", - "description": "Total number of databases writes.", - "x-example": 0, - "format": "int32" - }, - "databases": { - "type": "array", - "description": "Aggregated number of databases per period.", - "items": { - "$ref": "#\/components\/schemas\/metric" - }, - "x-example": [] - }, - "collections": { - "type": "array", - "description": "Aggregated number of collections per period.", - "items": { - "$ref": "#\/components\/schemas\/metric" - }, - "x-example": [] - }, - "tables": { - "type": "array", - "description": "Aggregated number of tables per period.", - "items": { - "$ref": "#\/components\/schemas\/metric" - }, - "x-example": [] - }, - "documents": { - "type": "array", - "description": "Aggregated number of documents per period.", - "items": { - "$ref": "#\/components\/schemas\/metric" - }, - "x-example": [] - }, - "rows": { - "type": "array", - "description": "Aggregated number of rows per period.", - "items": { - "$ref": "#\/components\/schemas\/metric" - }, - "x-example": [] - }, - "storage": { - "type": "array", - "description": "An array of the aggregated number of databases storage in bytes per period.", - "items": { - "$ref": "#\/components\/schemas\/metric" - }, - "x-example": [] + "description": "Policy ID.", + "x-example": "password-dictionary" }, - "databasesReads": { - "type": "array", - "description": "An array of aggregated number of database reads.", - "items": { - "$ref": "#\/components\/schemas\/metric" - }, - "x-example": [] + "enabled": { + "type": "boolean", + "description": "Whether session invalidation policy is enabled.", + "x-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.", + "x-example": "password-dictionary" }, - "databasesWrites": { - "type": "array", - "description": "An array of aggregated number of database writes.", - "items": { - "$ref": "#\/components\/schemas\/metric" - }, - "x-example": [] + "total": { + "type": "integer", + "description": "Maximum number of sessions allowed per user. A value of 0 means the policy is disabled.", + "x-example": 10, + "format": "int32" } }, "required": [ - "range", - "databasesTotal", - "collectionsTotal", - "tablesTotal", - "documentsTotal", - "rowsTotal", - "storageTotal", - "databasesReadsTotal", - "databasesWritesTotal", - "databases", - "collections", - "tables", - "documents", - "rows", - "storage", - "databasesReads", - "databasesWrites" + "$id", + "total" ], "example": { - "range": "30d", - "databasesTotal": 0, - "collectionsTotal": 0, - "tablesTotal": 0, - "documentsTotal": 0, - "rowsTotal": 0, - "storageTotal": 0, - "databasesReadsTotal": 0, - "databasesWritesTotal": 0, - "databases": [], - "collections": [], - "tables": [], - "documents": [], - "rows": [], - "storage": [], - "databasesReads": [], - "databasesWrites": [] + "$id": "password-dictionary", + "total": 10 } }, - "usageDatabase": { - "description": "UsageDatabase", + "policyUserLimit": { + "description": "Policy User Limit", "type": "object", "properties": { - "range": { + "$id": { "type": "string", - "description": "Time range of the usage stats.", - "x-example": "30d" + "description": "Policy ID.", + "x-example": "password-dictionary" }, - "collectionsTotal": { + "total": { "type": "integer", - "description": "Total aggregated number of collections.", - "x-example": 0, + "description": "Maximum number of users allowed in the project. A value of 0 means the policy is disabled.", + "x-example": 100, "format": "int32" + } + }, + "required": [ + "$id", + "total" + ], + "example": { + "$id": "password-dictionary", + "total": 100 + } + }, + "policyMembershipPrivacy": { + "description": "Policy Membership Privacy", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "Policy ID.", + "x-example": "password-dictionary" }, - "tablesTotal": { - "type": "integer", - "description": "Total aggregated number of tables.", - "x-example": 0, - "format": "int32" + "userId": { + "type": "boolean", + "description": "Whether user ID is visible in memberships.", + "x-example": true }, - "documentsTotal": { - "type": "integer", - "description": "Total aggregated number of documents.", - "x-example": 0, - "format": "int32" + "userEmail": { + "type": "boolean", + "description": "Whether user email is visible in memberships.", + "x-example": true }, - "rowsTotal": { - "type": "integer", - "description": "Total aggregated number of rows.", - "x-example": 0, - "format": "int32" + "userPhone": { + "type": "boolean", + "description": "Whether user phone is visible in memberships.", + "x-example": true }, - "storageTotal": { - "type": "integer", - "description": "Total aggregated number of total storage used in bytes.", - "x-example": 0, - "format": "int32" + "userName": { + "type": "boolean", + "description": "Whether user name is visible in memberships.", + "x-example": true }, - "databaseReadsTotal": { - "type": "integer", - "description": "Total number of databases reads.", - "x-example": 0, - "format": "int32" + "userMFA": { + "type": "boolean", + "description": "Whether user MFA status is visible in memberships.", + "x-example": true }, - "databaseWritesTotal": { - "type": "integer", - "description": "Total number of databases writes.", - "x-example": 0, - "format": "int32" + "userAccessedAt": { + "type": "boolean", + "description": "Whether user last access time is visible in memberships.", + "x-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 + } + }, + "platformWeb": { + "description": "Platform Web", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "Platform ID.", + "x-example": "5e5ea5c16897e" }, - "collections": { - "type": "array", - "description": "Aggregated number of collections per period.", - "items": { - "$ref": "#\/components\/schemas\/metric" - }, - "x-example": [] + "$createdAt": { + "type": "string", + "description": "Platform creation date in ISO 8601 format.", + "x-example": "2020-10-15T06:38:00.000+00:00" }, - "tables": { - "type": "array", - "description": "Aggregated number of tables per period.", - "items": { - "$ref": "#\/components\/schemas\/metric" - }, - "x-example": [] + "$updatedAt": { + "type": "string", + "description": "Platform update date in ISO 8601 format.", + "x-example": "2020-10-15T06:38:00.000+00:00" }, - "documents": { - "type": "array", - "description": "Aggregated number of documents per period.", - "items": { - "$ref": "#\/components\/schemas\/metric" - }, - "x-example": [] + "name": { + "type": "string", + "description": "Platform name.", + "x-example": "My Web App" }, - "rows": { - "type": "array", - "description": "Aggregated number of rows per period.", - "items": { - "$ref": "#\/components\/schemas\/metric" - }, - "x-example": [] + "type": { + "type": "string", + "description": "Platform type. Possible values are: windows, apple, android, linux, web.", + "x-example": "web", + "enum": [ + "windows", + "apple", + "android", + "linux", + "web" + ], + "x-enum-name": "PlatformType" }, - "storage": { - "type": "array", - "description": "Aggregated storage used in bytes per period.", - "items": { - "$ref": "#\/components\/schemas\/metric" - }, - "x-example": [] + "hostname": { + "type": "string", + "description": "Web app hostname. Empty string for other platforms.", + "x-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.", + "x-example": "5e5ea5c16897e" }, - "databaseReads": { - "type": "array", - "description": "An array of aggregated number of database reads.", - "items": { - "$ref": "#\/components\/schemas\/metric" - }, - "x-example": [] + "$createdAt": { + "type": "string", + "description": "Platform creation date in ISO 8601 format.", + "x-example": "2020-10-15T06:38:00.000+00:00" }, - "databaseWrites": { - "type": "array", - "description": "An array of aggregated number of database writes.", - "items": { - "$ref": "#\/components\/schemas\/metric" - }, - "x-example": [] + "$updatedAt": { + "type": "string", + "description": "Platform update date in ISO 8601 format.", + "x-example": "2020-10-15T06:38:00.000+00:00" + }, + "name": { + "type": "string", + "description": "Platform name.", + "x-example": "My Web App" + }, + "type": { + "type": "string", + "description": "Platform type. Possible values are: windows, apple, android, linux, web.", + "x-example": "web", + "enum": [ + "windows", + "apple", + "android", + "linux", + "web" + ], + "x-enum-name": "PlatformType" + }, + "bundleIdentifier": { + "type": "string", + "description": "Apple bundle identifier.", + "x-example": "com.company.appname" } }, "required": [ - "range", - "collectionsTotal", - "tablesTotal", - "documentsTotal", - "rowsTotal", - "storageTotal", - "databaseReadsTotal", - "databaseWritesTotal", - "collections", - "tables", - "documents", - "rows", - "storage", - "databaseReads", - "databaseWrites" + "$id", + "$createdAt", + "$updatedAt", + "name", + "type", + "bundleIdentifier" ], "example": { - "range": "30d", - "collectionsTotal": 0, - "tablesTotal": 0, - "documentsTotal": 0, - "rowsTotal": 0, - "storageTotal": 0, - "databaseReadsTotal": 0, - "databaseWritesTotal": 0, - "collections": [], - "tables": [], - "documents": [], - "rows": [], - "storage": [], - "databaseReads": [], - "databaseWrites": [] + "$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" } }, - "usageTable": { - "description": "UsageTable", + "platformAndroid": { + "description": "Platform Android", "type": "object", "properties": { - "range": { + "$id": { "type": "string", - "description": "Time range of the usage stats.", - "x-example": "30d" + "description": "Platform ID.", + "x-example": "5e5ea5c16897e" }, - "rowsTotal": { - "type": "integer", - "description": "Total aggregated number of of rows.", - "x-example": 0, - "format": "int32" + "$createdAt": { + "type": "string", + "description": "Platform creation date in ISO 8601 format.", + "x-example": "2020-10-15T06:38:00.000+00:00" }, - "rows": { - "type": "array", - "description": "Aggregated number of rows per period.", - "items": { - "$ref": "#\/components\/schemas\/metric" - }, - "x-example": [] + "$updatedAt": { + "type": "string", + "description": "Platform update date in ISO 8601 format.", + "x-example": "2020-10-15T06:38:00.000+00:00" + }, + "name": { + "type": "string", + "description": "Platform name.", + "x-example": "My Web App" + }, + "type": { + "type": "string", + "description": "Platform type. Possible values are: windows, apple, android, linux, web.", + "x-example": "web", + "enum": [ + "windows", + "apple", + "android", + "linux", + "web" + ], + "x-enum-name": "PlatformType" + }, + "applicationId": { + "type": "string", + "description": "Android application ID.", + "x-example": "com.company.appname" } }, "required": [ - "range", - "rowsTotal", - "rows" + "$id", + "$createdAt", + "$updatedAt", + "name", + "type", + "applicationId" ], "example": { - "range": "30d", - "rowsTotal": 0, - "rows": [] + "$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" } }, - "usageCollection": { - "description": "UsageCollection", + "platformWindows": { + "description": "Platform Windows", "type": "object", "properties": { - "range": { + "$id": { "type": "string", - "description": "Time range of the usage stats.", - "x-example": "30d" + "description": "Platform ID.", + "x-example": "5e5ea5c16897e" }, - "documentsTotal": { - "type": "integer", - "description": "Total aggregated number of of documents.", - "x-example": 0, - "format": "int32" + "$createdAt": { + "type": "string", + "description": "Platform creation date in ISO 8601 format.", + "x-example": "2020-10-15T06:38:00.000+00:00" }, - "documents": { - "type": "array", - "description": "Aggregated number of documents per period.", - "items": { - "$ref": "#\/components\/schemas\/metric" - }, - "x-example": [] + "$updatedAt": { + "type": "string", + "description": "Platform update date in ISO 8601 format.", + "x-example": "2020-10-15T06:38:00.000+00:00" + }, + "name": { + "type": "string", + "description": "Platform name.", + "x-example": "My Web App" + }, + "type": { + "type": "string", + "description": "Platform type. Possible values are: windows, apple, android, linux, web.", + "x-example": "web", + "enum": [ + "windows", + "apple", + "android", + "linux", + "web" + ], + "x-enum-name": "PlatformType" + }, + "packageIdentifierName": { + "type": "string", + "description": "Windows package identifier name.", + "x-example": "com.company.appname" } }, "required": [ - "range", - "documentsTotal", - "documents" + "$id", + "$createdAt", + "$updatedAt", + "name", + "type", + "packageIdentifierName" ], "example": { - "range": "30d", - "documentsTotal": 0, - "documents": [] + "$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" } }, - "usageUsers": { - "description": "UsageUsers", + "platformLinux": { + "description": "Platform Linux", "type": "object", "properties": { - "range": { + "$id": { "type": "string", - "description": "Time range of the usage stats.", - "x-example": "30d" + "description": "Platform ID.", + "x-example": "5e5ea5c16897e" }, - "usersTotal": { - "type": "integer", - "description": "Total aggregated number of statistics of users.", - "x-example": 0, - "format": "int32" + "$createdAt": { + "type": "string", + "description": "Platform creation date in ISO 8601 format.", + "x-example": "2020-10-15T06:38:00.000+00:00" }, - "sessionsTotal": { - "type": "integer", - "description": "Total aggregated number of active sessions.", - "x-example": 0, - "format": "int32" + "$updatedAt": { + "type": "string", + "description": "Platform update date in ISO 8601 format.", + "x-example": "2020-10-15T06:38:00.000+00:00" }, - "users": { - "type": "array", - "description": "Aggregated number of users per period.", - "items": { - "$ref": "#\/components\/schemas\/metric" - }, - "x-example": [] + "name": { + "type": "string", + "description": "Platform name.", + "x-example": "My Web App" }, - "sessions": { - "type": "array", - "description": "Aggregated number of active sessions per period.", - "items": { - "$ref": "#\/components\/schemas\/metric" - }, - "x-example": [] + "type": { + "type": "string", + "description": "Platform type. Possible values are: windows, apple, android, linux, web.", + "x-example": "web", + "enum": [ + "windows", + "apple", + "android", + "linux", + "web" + ], + "x-enum-name": "PlatformType" + }, + "packageName": { + "type": "string", + "description": "Linux package name.", + "x-example": "com.company.appname" } }, "required": [ - "range", - "usersTotal", - "sessionsTotal", - "users", - "sessions" + "$id", + "$createdAt", + "$updatedAt", + "name", + "type", + "packageName" ], "example": { - "range": "30d", - "usersTotal": 0, - "sessionsTotal": 0, - "users": [], - "sessions": [] + "$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" } }, - "usagePresence": { - "description": "UsagePresence", + "platformList": { + "description": "Platforms List", "type": "object", "properties": { - "range": { - "type": "string", - "description": "Time range of the usage stats.", - "x-example": "30d" - }, - "usersOnlineTotal": { + "total": { "type": "integer", - "description": "Current total number of online users.", - "x-example": 0, + "description": "Total number of platforms in the given project.", + "x-example": 5, "format": "int32" }, - "presences": { + "platforms": { "type": "array", - "description": "Aggregated number of online users per period.", + "description": "List of platforms.", "items": { - "$ref": "#\/components\/schemas\/metric" + "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" + } + } }, - "x-example": [] + "x-example": "" } }, "required": [ - "range", - "usersOnlineTotal", - "presences" + "total", + "platforms" ], "example": { - "range": "30d", - "usersOnlineTotal": 0, - "presences": [] + "total": 5, + "platforms": "" } }, - "usageStorage": { - "description": "StorageUsage", + "variable": { + "description": "Variable", "type": "object", "properties": { - "range": { + "$id": { "type": "string", - "description": "Time range of the usage stats.", - "x-example": "30d" + "description": "Variable ID.", + "x-example": "5e5ea5c16897e" }, - "bucketsTotal": { - "type": "integer", - "description": "Total aggregated number of buckets", - "x-example": 0, - "format": "int32" + "$createdAt": { + "type": "string", + "description": "Variable creation date in ISO 8601 format.", + "x-example": "2020-10-15T06:38:00.000+00:00" }, - "filesTotal": { - "type": "integer", - "description": "Total aggregated number of files.", - "x-example": 0, - "format": "int32" + "$updatedAt": { + "type": "string", + "description": "Variable creation date in ISO 8601 format.", + "x-example": "2020-10-15T06:38:00.000+00:00" }, - "filesStorageTotal": { - "type": "integer", - "description": "Total aggregated number of files storage (in bytes).", - "x-example": 0, - "format": "int32" + "key": { + "type": "string", + "description": "Variable key.", + "x-example": "API_KEY" }, - "buckets": { - "type": "array", - "description": "Aggregated number of buckets per period.", - "items": { - "$ref": "#\/components\/schemas\/metric" - }, - "x-example": [] + "value": { + "type": "string", + "description": "Variable value.", + "x-example": "myPa$$word1" }, - "files": { - "type": "array", - "description": "Aggregated number of files per period.", - "items": { - "$ref": "#\/components\/schemas\/metric" - }, - "x-example": [] + "secret": { + "type": "boolean", + "description": "Variable secret flag. Secret variables can only be updated or deleted, but never read.", + "x-example": false }, - "storage": { - "type": "array", - "description": "Aggregated number of files storage (in bytes) per period .", - "items": { - "$ref": "#\/components\/schemas\/metric" - }, - "x-example": [] + "resourceType": { + "type": "string", + "description": "Service to which the variable belongs. Possible values are \"project\", \"function\"", + "x-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.", + "x-example": "myAwesomeFunction" } }, "required": [ - "range", - "bucketsTotal", - "filesTotal", - "filesStorageTotal", - "buckets", - "files", - "storage" + "$id", + "$createdAt", + "$updatedAt", + "key", + "value", + "secret", + "resourceType", + "resourceId" ], "example": { - "range": "30d", - "bucketsTotal": 0, - "filesTotal": 0, - "filesStorageTotal": 0, - "buckets": [], - "files": [], - "storage": [] + "$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" } }, - "usageBuckets": { - "description": "UsageBuckets", + "country": { + "description": "Country", "type": "object", "properties": { - "range": { + "name": { "type": "string", - "description": "Time range of the usage stats.", - "x-example": "30d" - }, - "filesTotal": { - "type": "integer", - "description": "Total aggregated number of bucket files.", - "x-example": 0, - "format": "int32" - }, - "filesStorageTotal": { - "type": "integer", - "description": "Total aggregated number of bucket files storage (in bytes).", - "x-example": 0, - "format": "int32" - }, - "files": { - "type": "array", - "description": "Aggregated number of bucket files per period.", - "items": { - "$ref": "#\/components\/schemas\/metric" - }, - "x-example": [] - }, - "storage": { - "type": "array", - "description": "Aggregated number of bucket storage files (in bytes) per period.", - "items": { - "$ref": "#\/components\/schemas\/metric" - }, - "x-example": [] - }, - "imageTransformations": { - "type": "array", - "description": "Aggregated number of files transformations per period.", - "items": { - "$ref": "#\/components\/schemas\/metric" - }, - "x-example": [] + "description": "Country name.", + "x-example": "United States" }, - "imageTransformationsTotal": { - "type": "integer", - "description": "Total aggregated number of files transformations.", - "x-example": 0, - "format": "int32" + "code": { + "type": "string", + "description": "Country two-character ISO 3166-1 alpha code.", + "x-example": "US" } }, "required": [ - "range", - "filesTotal", - "filesStorageTotal", - "files", - "storage", - "imageTransformations", - "imageTransformationsTotal" + "name", + "code" ], "example": { - "range": "30d", - "filesTotal": 0, - "filesStorageTotal": 0, - "files": [], - "storage": [], - "imageTransformations": [], - "imageTransformationsTotal": 0 + "name": "United States", + "code": "US" } }, - "usageFunctions": { - "description": "UsageFunctions", + "continent": { + "description": "Continent", "type": "object", "properties": { - "range": { + "name": { "type": "string", - "description": "Time range of the usage stats.", - "x-example": "30d" - }, - "functionsTotal": { - "type": "integer", - "description": "Total aggregated number of functions.", - "x-example": 0, - "format": "int32" - }, - "deploymentsTotal": { - "type": "integer", - "description": "Total aggregated number of functions deployments.", - "x-example": 0, - "format": "int32" - }, - "deploymentsStorageTotal": { - "type": "integer", - "description": "Total aggregated sum of functions deployment storage.", - "x-example": 0, - "format": "int32" - }, - "buildsTotal": { - "type": "integer", - "description": "Total aggregated number of functions build.", - "x-example": 0, - "format": "int32" - }, - "buildsStorageTotal": { - "type": "integer", - "description": "total aggregated sum of functions build storage.", - "x-example": 0, - "format": "int32" - }, - "buildsTimeTotal": { - "type": "integer", - "description": "Total aggregated sum of functions build compute time.", - "x-example": 0, - "format": "int32" - }, - "buildsMbSecondsTotal": { - "type": "integer", - "description": "Total aggregated sum of functions build mbSeconds.", - "x-example": 0, - "format": "int32" - }, - "executionsTotal": { - "type": "integer", - "description": "Total aggregated number of functions execution.", - "x-example": 0, - "format": "int32" - }, - "executionsTimeTotal": { - "type": "integer", - "description": "Total aggregated sum of functions execution compute time.", - "x-example": 0, - "format": "int32" - }, - "executionsMbSecondsTotal": { - "type": "integer", - "description": "Total aggregated sum of functions execution mbSeconds.", - "x-example": 0, - "format": "int32" - }, - "functions": { - "type": "array", - "description": "Aggregated number of functions per period.", - "items": { - "$ref": "#\/components\/schemas\/metric" - }, - "x-example": 0 - }, - "deployments": { - "type": "array", - "description": "Aggregated number of functions deployment per period.", - "items": { - "$ref": "#\/components\/schemas\/metric" - }, - "x-example": [] - }, - "deploymentsStorage": { - "type": "array", - "description": "Aggregated number of functions deployment storage per period.", - "items": { - "$ref": "#\/components\/schemas\/metric" - }, - "x-example": [] - }, - "buildsSuccessTotal": { - "type": "integer", - "description": "Total aggregated number of successful function builds.", - "x-example": 0, - "format": "int32" - }, - "buildsFailedTotal": { - "type": "integer", - "description": "Total aggregated number of failed function builds.", - "x-example": 0, - "format": "int32" - }, - "builds": { - "type": "array", - "description": "Aggregated number of functions build per period.", - "items": { - "$ref": "#\/components\/schemas\/metric" - }, - "x-example": [] - }, - "buildsStorage": { - "type": "array", - "description": "Aggregated sum of functions build storage per period.", - "items": { - "$ref": "#\/components\/schemas\/metric" - }, - "x-example": [] - }, - "buildsTime": { - "type": "array", - "description": "Aggregated sum of functions build compute time per period.", - "items": { - "$ref": "#\/components\/schemas\/metric" - }, - "x-example": [] - }, - "buildsMbSeconds": { - "type": "array", - "description": "Aggregated sum of functions build mbSeconds per period.", - "items": { - "$ref": "#\/components\/schemas\/metric" - }, - "x-example": [] - }, - "executions": { - "type": "array", - "description": "Aggregated number of functions execution per period.", - "items": { - "$ref": "#\/components\/schemas\/metric" - }, - "x-example": [] - }, - "executionsTime": { - "type": "array", - "description": "Aggregated number of functions execution compute time per period.", - "items": { - "$ref": "#\/components\/schemas\/metric" - }, - "x-example": [] - }, - "executionsMbSeconds": { - "type": "array", - "description": "Aggregated number of functions mbSeconds per period.", - "items": { - "$ref": "#\/components\/schemas\/metric" - }, - "x-example": [] - }, - "buildsSuccess": { - "type": "array", - "description": "Aggregated number of successful function builds per period.", - "items": { - "$ref": "#\/components\/schemas\/metric" - }, - "x-example": [] + "description": "Continent name.", + "x-example": "Europe" }, - "buildsFailed": { - "type": "array", - "description": "Aggregated number of failed function builds per period.", - "items": { - "$ref": "#\/components\/schemas\/metric" - }, - "x-example": [] + "code": { + "type": "string", + "description": "Continent two letter code.", + "x-example": "EU" } }, "required": [ - "range", - "functionsTotal", - "deploymentsTotal", - "deploymentsStorageTotal", - "buildsTotal", - "buildsStorageTotal", - "buildsTimeTotal", - "buildsMbSecondsTotal", - "executionsTotal", - "executionsTimeTotal", - "executionsMbSecondsTotal", - "functions", - "deployments", - "deploymentsStorage", - "buildsSuccessTotal", - "buildsFailedTotal", - "builds", - "buildsStorage", - "buildsTime", - "buildsMbSeconds", - "executions", - "executionsTime", - "executionsMbSeconds", - "buildsSuccess", - "buildsFailed" + "name", + "code" ], "example": { - "range": "30d", - "functionsTotal": 0, - "deploymentsTotal": 0, - "deploymentsStorageTotal": 0, - "buildsTotal": 0, - "buildsStorageTotal": 0, - "buildsTimeTotal": 0, - "buildsMbSecondsTotal": 0, - "executionsTotal": 0, - "executionsTimeTotal": 0, - "executionsMbSecondsTotal": 0, - "functions": 0, - "deployments": [], - "deploymentsStorage": [], - "buildsSuccessTotal": 0, - "buildsFailedTotal": 0, - "builds": [], - "buildsStorage": [], - "buildsTime": [], - "buildsMbSeconds": [], - "executions": [], - "executionsTime": [], - "executionsMbSeconds": [], - "buildsSuccess": [], - "buildsFailed": [] + "name": "Europe", + "code": "EU" } }, - "usageFunction": { - "description": "UsageFunction", + "language": { + "description": "Language", "type": "object", "properties": { - "range": { + "name": { "type": "string", - "description": "The time range of the usage stats.", - "x-example": "30d" - }, - "deploymentsTotal": { - "type": "integer", - "description": "Total aggregated number of function deployments.", - "x-example": 0, - "format": "int32" - }, - "deploymentsStorageTotal": { - "type": "integer", - "description": "Total aggregated sum of function deployments storage.", - "x-example": 0, - "format": "int32" - }, - "buildsTotal": { - "type": "integer", - "description": "Total aggregated number of function builds.", - "x-example": 0, - "format": "int32" - }, - "buildsSuccessTotal": { - "type": "integer", - "description": "Total aggregated number of successful function builds.", - "x-example": 0, - "format": "int32" - }, - "buildsFailedTotal": { - "type": "integer", - "description": "Total aggregated number of failed function builds.", - "x-example": 0, - "format": "int32" - }, - "buildsStorageTotal": { - "type": "integer", - "description": "total aggregated sum of function builds storage.", - "x-example": 0, - "format": "int32" - }, - "buildsTimeTotal": { - "type": "integer", - "description": "Total aggregated sum of function builds compute time.", - "x-example": 0, - "format": "int32" - }, - "buildsTimeAverage": { - "type": "integer", - "description": "Average builds compute time.", - "x-example": 0, - "format": "int32" - }, - "buildsMbSecondsTotal": { - "type": "integer", - "description": "Total aggregated sum of function builds mbSeconds.", - "x-example": 0, - "format": "int32" - }, - "executionsTotal": { - "type": "integer", - "description": "Total aggregated number of function executions.", - "x-example": 0, - "format": "int32" - }, - "executionsTimeTotal": { - "type": "integer", - "description": "Total aggregated sum of function executions compute time.", - "x-example": 0, - "format": "int32" - }, - "executionsMbSecondsTotal": { - "type": "integer", - "description": "Total aggregated sum of function executions mbSeconds.", - "x-example": 0, - "format": "int32" - }, - "deployments": { - "type": "array", - "description": "Aggregated number of function deployments per period.", - "items": { - "$ref": "#\/components\/schemas\/metric" - }, - "x-example": [] - }, - "deploymentsStorage": { - "type": "array", - "description": "Aggregated number of function deployments storage per period.", - "items": { - "$ref": "#\/components\/schemas\/metric" - }, - "x-example": [] - }, - "builds": { - "type": "array", - "description": "Aggregated number of function builds per period.", - "items": { - "$ref": "#\/components\/schemas\/metric" - }, - "x-example": [] - }, - "buildsStorage": { - "type": "array", - "description": "Aggregated sum of function builds storage per period.", - "items": { - "$ref": "#\/components\/schemas\/metric" - }, - "x-example": [] - }, - "buildsTime": { - "type": "array", - "description": "Aggregated sum of function builds compute time per period.", - "items": { - "$ref": "#\/components\/schemas\/metric" - }, - "x-example": [] - }, - "buildsMbSeconds": { - "type": "array", - "description": "Aggregated number of function builds mbSeconds per period.", - "items": { - "$ref": "#\/components\/schemas\/metric" - }, - "x-example": [] - }, - "executions": { - "type": "array", - "description": "Aggregated number of function executions per period.", - "items": { - "$ref": "#\/components\/schemas\/metric" - }, - "x-example": [] - }, - "executionsTime": { - "type": "array", - "description": "Aggregated number of function executions compute time per period.", - "items": { - "$ref": "#\/components\/schemas\/metric" - }, - "x-example": [] - }, - "executionsMbSeconds": { - "type": "array", - "description": "Aggregated number of function mbSeconds per period.", - "items": { - "$ref": "#\/components\/schemas\/metric" - }, - "x-example": [] + "description": "Language name.", + "x-example": "Italian" }, - "buildsSuccess": { - "type": "array", - "description": "Aggregated number of successful builds per period.", - "items": { - "$ref": "#\/components\/schemas\/metric" - }, - "x-example": [] + "code": { + "type": "string", + "description": "Language two-character ISO 639-1 codes.", + "x-example": "it" }, - "buildsFailed": { - "type": "array", - "description": "Aggregated number of failed builds per period.", - "items": { - "$ref": "#\/components\/schemas\/metric" - }, - "x-example": [] + "nativeName": { + "type": "string", + "description": "Language native name.", + "x-example": "Italiano" } }, "required": [ - "range", - "deploymentsTotal", - "deploymentsStorageTotal", - "buildsTotal", - "buildsSuccessTotal", - "buildsFailedTotal", - "buildsStorageTotal", - "buildsTimeTotal", - "buildsTimeAverage", - "buildsMbSecondsTotal", - "executionsTotal", - "executionsTimeTotal", - "executionsMbSecondsTotal", - "deployments", - "deploymentsStorage", - "builds", - "buildsStorage", - "buildsTime", - "buildsMbSeconds", - "executions", - "executionsTime", - "executionsMbSeconds", - "buildsSuccess", - "buildsFailed" + "name", + "code", + "nativeName" ], "example": { - "range": "30d", - "deploymentsTotal": 0, - "deploymentsStorageTotal": 0, - "buildsTotal": 0, - "buildsSuccessTotal": 0, - "buildsFailedTotal": 0, - "buildsStorageTotal": 0, - "buildsTimeTotal": 0, - "buildsTimeAverage": 0, - "buildsMbSecondsTotal": 0, - "executionsTotal": 0, - "executionsTimeTotal": 0, - "executionsMbSecondsTotal": 0, - "deployments": [], - "deploymentsStorage": [], - "builds": [], - "buildsStorage": [], - "buildsTime": [], - "buildsMbSeconds": [], - "executions": [], - "executionsTime": [], - "executionsMbSeconds": [], - "buildsSuccess": [], - "buildsFailed": [] + "name": "Italian", + "code": "it", + "nativeName": "Italiano" } }, - "usageSites": { - "description": "UsageSites", + "currency": { + "description": "Currency", "type": "object", "properties": { - "range": { + "symbol": { "type": "string", - "description": "Time range of the usage stats.", - "x-example": "30d" - }, - "sitesTotal": { - "type": "integer", - "description": "Total aggregated number of sites.", - "x-example": 0, - "format": "int32" - }, - "sites": { - "type": "array", - "description": "Aggregated number of sites per period.", - "items": { - "$ref": "#\/components\/schemas\/metric" - }, - "x-example": [] - }, - "deploymentsTotal": { - "type": "integer", - "description": "Total aggregated number of sites deployments.", - "x-example": 0, - "format": "int32" - }, - "deploymentsStorageTotal": { - "type": "integer", - "description": "Total aggregated sum of sites deployment storage.", - "x-example": 0, - "format": "int32" + "description": "Currency symbol.", + "x-example": "$" }, - "buildsTotal": { - "type": "integer", - "description": "Total aggregated number of sites build.", - "x-example": 0, - "format": "int32" + "name": { + "type": "string", + "description": "Currency name.", + "x-example": "US dollar" }, - "buildsStorageTotal": { - "type": "integer", - "description": "total aggregated sum of sites build storage.", - "x-example": 0, - "format": "int32" + "symbolNative": { + "type": "string", + "description": "Currency native symbol.", + "x-example": "$" }, - "buildsTimeTotal": { + "decimalDigits": { "type": "integer", - "description": "Total aggregated sum of sites build compute time.", - "x-example": 0, + "description": "Number of decimal digits.", + "x-example": 2, "format": "int32" }, - "buildsMbSecondsTotal": { - "type": "integer", - "description": "Total aggregated sum of sites build mbSeconds.", + "rounding": { + "type": "number", + "description": "Currency digit rounding.", "x-example": 0, - "format": "int32" + "format": "double" }, - "executionsTotal": { - "type": "integer", - "description": "Total aggregated number of sites execution.", - "x-example": 0, - "format": "int32" + "code": { + "type": "string", + "description": "Currency code in [ISO 4217-1](http:\/\/en.wikipedia.org\/wiki\/ISO_4217) three-character format.", + "x-example": "USD" }, - "executionsTimeTotal": { - "type": "integer", - "description": "Total aggregated sum of sites execution compute time.", - "x-example": 0, - "format": "int32" + "namePlural": { + "type": "string", + "description": "Currency plural name", + "x-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.", + "x-example": "+1" }, - "executionsMbSecondsTotal": { - "type": "integer", - "description": "Total aggregated sum of sites execution mbSeconds.", - "x-example": 0, - "format": "int32" + "countryCode": { + "type": "string", + "description": "Country two-character ISO 3166-1 alpha code.", + "x-example": "US" }, - "requestsTotal": { + "countryName": { + "type": "string", + "description": "Country name.", + "x-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": "Total aggregated number of requests.", - "x-example": 0, + "description": "The value of this metric at the timestamp.", + "x-example": 1, "format": "int32" }, - "requests": { - "type": "array", - "description": "Aggregated number of requests per period.", - "items": { - "$ref": "#\/components\/schemas\/metric" - }, - "x-example": [] - }, - "inboundTotal": { - "type": "integer", - "description": "Total aggregated inbound bandwidth.", - "x-example": 0, - "format": "int32" + "date": { + "type": "string", + "description": "The date at which this metric was aggregated in ISO 8601 format.", + "x-example": "2020-10-15T06:38:00.000+00:00" + } + }, + "required": [ + "value", + "date" + ], + "example": { + "value": 1, + "date": "2020-10-15T06:38:00.000+00:00" + } + }, + "metricBreakdown": { + "description": "Metric Breakdown", + "type": "object", + "properties": { + "resourceId": { + "type": "string", + "description": "Resource ID.", + "x-example": "5e5ea5c16897e", + "nullable": true }, - "inbound": { - "type": "array", - "description": "Aggregated number of inbound bandwidth per period.", - "items": { - "$ref": "#\/components\/schemas\/metric" - }, - "x-example": [] + "name": { + "type": "string", + "description": "Resource name.", + "x-example": "Documents" }, - "outboundTotal": { + "value": { "type": "integer", - "description": "Total aggregated outbound bandwidth.", - "x-example": 0, + "description": "The value of this metric at the timestamp.", + "x-example": 1, "format": "int32" }, - "outbound": { - "type": "array", - "description": "Aggregated number of outbound bandwidth per period.", - "items": { - "$ref": "#\/components\/schemas\/metric" - }, - "x-example": [] - }, - "deployments": { - "type": "array", - "description": "Aggregated number of sites deployment per period.", - "items": { - "$ref": "#\/components\/schemas\/metric" - }, - "x-example": [] - }, - "deploymentsStorage": { - "type": "array", - "description": "Aggregated number of sites deployment storage per period.", - "items": { - "$ref": "#\/components\/schemas\/metric" - }, - "x-example": [] + "estimate": { + "type": "number", + "description": "The estimated value of this metric at the end of the period.", + "x-example": 1, + "format": "double", + "nullable": true + } + }, + "required": [ + "name", + "value" + ], + "example": { + "resourceId": "5e5ea5c16897e", + "name": "Documents", + "value": 1, + "estimate": 1 + } + }, + "usageUsers": { + "description": "UsageUsers", + "type": "object", + "properties": { + "range": { + "type": "string", + "description": "Time range of the usage stats.", + "x-example": "30d" }, - "buildsSuccessTotal": { + "usersTotal": { "type": "integer", - "description": "Total aggregated number of successful site builds.", + "description": "Total aggregated number of statistics of users.", "x-example": 0, "format": "int32" }, - "buildsFailedTotal": { + "sessionsTotal": { "type": "integer", - "description": "Total aggregated number of failed site builds.", + "description": "Total aggregated number of active sessions.", "x-example": 0, "format": "int32" }, - "builds": { - "type": "array", - "description": "Aggregated number of sites build per period.", - "items": { - "$ref": "#\/components\/schemas\/metric" - }, - "x-example": [] - }, - "buildsStorage": { - "type": "array", - "description": "Aggregated sum of sites build storage per period.", - "items": { - "$ref": "#\/components\/schemas\/metric" - }, - "x-example": [] - }, - "buildsTime": { - "type": "array", - "description": "Aggregated sum of sites build compute time per period.", - "items": { - "$ref": "#\/components\/schemas\/metric" - }, - "x-example": [] - }, - "buildsMbSeconds": { - "type": "array", - "description": "Aggregated sum of sites build mbSeconds per period.", - "items": { - "$ref": "#\/components\/schemas\/metric" - }, - "x-example": [] - }, - "executions": { - "type": "array", - "description": "Aggregated number of sites execution per period.", - "items": { - "$ref": "#\/components\/schemas\/metric" - }, - "x-example": [] - }, - "executionsTime": { - "type": "array", - "description": "Aggregated number of sites execution compute time per period.", - "items": { - "$ref": "#\/components\/schemas\/metric" - }, - "x-example": [] - }, - "executionsMbSeconds": { - "type": "array", - "description": "Aggregated number of sites mbSeconds per period.", - "items": { - "$ref": "#\/components\/schemas\/metric" - }, - "x-example": [] - }, - "buildsSuccess": { + "users": { "type": "array", - "description": "Aggregated number of successful site builds per period.", + "description": "Aggregated number of users per period.", "items": { "$ref": "#\/components\/schemas\/metric" }, "x-example": [] }, - "buildsFailed": { + "sessions": { "type": "array", - "description": "Aggregated number of failed site builds per period.", + "description": "Aggregated number of active sessions per period.", "items": { "$ref": "#\/components\/schemas\/metric" }, @@ -107176,277 +106156,37 @@ }, "required": [ "range", - "sitesTotal", - "sites", - "deploymentsTotal", - "deploymentsStorageTotal", - "buildsTotal", - "buildsStorageTotal", - "buildsTimeTotal", - "buildsMbSecondsTotal", - "executionsTotal", - "executionsTimeTotal", - "executionsMbSecondsTotal", - "requestsTotal", - "requests", - "inboundTotal", - "inbound", - "outboundTotal", - "outbound", - "deployments", - "deploymentsStorage", - "buildsSuccessTotal", - "buildsFailedTotal", - "builds", - "buildsStorage", - "buildsTime", - "buildsMbSeconds", - "executions", - "executionsTime", - "executionsMbSeconds", - "buildsSuccess", - "buildsFailed" + "usersTotal", + "sessionsTotal", + "users", + "sessions" ], "example": { "range": "30d", - "sitesTotal": 0, - "sites": [], - "deploymentsTotal": 0, - "deploymentsStorageTotal": 0, - "buildsTotal": 0, - "buildsStorageTotal": 0, - "buildsTimeTotal": 0, - "buildsMbSecondsTotal": 0, - "executionsTotal": 0, - "executionsTimeTotal": 0, - "executionsMbSecondsTotal": 0, - "requestsTotal": 0, - "requests": [], - "inboundTotal": 0, - "inbound": [], - "outboundTotal": 0, - "outbound": [], - "deployments": [], - "deploymentsStorage": [], - "buildsSuccessTotal": 0, - "buildsFailedTotal": 0, - "builds": [], - "buildsStorage": [], - "buildsTime": [], - "buildsMbSeconds": [], - "executions": [], - "executionsTime": [], - "executionsMbSeconds": [], - "buildsSuccess": [], - "buildsFailed": [] + "usersTotal": 0, + "sessionsTotal": 0, + "users": [], + "sessions": [] } }, - "usageSite": { - "description": "UsageSite", + "usagePresence": { + "description": "UsagePresence", "type": "object", "properties": { "range": { "type": "string", - "description": "The time range of the usage stats.", + "description": "Time range of the usage stats.", "x-example": "30d" }, - "deploymentsTotal": { - "type": "integer", - "description": "Total aggregated number of function deployments.", - "x-example": 0, - "format": "int32" - }, - "deploymentsStorageTotal": { - "type": "integer", - "description": "Total aggregated sum of function deployments storage.", - "x-example": 0, - "format": "int32" - }, - "buildsTotal": { - "type": "integer", - "description": "Total aggregated number of function builds.", - "x-example": 0, - "format": "int32" - }, - "buildsSuccessTotal": { - "type": "integer", - "description": "Total aggregated number of successful function builds.", - "x-example": 0, - "format": "int32" - }, - "buildsFailedTotal": { - "type": "integer", - "description": "Total aggregated number of failed function builds.", - "x-example": 0, - "format": "int32" - }, - "buildsStorageTotal": { - "type": "integer", - "description": "total aggregated sum of function builds storage.", - "x-example": 0, - "format": "int32" - }, - "buildsTimeTotal": { - "type": "integer", - "description": "Total aggregated sum of function builds compute time.", - "x-example": 0, - "format": "int32" - }, - "buildsTimeAverage": { - "type": "integer", - "description": "Average builds compute time.", - "x-example": 0, - "format": "int32" - }, - "buildsMbSecondsTotal": { - "type": "integer", - "description": "Total aggregated sum of function builds mbSeconds.", - "x-example": 0, - "format": "int32" - }, - "executionsTotal": { - "type": "integer", - "description": "Total aggregated number of function executions.", - "x-example": 0, - "format": "int32" - }, - "executionsTimeTotal": { - "type": "integer", - "description": "Total aggregated sum of function executions compute time.", - "x-example": 0, - "format": "int32" - }, - "executionsMbSecondsTotal": { - "type": "integer", - "description": "Total aggregated sum of function executions mbSeconds.", - "x-example": 0, - "format": "int32" - }, - "deployments": { - "type": "array", - "description": "Aggregated number of function deployments per period.", - "items": { - "$ref": "#\/components\/schemas\/metric" - }, - "x-example": [] - }, - "deploymentsStorage": { - "type": "array", - "description": "Aggregated number of function deployments storage per period.", - "items": { - "$ref": "#\/components\/schemas\/metric" - }, - "x-example": [] - }, - "builds": { - "type": "array", - "description": "Aggregated number of function builds per period.", - "items": { - "$ref": "#\/components\/schemas\/metric" - }, - "x-example": [] - }, - "buildsStorage": { - "type": "array", - "description": "Aggregated sum of function builds storage per period.", - "items": { - "$ref": "#\/components\/schemas\/metric" - }, - "x-example": [] - }, - "buildsTime": { - "type": "array", - "description": "Aggregated sum of function builds compute time per period.", - "items": { - "$ref": "#\/components\/schemas\/metric" - }, - "x-example": [] - }, - "buildsMbSeconds": { - "type": "array", - "description": "Aggregated number of function builds mbSeconds per period.", - "items": { - "$ref": "#\/components\/schemas\/metric" - }, - "x-example": [] - }, - "executions": { - "type": "array", - "description": "Aggregated number of function executions per period.", - "items": { - "$ref": "#\/components\/schemas\/metric" - }, - "x-example": [] - }, - "executionsTime": { - "type": "array", - "description": "Aggregated number of function executions compute time per period.", - "items": { - "$ref": "#\/components\/schemas\/metric" - }, - "x-example": [] - }, - "executionsMbSeconds": { - "type": "array", - "description": "Aggregated number of function mbSeconds per period.", - "items": { - "$ref": "#\/components\/schemas\/metric" - }, - "x-example": [] - }, - "buildsSuccess": { - "type": "array", - "description": "Aggregated number of successful builds per period.", - "items": { - "$ref": "#\/components\/schemas\/metric" - }, - "x-example": [] - }, - "buildsFailed": { - "type": "array", - "description": "Aggregated number of failed builds per period.", - "items": { - "$ref": "#\/components\/schemas\/metric" - }, - "x-example": [] - }, - "requestsTotal": { - "type": "integer", - "description": "Total aggregated number of requests.", - "x-example": 0, - "format": "int32" - }, - "requests": { - "type": "array", - "description": "Aggregated number of requests per period.", - "items": { - "$ref": "#\/components\/schemas\/metric" - }, - "x-example": [] - }, - "inboundTotal": { - "type": "integer", - "description": "Total aggregated inbound bandwidth.", - "x-example": 0, - "format": "int32" - }, - "inbound": { - "type": "array", - "description": "Aggregated number of inbound bandwidth per period.", - "items": { - "$ref": "#\/components\/schemas\/metric" - }, - "x-example": [] - }, - "outboundTotal": { + "usersOnlineTotal": { "type": "integer", - "description": "Total aggregated outbound bandwidth.", + "description": "Current total number of online users.", "x-example": 0, "format": "int32" }, - "outbound": { + "presences": { "type": "array", - "description": "Aggregated number of outbound bandwidth per period.", + "description": "Aggregated number of online users per period.", "items": { "$ref": "#\/components\/schemas\/metric" }, @@ -107455,67 +106195,13 @@ }, "required": [ "range", - "deploymentsTotal", - "deploymentsStorageTotal", - "buildsTotal", - "buildsSuccessTotal", - "buildsFailedTotal", - "buildsStorageTotal", - "buildsTimeTotal", - "buildsTimeAverage", - "buildsMbSecondsTotal", - "executionsTotal", - "executionsTimeTotal", - "executionsMbSecondsTotal", - "deployments", - "deploymentsStorage", - "builds", - "buildsStorage", - "buildsTime", - "buildsMbSeconds", - "executions", - "executionsTime", - "executionsMbSeconds", - "buildsSuccess", - "buildsFailed", - "requestsTotal", - "requests", - "inboundTotal", - "inbound", - "outboundTotal", - "outbound" + "usersOnlineTotal", + "presences" ], "example": { "range": "30d", - "deploymentsTotal": 0, - "deploymentsStorageTotal": 0, - "buildsTotal": 0, - "buildsSuccessTotal": 0, - "buildsFailedTotal": 0, - "buildsStorageTotal": 0, - "buildsTimeTotal": 0, - "buildsTimeAverage": 0, - "buildsMbSecondsTotal": 0, - "executionsTotal": 0, - "executionsTimeTotal": 0, - "executionsMbSecondsTotal": 0, - "deployments": [], - "deploymentsStorage": [], - "builds": [], - "buildsStorage": [], - "buildsTime": [], - "buildsMbSeconds": [], - "executions": [], - "executionsTime": [], - "executionsMbSeconds": [], - "buildsSuccess": [], - "buildsFailed": [], - "requestsTotal": 0, - "requests": [], - "inboundTotal": 0, - "inbound": [], - "outboundTotal": 0, - "outbound": [] + "usersOnlineTotal": 0, + "presences": [] } }, "usageProject": { @@ -107674,54 +106360,6 @@ }, "x-example": [] }, - "executionsBreakdown": { - "type": "array", - "description": "Aggregated breakdown in totals of executions by functions.", - "items": { - "$ref": "#\/components\/schemas\/metricBreakdown" - }, - "x-example": [] - }, - "bucketsBreakdown": { - "type": "array", - "description": "Aggregated breakdown in totals of usage by buckets.", - "items": { - "$ref": "#\/components\/schemas\/metricBreakdown" - }, - "x-example": [] - }, - "databasesStorageBreakdown": { - "type": "array", - "description": "An array of the aggregated breakdown of storage usage by databases.", - "items": { - "$ref": "#\/components\/schemas\/metricBreakdown" - }, - "x-example": [] - }, - "executionsMbSecondsBreakdown": { - "type": "array", - "description": "Aggregated breakdown in totals of execution mbSeconds by functions.", - "items": { - "$ref": "#\/components\/schemas\/metricBreakdown" - }, - "x-example": [] - }, - "buildsMbSecondsBreakdown": { - "type": "array", - "description": "Aggregated breakdown in totals of build mbSeconds by functions.", - "items": { - "$ref": "#\/components\/schemas\/metricBreakdown" - }, - "x-example": [] - }, - "functionsStorageBreakdown": { - "type": "array", - "description": "Aggregated breakdown in totals of functions storage size (in bytes).", - "items": { - "$ref": "#\/components\/schemas\/metricBreakdown" - }, - "x-example": [] - }, "authPhoneTotal": { "type": "integer", "description": "Aggregated stats for total auth phone.", @@ -108082,12 +106720,6 @@ "network", "users", "executions", - "executionsBreakdown", - "bucketsBreakdown", - "databasesStorageBreakdown", - "executionsMbSecondsBreakdown", - "buildsMbSecondsBreakdown", - "functionsStorageBreakdown", "authPhoneTotal", "authPhoneEstimate", "authPhoneCountryBreakdown", @@ -108158,12 +106790,6 @@ "network": [], "users": [], "executions": [], - "executionsBreakdown": [], - "bucketsBreakdown": [], - "databasesStorageBreakdown": [], - "executionsMbSecondsBreakdown": [], - "buildsMbSecondsBreakdown": [], - "functionsStorageBreakdown": [], "authPhoneTotal": 0, "authPhoneEstimate": 0, "authPhoneCountryBreakdown": [], @@ -108650,6 +107276,16 @@ "description": "Defines if VCS (Version Control System) is enabled.", "x-example": true }, + "_APP_VCS_PROVIDERS": { + "type": "array", + "description": "List of configured VCS providers.", + "items": { + "type": "string" + }, + "x-example": [ + "github" + ] + }, "_APP_DOMAIN_ENABLED": { "type": "boolean", "description": "Defines if main domain is configured. If so, custom domains can be created.", @@ -108752,6 +107388,7 @@ "_APP_COMPUTE_SIZE_LIMIT", "_APP_USAGE_STATS", "_APP_VCS_ENABLED", + "_APP_VCS_PROVIDERS", "_APP_DOMAIN_ENABLED", "_APP_ASSISTANT_ENABLED", "_APP_DOMAIN_SITES", @@ -108781,6 +107418,9 @@ "_APP_COMPUTE_SIZE_LIMIT": "30000000", "_APP_USAGE_STATS": "enabled", "_APP_VCS_ENABLED": true, + "_APP_VCS_PROVIDERS": [ + "github" + ], "_APP_DOMAIN_ENABLED": true, "_APP_ASSISTANT_ENABLED": true, "_APP_DOMAIN_SITES": "sites.localhost,sites.example.com", @@ -109657,8 +108297,48 @@ }, "resourceId": { "type": "string", - "description": "Id of the resource to migrate.", - "x-example": "databaseId:collectionId" + "description": "ID of the resource being migrated.", + "x-example": "collectionId" + }, + "resourceInternalId": { + "type": "string", + "description": "Internal ID of the resource being migrated.", + "x-example": "1" + }, + "resourceType": { + "type": "string", + "description": "Type of the resource being migrated.", + "x-example": "collection" + }, + "parentResourceId": { + "type": "string", + "description": "ID of the parent resource that contains the migrated resource.", + "x-example": "databaseId" + }, + "parentResourceInternalId": { + "type": "string", + "description": "Internal ID of the parent resource that contains the migrated resource.", + "x-example": "1" + }, + "parentResourceType": { + "type": "string", + "description": "Type of the parent resource that contains the migrated resource.", + "x-example": "database" + }, + "destinationResourceId": { + "type": "string", + "description": "ID of the destination resource created or overwritten by the migration.", + "x-example": "databaseId" + }, + "destinationResourceInternalId": { + "type": "string", + "description": "Internal ID of the destination resource created or overwritten by the migration.", + "x-example": "1" + }, + "destinationResourceType": { + "type": "string", + "description": "Type of the destination resource created or overwritten by the migration.", + "x-example": "database" }, "statusCounters": { "type": "object", @@ -109697,6 +108377,14 @@ "destination", "resources", "resourceId", + "resourceInternalId", + "resourceType", + "parentResourceId", + "parentResourceInternalId", + "parentResourceType", + "destinationResourceId", + "destinationResourceInternalId", + "destinationResourceType", "statusCounters", "resourceData", "errors", @@ -109713,7 +108401,15 @@ "resources": [ "user" ], - "resourceId": "databaseId:collectionId", + "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": [], @@ -110320,6 +109016,51 @@ "description": "Location.", "x-example": "US" }, + "continentCode": { + "type": "string", + "description": "Continent code.", + "x-example": "NA" + }, + "city": { + "type": "string", + "description": "City name.", + "x-example": "Mountain View" + }, + "subdivisions": { + "type": "string", + "description": "Region\/state chain.", + "x-example": "California" + }, + "isp": { + "type": "string", + "description": "Internet service provider.", + "x-example": "Google" + }, + "autonomousSystemNumber": { + "type": "string", + "description": "Autonomous System Number (ASN).", + "x-example": "15169" + }, + "autonomousSystemOrganization": { + "type": "string", + "description": "Organization that owns the ASN.", + "x-example": "GOOGLE" + }, + "connectionType": { + "type": "string", + "description": "Connection type (e.g. cable, cellular, corporate).", + "x-example": "cable" + }, + "connectionUsageType": { + "type": "string", + "description": "User type (e.g. residential, business, hosting).", + "x-example": "residential" + }, + "connectionOrganization": { + "type": "string", + "description": "Registered organization of the IP.", + "x-example": "Google LLC" + }, "time": { "type": "string", "description": "Log creation date in ISO 8601 format.", @@ -110339,6 +109080,16 @@ "type": "string", "description": "Hostname.", "x-example": "appwrite.io" + }, + "sdk": { + "type": "string", + "description": "Name of the SDK that triggered the event.", + "x-example": "web" + }, + "sdkVersion": { + "type": "string", + "description": "Version of the SDK that triggered the event.", + "x-example": "14.0.0" } }, "required": [ @@ -110356,10 +109107,21 @@ "ip", "mode", "country", + "continentCode", + "city", + "subdivisions", + "isp", + "autonomousSystemNumber", + "autonomousSystemOrganization", + "connectionType", + "connectionUsageType", + "connectionOrganization", "time", "projectId", "teamId", - "hostname" + "hostname", + "sdk", + "sdkVersion" ], "example": { "$id": "5e5ea5c16897e", @@ -110376,10 +109138,21 @@ "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" + "hostname": "appwrite.io", + "sdk": "web", + "sdkVersion": "14.0.0" } }, "additionalResource": { @@ -111384,6 +110157,12 @@ "x-example": 25, "format": "int32" }, + "wafRules": { + "type": "integer", + "description": "Maximum WAF rules per project", + "x-example": 2, + "format": "int32" + }, "projects": { "type": "integer", "description": "Projects", @@ -111522,6 +110301,19 @@ "x-example": 30, "format": "int32" }, + "usageLogsIntervals": { + "type": "array", + "description": "Usage log time intervals allowed for this plan (e.g. 15m, 1h, 1d).", + "items": { + "type": "string" + }, + "x-example": [ + "15m", + "1h", + "1d" + ], + "nullable": true + }, "projectInactivityDays": { "type": "integer", "description": "Number of days of console inactivity before a project is paused. 0 means pausing is disabled.", @@ -111739,6 +110531,7 @@ "screenshotsGenerated", "members", "webhooks", + "wafRules", "projects", "platforms", "users", @@ -111805,6 +110598,7 @@ "screenshotsGenerated": 50, "members": 25, "webhooks": 25, + "wafRules": 2, "projects": 2, "platforms": 3, "users": 25, @@ -111828,6 +110622,11 @@ "domains": 5, "activityLogs": 7, "usageLogs": 30, + "usageLogsIntervals": [ + "15m", + "1h", + "1d" + ], "projectInactivityDays": 7, "alertLimit": 80, "usage": null, @@ -112036,13 +110835,6 @@ "format": "int32", "nullable": true }, - "maxDatabasesPerProject": { - "type": "integer", - "description": "Maximum number of dedicated databases per project.", - "x-example": 10, - "format": "int32", - "nullable": true - }, "maxReplicas": { "type": "integer", "description": "Maximum number of high-availability replicas per dedicated database.", @@ -112160,7 +110952,6 @@ "maxMemoryMb": 65536, "minStorageGb": 1, "maxStorageGb": 16384, - "maxDatabasesPerProject": 10, "maxReplicas": 5, "maxConnections": 10000, "maxIpAllowlistSize": 100, @@ -112898,8 +111689,8 @@ }, "api": { "type": "string", - "description": "Product API that owns this database: nativedb, documentsdb, or vectorsdb.", - "x-example": "nativedb" + "description": "Product API that owns this database: tablesdb, documentsdb, vectorsdb, mysql, postgresql, or mongodb.", + "x-example": "postgresql" }, "engine": { "type": "string", @@ -112945,7 +111736,12 @@ "connectionString": { "type": "string", "description": "Full database connection string (URI format).", - "x-example": "postgresql:\/\/user:pass@db-myproject-mydb.fra.appwrite.center:5432\/postgres" + "x-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.", + "x-example": true }, "status": { "type": "string", @@ -113025,6 +111821,12 @@ "description": "Replication sync mode: async, sync, or quorum.", "x-example": "async" }, + "crossRegionReplicas": { + "type": "integer", + "description": "Number of cross-region replicas. Cross-region availability is enabled when greater than 0.", + "x-example": 1, + "format": "int32" + }, "networkMaxConnections": { "type": "integer", "description": "Maximum concurrent connections.", @@ -113150,6 +111952,7 @@ "connectionUser", "connectionPassword", "connectionString", + "ssl", "status", "containerStatus", "lifecycleState", @@ -113162,6 +111965,7 @@ "nodePool", "replicas", "syncMode", + "crossRegionReplicas", "networkMaxConnections", "networkIdleTimeoutSeconds", "networkIPAllowlist", @@ -113187,7 +111991,7 @@ "$updatedAt": "2020-10-15T06:38:00.000+00:00", "projectId": "5e5ea5c16897e", "name": "My Production Database", - "api": "nativedb", + "api": "postgresql", "engine": "postgresql", "version": "16", "specification": "s-2vcpu-2gb", @@ -113196,7 +112000,8 @@ "connectionPort": 5432, "connectionUser": "appwrite_user", "connectionPassword": "\u2022\u2022\u2022\u2022\u2022\u2022\u2022\u2022", - "connectionString": "postgresql:\/\/user:pass@db-myproject-mydb.fra.appwrite.center:5432\/postgres", + "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", @@ -113211,6 +112016,7 @@ "nodePool": "db-pool-4vcpu-8gb", "replicas": 2, "syncMode": "async", + "crossRegionReplicas": 1, "networkMaxConnections": 500, "networkIdleTimeoutSeconds": 900, "networkIPAllowlist": [ @@ -114359,11 +113165,20 @@ "postgis", "pg_trgm" ] + }, + "metadata": { + "type": "array", + "description": "Curated metadata (display name, description, category) for each available extension.", + "items": { + "$ref": "#\/components\/schemas\/postgresExtension" + }, + "x-example": [] } }, "required": [ "installed", - "available" + "available", + "metadata" ], "example": { "installed": [ @@ -114373,7 +113188,8 @@ "available": [ "postgis", "pg_trgm" - ] + ], + "metadata": [] } }, "dedicatedDatabaseMember": { @@ -114392,7 +113208,7 @@ }, "status": { "type": "string", - "description": "Member pod status. Possible values: active (running), pending, notFound (pod missing), or the lowercased pod phase reported by the cluster.", + "description": "Member pod status. Possible values: 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.", "x-example": "active" }, "lagSeconds": { @@ -115939,7 +114755,7 @@ "options": { "type": "string", "description": "Optional data in key-value object. ", - "x-example": "{databases.database[{oldId, newId, newName, newSpecification}]}" + "x-example": "{databases.database[{oldId, newId, newName}]}" } }, "required": [ @@ -115966,7 +114782,7 @@ "migrationId": "did8jx6ws45jana098ab7", "services": "['databases', 'storage']", "resources": "['databases', 'collections', 'attributes', 'indexes']", - "options": "{databases.database[{oldId, newId, newName, newSpecification}]}" + "options": "{databases.database[{oldId, newId, newName}]}" } }, "dedicatedDatabaseRestorationList": { @@ -116203,19 +115019,13 @@ "replicaRate": { "type": "number", "description": "High availability replica price as a fraction of the specification cost.", - "x-example": 0.5, + "x-example": 1, "format": "double" }, "crossRegionReplicaRate": { "type": "number", "description": "Cross-region replica price as a fraction of the specification cost.", - "x-example": 0.75, - "format": "double" - }, - "crossRegionRate": { - "type": "number", - "description": "Cross-region transfer price as a fraction of the specification cost.", - "x-example": 0.5, + "x-example": 1, "format": "double" }, "pitrRate": { @@ -116230,15 +115040,13 @@ "bandwidthOverageRate", "replicaRate", "crossRegionReplicaRate", - "crossRegionRate", "pitrRate" ], "example": { "storageOverageRate": 0.125, "bandwidthOverageRate": 0.08, - "replicaRate": 0.5, - "crossRegionReplicaRate": 0.75, - "crossRegionRate": 0.5, + "replicaRate": 1, + "crossRegionReplicaRate": 1, "pitrRate": 0.2 } }, @@ -116259,229 +115067,91 @@ "format": "int32" } }, - "required": [ - "current", - "max" - ], - "example": { - "current": 12, - "max": 100 - } - }, - "databaseStatusReplica": { - "description": "Replica", - "type": "object", - "properties": { - "index": { - "type": "integer", - "description": "StatefulSet pod index (0 = primary, 1+ = replicas).", - "x-example": 0, - "format": "int32" - }, - "role": { - "type": "string", - "description": "Replica role: primary or replica.", - "x-example": "primary" - }, - "healthy": { - "type": "boolean", - "description": "Whether the replica is healthy.", - "x-example": true - }, - "lagSeconds": { - "type": "number", - "description": "Replication lag in seconds (null for primary).", - "x-example": 0.2, - "format": "double", - "nullable": true - } - }, - "required": [ - "index", - "role", - "healthy" - ], - "example": { - "index": 0, - "role": "primary", - "healthy": true, - "lagSeconds": 0.2 - } - }, - "databaseStatusVolume": { - "description": "Volume", - "type": "object", - "properties": { - "path": { - "type": "string", - "description": "Mount path of the volume.", - "x-example": "\/var\/lib\/postgresql\/data" - }, - "usedPercent": { - "type": "string", - "description": "Percentage of storage used.", - "x-example": "45%" - }, - "available": { - "type": "string", - "description": "Available storage space.", - "x-example": "55GB" - }, - "mounted": { - "type": "boolean", - "description": "Whether the volume is mounted.", - "x-example": true - } - }, - "required": [ - "path", - "usedPercent", - "available", - "mounted" - ], - "example": { - "path": "\/var\/lib\/postgresql\/data", - "usedPercent": "45%", - "available": "55GB", - "mounted": true - } - }, - "cloudLocale": { - "description": "Locale", - "type": "object", - "properties": { - "ip": { - "type": "string", - "description": "User IP address.", - "x-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", - "x-example": "US" - }, - "country": { - "type": "string", - "description": "Country name. This field support localization.", - "x-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.", - "x-example": "NA" - }, - "continent": { - "type": "string", - "description": "Continent name. This field support localization.", - "x-example": "North America" - }, - "eu": { - "type": "boolean", - "description": "True if country is part of the European Union.", - "x-example": false - }, - "currency": { - "type": "string", - "description": "Currency code in [ISO 4217-1](http:\/\/en.wikipedia.org\/wiki\/ISO_4217) three-character format", - "x-example": "USD" - }, - "city": { - "type": "string", - "description": "City", - "x-example": "Kathmandu", - "nullable": true - }, - "timeZone": { - "type": "string", - "description": "Name of timezone", - "x-example": "Asia\/Kathmandu", - "nullable": true + "required": [ + "current", + "max" + ], + "example": { + "current": 12, + "max": 100 + } + }, + "databaseStatusReplica": { + "description": "Replica", + "type": "object", + "properties": { + "index": { + "type": "integer", + "description": "StatefulSet pod index (0 = primary, 1+ = replicas).", + "x-example": 0, + "format": "int32" }, - "postalCode": { + "role": { "type": "string", - "description": "Postal code", - "x-example": "44600", - "nullable": true + "description": "Replica role: primary or replica.", + "x-example": "primary" }, - "latitude": { - "type": "number", - "description": "Latitude", - "x-example": "82.345", - "format": "double", - "nullable": true + "healthy": { + "type": "boolean", + "description": "Whether the replica is healthy.", + "x-example": true }, - "longitude": { + "lagSeconds": { "type": "number", - "description": "Longitude", - "x-example": "82.345", + "description": "Replication lag in seconds (null for primary).", + "x-example": 0.2, "format": "double", "nullable": true - }, - "autonomousSystemNumber": { - "type": "string", - "description": "Autonomous System Number (ASN) of the IP", - "x-example": "15169", - "nullable": true - }, - "autonomousSystemOrganization": { - "type": "string", - "description": "Organization that owns the ASN", - "x-example": "GOOGLE", - "nullable": true - }, - "isp": { + } + }, + "required": [ + "index", + "role", + "healthy" + ], + "example": { + "index": 0, + "role": "primary", + "healthy": true, + "lagSeconds": 0.2 + } + }, + "databaseStatusVolume": { + "description": "Volume", + "type": "object", + "properties": { + "path": { "type": "string", - "description": "Internet service provider of the IP", - "x-example": "Google", - "nullable": true + "description": "Mount path of the volume.", + "x-example": "\/var\/lib\/postgresql\/data" }, - "connectionType": { + "usedPercent": { "type": "string", - "description": "Connection type of the IP (e.g. cable, cellular, corporate)", - "x-example": "cable", - "nullable": true + "description": "Percentage of storage used.", + "x-example": "45%" }, - "connectionUsageType": { + "available": { "type": "string", - "description": "User type classification of the IP (e.g. residential, business, hosting)", - "x-example": "residential", - "nullable": true + "description": "Available storage space.", + "x-example": "55GB" }, - "connectionOrganization": { - "type": "string", - "description": "Registered organization of the IP", - "x-example": "Google LLC", - "nullable": true + "mounted": { + "type": "boolean", + "description": "Whether the volume is mounted.", + "x-example": true } }, "required": [ - "ip", - "countryCode", - "country", - "continentCode", - "continent", - "eu", - "currency" + "path", + "usedPercent", + "available", + "mounted" ], "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" + "path": "\/var\/lib\/postgresql\/data", + "usedPercent": "45%", + "available": "55GB", + "mounted": true } }, "usageBillingPlan": { @@ -116636,10 +115306,10 @@ "x-example": "2026-04-09T12:00:00.000+00:00" }, "value": { - "type": "integer", - "description": "Aggregated value for the bucket.", + "type": "number", + "description": "Aggregated value for the bucket. Counters are whole numbers; gauge rates (e.g. queries per second) may be fractional.", "x-example": 5000, - "format": "int32" + "format": "double" }, "path": { "type": "string", @@ -116671,6 +115341,60 @@ "x-example": "us", "nullable": true }, + "continentCode": { + "type": "string", + "description": "Continent code when broken down by `continentCode`.", + "x-example": "NA", + "nullable": true + }, + "city": { + "type": "string", + "description": "City name when broken down by `city`.", + "x-example": "Mountain View", + "nullable": true + }, + "subdivisions": { + "type": "string", + "description": "Region\/state chain when broken down by `subdivisions`.", + "x-example": "California", + "nullable": true + }, + "isp": { + "type": "string", + "description": "Internet service provider when broken down by `isp`.", + "x-example": "Google", + "nullable": true + }, + "autonomousSystemNumber": { + "type": "string", + "description": "Autonomous System Number (ASN) when broken down by `autonomousSystemNumber`.", + "x-example": "15169", + "nullable": true + }, + "autonomousSystemOrganization": { + "type": "string", + "description": "Organization owning the ASN when broken down by `autonomousSystemOrganization`.", + "x-example": "GOOGLE", + "nullable": true + }, + "connectionType": { + "type": "string", + "description": "Connection type (e.g. cable, cellular, corporate) when broken down by `connectionType`.", + "x-example": "cable", + "nullable": true + }, + "connectionUsageType": { + "type": "string", + "description": "User type (e.g. residential, business, hosting) when broken down by `connectionUsageType`.", + "x-example": "residential", + "nullable": true + }, + "connectionOrganization": { + "type": "string", + "description": "Registered organization of the IP when broken down by `connectionOrganization`.", + "x-example": "Google LLC", + "nullable": true + }, "region": { "type": "string", "description": "Appwrite region when broken down by `region`.", @@ -116707,6 +115431,18 @@ "x-example": "Chrome", "nullable": true }, + "sdk": { + "type": "string", + "description": "SDK name when broken down by `sdk`.", + "x-example": "web", + "nullable": true + }, + "sdkVersion": { + "type": "string", + "description": "SDK version when broken down by `sdkVersion`.", + "x-example": "14.0.0", + "nullable": true + }, "deviceName": { "type": "string", "description": "Device classification when broken down by `deviceName`.", @@ -116730,6 +115466,12 @@ "description": "Resource type when broken down by `resourceType`.", "x-example": "bucket", "nullable": true + }, + "ordinal": { + "type": "string", + "description": "Replica ordinal when broken down by `ordinal`. 0 is the primary; 1+ are replicas.", + "x-example": "0", + "nullable": true } }, "required": [ @@ -116744,16 +115486,28 @@ "status": "201", "service": "storage", "country": "us", + "continentCode": "NA", + "city": "Mountain View", + "subdivisions": "California", + "isp": "Google", + "autonomousSystemNumber": "15169", + "autonomousSystemOrganization": "GOOGLE", + "connectionType": "cable", + "connectionUsageType": "residential", + "connectionOrganization": "Google LLC", "region": "fra", "hostname": "app.example.com", "ip": "192.0.2.44", "osName": "iOS", "clientType": "browser", "clientName": "Chrome", + "sdk": "web", + "sdkVersion": "14.0.0", "deviceName": "smartphone", "teamId": "team_abc", "resourceId": "abc123", - "resourceType": "bucket" + "resourceType": "bucket", + "ordinal": "0" } }, "usageEventList": { @@ -116873,13 +115627,330 @@ }, "x-example": [] }, - "databasesWrites": { - "type": "array", - "description": "Aggregated stats for database writes.", - "items": { - "$ref": "#\/components\/schemas\/metric" - }, - "x-example": [] + "databasesWrites": { + "type": "array", + "description": "Aggregated stats for database writes.", + "items": { + "$ref": "#\/components\/schemas\/metric" + }, + "x-example": [] + }, + "imageTransformations": { + "type": "array", + "description": "Aggregated stats for file transformations.", + "items": { + "$ref": "#\/components\/schemas\/metric" + }, + "x-example": [] + }, + "imageTransformationsTotal": { + "type": "integer", + "description": "Aggregated stats for total file transformations.", + "x-example": 0, + "format": "int32" + }, + "screenshotsGenerated": { + "type": "array", + "description": "Aggregated stats for file transformations.", + "items": { + "$ref": "#\/components\/schemas\/metric" + }, + "x-example": [] + }, + "screenshotsGeneratedTotal": { + "type": "integer", + "description": "Aggregated stats for total file transformations.", + "x-example": 0, + "format": "int32" + }, + "usersTotal": { + "type": "integer", + "description": "Aggregated stats for total users.", + "x-example": 0, + "format": "int32" + }, + "executionsTotal": { + "type": "integer", + "description": "Aggregated stats for total executions.", + "x-example": 0, + "format": "int32" + }, + "executionsMBSecondsTotal": { + "type": "integer", + "description": "Aggregated stats for function executions in mb seconds.", + "x-example": 0, + "format": "int32" + }, + "buildsMBSecondsTotal": { + "type": "integer", + "description": "Aggregated stats for function builds in mb seconds.", + "x-example": 0, + "format": "int32" + }, + "filesStorageTotal": { + "type": "integer", + "description": "Aggregated stats for total file storage.", + "x-example": 0, + "format": "int32" + }, + "buildsStorageTotal": { + "type": "integer", + "description": "Aggregated stats for total builds storage.", + "x-example": 0, + "format": "int32" + }, + "deploymentsStorageTotal": { + "type": "integer", + "description": "Aggregated stats for total deployments storage.", + "x-example": 0, + "format": "int32" + }, + "databasesStorageTotal": { + "type": "integer", + "description": "Aggregated stats for total databases storage.", + "x-example": 0, + "format": "int32" + }, + "databasesReadsTotal": { + "type": "integer", + "description": "Aggregated stats for total databases reads.", + "x-example": 0, + "format": "int32" + }, + "databasesWritesTotal": { + "type": "integer", + "description": "Aggregated stats for total databases writes.", + "x-example": 0, + "format": "int32" + }, + "backupsStorageTotal": { + "type": "integer", + "description": "Aggregated stats for total backups storage.", + "x-example": 0, + "format": "int32" + }, + "storageTotal": { + "type": "integer", + "description": "Aggregated stats for total storage.", + "x-example": 0, + "format": "int32" + }, + "authPhoneTotal": { + "type": "integer", + "description": "Aggregated stats for total auth phone.", + "x-example": 0, + "format": "int32" + }, + "authPhoneEstimate": { + "type": "integer", + "description": "Aggregated stats for total auth phone estimation.", + "x-example": 0, + "format": "int32" + }, + "projects": { + "type": "array", + "description": "Aggregated stats for each projects.", + "items": { + "$ref": "#\/components\/schemas\/usageOrganizationProject" + }, + "x-example": [] + }, + "realtimeConnections": { + "type": "array", + "description": "Aggregated stats for realtime connections.", + "items": { + "$ref": "#\/components\/schemas\/metric" + }, + "x-example": [] + }, + "realtimeConnectionsTotal": { + "type": "integer", + "description": "Aggregated stats for total realtime connections.", + "x-example": 0, + "format": "int32" + }, + "realtimeMessages": { + "type": "array", + "description": "Aggregated stats for realtime messages.", + "items": { + "$ref": "#\/components\/schemas\/metric" + }, + "x-example": [] + }, + "realtimeMessagesTotal": { + "type": "integer", + "description": "Aggregated stats for total realtime messages.", + "x-example": 0, + "format": "int32" + }, + "realtimeBandwidth": { + "type": "array", + "description": "Aggregated stats for realtime bandwidth.", + "items": { + "$ref": "#\/components\/schemas\/metric" + }, + "x-example": [] + }, + "realtimeBandwidthTotal": { + "type": "integer", + "description": "Aggregated stats for total realtime bandwidth.", + "x-example": 0, + "format": "int32" + } + }, + "required": [ + "bandwidth", + "users", + "executions", + "databasesReads", + "databasesWrites", + "imageTransformations", + "imageTransformationsTotal", + "screenshotsGenerated", + "screenshotsGeneratedTotal", + "usersTotal", + "executionsTotal", + "executionsMBSecondsTotal", + "buildsMBSecondsTotal", + "filesStorageTotal", + "buildsStorageTotal", + "deploymentsStorageTotal", + "databasesStorageTotal", + "databasesReadsTotal", + "databasesWritesTotal", + "backupsStorageTotal", + "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, + "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", + "x-example": "5e5ea5c16897e" + }, + "bandwidth": { + "type": "array", + "description": "Aggregated stats for number of requests.", + "items": { + "$ref": "#\/components\/schemas\/metric" + }, + "x-example": [] + }, + "users": { + "type": "array", + "description": "Aggregated stats for consumed bandwidth.", + "items": { + "$ref": "#\/components\/schemas\/metric" + }, + "x-example": [] + }, + "executions": { + "type": "integer", + "description": "Aggregated stats for function executions.", + "x-example": [], + "format": "int32" + }, + "databasesReads": { + "type": "array", + "description": "Aggregated stats for database reads.", + "items": { + "$ref": "#\/components\/schemas\/metric" + }, + "x-example": [] + }, + "databasesWrites": { + "type": "array", + "description": "Aggregated stats for database writes.", + "items": { + "$ref": "#\/components\/schemas\/metric" + }, + "x-example": [] + }, + "executionsMBSeconds": { + "type": "integer", + "description": "Aggregated stats for function executions in mb seconds.", + "x-example": 0, + "format": "int32" + }, + "buildsMBSeconds": { + "type": "integer", + "description": "Aggregated stats for function builds in mb seconds.", + "x-example": 0, + "format": "int32" + }, + "storage": { + "type": "integer", + "description": "Aggregated stats for number of documents.", + "x-example": [], + "format": "int32" + }, + "authPhoneTotal": { + "type": "integer", + "description": "Aggregated stats for phone authentication.", + "x-example": [], + "format": "int32" + }, + "authPhoneEstimate": { + "type": "number", + "description": "Aggregated stats for phone authentication estimated cost.", + "x-example": [], + "format": "double" + }, + "databasesReadsTotal": { + "type": "integer", + "description": "Aggregated stats for total databases reads.", + "x-example": 0, + "format": "int32" + }, + "databasesWritesTotal": { + "type": "integer", + "description": "Aggregated stats for total databases writes.", + "x-example": 0, + "format": "int32" }, "imageTransformations": { "type": "array", @@ -116909,602 +115980,1294 @@ "x-example": 0, "format": "int32" }, - "usersTotal": { + "realtimeConnections": { "type": "integer", - "description": "Aggregated stats for total users.", + "description": "Aggregated stats for realtime connections.", "x-example": 0, "format": "int32" }, - "executionsTotal": { + "realtimeMessages": { "type": "integer", - "description": "Aggregated stats for total executions.", + "description": "Aggregated stats for realtime messages.", "x-example": 0, "format": "int32" }, - "executionsMBSecondsTotal": { + "realtimeBandwidth": { "type": "integer", - "description": "Aggregated stats for function executions in mb seconds.", + "description": "Aggregated stats for realtime bandwidth.", "x-example": 0, "format": "int32" + } + }, + "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": [], + "users": [], + "executions": [], + "databasesReads": [], + "databasesWrites": [], + "executionsMBSeconds": 0, + "buildsMBSeconds": 0, + "storage": [], + "authPhoneTotal": [], + "authPhoneEstimate": [], + "databasesReadsTotal": 0, + "databasesWritesTotal": 0, + "imageTransformations": [], + "imageTransformationsTotal": 0, + "screenshotsGenerated": [], + "screenshotsGeneratedTotal": 0, + "realtimeConnections": 0, + "realtimeMessages": 0, + "realtimeBandwidth": 0 + } + }, + "usageResources": { + "description": "Resource", + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "Invoice name", + "x-example": "" }, - "buildsMBSecondsTotal": { + "value": { "type": "integer", - "description": "Aggregated stats for function builds in mb seconds.", + "description": "Invoice value", "x-example": 0, "format": "int32" }, - "filesStorageTotal": { - "type": "integer", - "description": "Aggregated stats for total file storage.", - "x-example": 0, - "format": "int32" + "amount": { + "type": "number", + "description": "Invoice amount", + "x-example": 500, + "format": "double" }, - "buildsStorageTotal": { - "type": "integer", - "description": "Aggregated stats for total builds storage.", - "x-example": 0, - "format": "int32" + "rate": { + "type": "number", + "description": "Invoice rate", + "x-example": 12.5, + "format": "double" }, - "deploymentsStorageTotal": { - "type": "integer", - "description": "Aggregated stats for total deployments storage.", - "x-example": 0, - "format": "int32" + "desc": { + "type": "string", + "description": "Invoice description", + "x-example": "Your monthly recurring Pro plan." }, - "databasesStorageTotal": { - "type": "integer", - "description": "Aggregated stats for total databases storage.", - "x-example": 0, - "format": "int32" + "resourceId": { + "type": "string", + "description": "Resource ID", + "x-example": "" }, - "databasesReadsTotal": { - "type": "integer", - "description": "Aggregated stats for total databases reads.", - "x-example": 0, - "format": "int32" + "type": { + "type": "string", + "description": "Dedicated database engine type for per-database line items (e.g. postgresql). Empty for other resources.", + "x-example": "postgresql" }, - "databasesWritesTotal": { - "type": "integer", - "description": "Aggregated stats for total databases writes.", - "x-example": 0, - "format": "int32" + "specification": { + "type": "string", + "description": "Dedicated database specification slug for per-database line items (e.g. s-2vcpu-2gb). Empty for other resources.", + "x-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.", + "x-example": "5e5ea5c16897e" }, - "backupsStorageTotal": { - "type": "integer", - "description": "Aggregated stats for total backups storage.", - "x-example": 0, - "format": "int32" + "$createdAt": { + "type": "string", + "description": "App creation time in ISO 8601 format.", + "x-example": "2020-10-15T06:38:00.000+00:00" }, - "storageTotal": { - "type": "integer", - "description": "Aggregated stats for total storage.", - "x-example": 0, - "format": "int32" + "$updatedAt": { + "type": "string", + "description": "App update date in ISO 8601 format.", + "x-example": "2020-10-15T06:38:00.000+00:00" }, - "authPhoneTotal": { - "type": "integer", - "description": "Aggregated stats for total auth phone.", - "x-example": 0, - "format": "int32" + "name": { + "type": "string", + "description": "Application name.", + "x-example": "My Application" }, - "authPhoneEstimate": { - "type": "integer", - "description": "Aggregated stats for total auth phone estimation.", - "x-example": 0, - "format": "int32" + "description": { + "type": "string", + "description": "Application description shown to users during OAuth2 consent.", + "x-example": "Connect your workspace to My Application." }, - "projects": { + "clientUri": { + "type": "string", + "description": "Application homepage URL shown to users during OAuth2 consent.", + "x-example": "https:\/\/example.com" + }, + "logoUri": { + "type": "string", + "description": "Application logo URL shown to users during OAuth2 consent.", + "x-example": "https:\/\/example.com\/logo.png" + }, + "privacyPolicyUrl": { + "type": "string", + "description": "Application privacy policy URL shown to users during OAuth2 consent.", + "x-example": "https:\/\/example.com\/privacy" + }, + "termsUrl": { + "type": "string", + "description": "Application terms of service URL shown to users during OAuth2 consent.", + "x-example": "https:\/\/example.com\/terms" + }, + "contacts": { "type": "array", - "description": "Aggregated stats for each projects.", + "description": "Application support or security contact emails.", "items": { - "$ref": "#\/components\/schemas\/usageOrganizationProject" + "type": "string" }, - "x-example": [] + "x-example": [ + "support@example.com" + ] }, - "realtimeConnections": { + "tagline": { + "type": "string", + "description": "Application tagline shown to users during OAuth2 consent.", + "x-example": "Automate your workspace." + }, + "tags": { "type": "array", - "description": "Aggregated stats for realtime connections.", + "description": "Application tags shown to users during OAuth2 consent.", "items": { - "$ref": "#\/components\/schemas\/metric" + "type": "string" + }, + "x-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" + }, + "x-example": [ + "featured" + ] + }, + "images": { + "type": "array", + "description": "Application image URLs shown to users during OAuth2 consent.", + "items": { + "type": "string" + }, + "x-example": [ + "https:\/\/example.com\/screenshot.png" + ] + }, + "supportUrl": { + "type": "string", + "description": "Application support URL shown to users during OAuth2 consent.", + "x-example": "https:\/\/example.com\/support" + }, + "dataDeletionUrl": { + "type": "string", + "description": "Application data deletion URL shown to users during OAuth2 consent.", + "x-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" + }, + "x-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" + }, + "x-example": [ + "https:\/\/example.com\/logged-out" + ] + }, + "enabled": { + "type": "boolean", + "description": "Whether the app is enabled or not.", + "x-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.", + "x-example": "confidential" + }, + "deviceFlow": { + "type": "boolean", + "description": "Whether this client may use the OAuth2 Device Authorization Grant (RFC 8628).", + "x-example": false + }, + "teamId": { + "type": "string", + "description": "ID of team that owns the application, if owned by team. Otherwise, user ID will be used.", + "x-example": "5e5ea5c16897e" + }, + "userId": { + "type": "string", + "description": "ID of user who owns the application, if owned by user. Otherwise, team ID will be used.", + "x-example": "5e5ea5c16897e" + }, + "secrets": { + "type": "array", + "description": "List of application secrets.", + "items": { + "$ref": "#\/components\/schemas\/appSecret" }, "x-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", + "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", + "secrets": [] + } + }, + "appSecret": { + "description": "AppSecret", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "Secret ID.", + "x-example": "5e5ea5c16897e" + }, + "$createdAt": { + "type": "string", + "description": "Secret creation time in ISO 8601 format.", + "x-example": "2020-10-15T06:38:00.000+00:00" + }, + "$updatedAt": { + "type": "string", + "description": "Secret update time in ISO 8601 format.", + "x-example": "2020-10-15T06:38:00.000+00:00" + }, + "appId": { + "type": "string", + "description": "Application ID this secret belongs to.", + "x-example": "5e5ea5c16897e" + }, + "secret": { + "type": "string", + "description": "Always empty. The application client secret is returned only once, in the response of the createSecret method.", + "x-example": "" + }, + "hint": { + "type": "string", + "description": "Last few characters of the client secret, used to help identify it.", + "x-example": "f5c6c7" + }, + "createdById": { + "type": "string", + "description": "ID of the user who created the secret.", + "x-example": "5e5ea5c16897e" + }, + "createdByName": { + "type": "string", + "description": "Name of the user who created the secret.", + "x-example": "Walter White" + }, + "lastAccessedAt": { + "type": "string", + "description": "Time the secret was last used for authentication in ISO 8601 format. Null if never used.", + "x-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.", + "x-example": "5e5ea5c16897e" + }, + "$createdAt": { + "type": "string", + "description": "Secret creation time in ISO 8601 format.", + "x-example": "2020-10-15T06:38:00.000+00:00" + }, + "$updatedAt": { + "type": "string", + "description": "Secret update time in ISO 8601 format.", + "x-example": "2020-10-15T06:38:00.000+00:00" + }, + "appId": { + "type": "string", + "description": "Application ID this secret belongs to.", + "x-example": "5e5ea5c16897e" + }, + "secret": { + "type": "string", + "description": "Application client secret. Returned only when the secret is created; subsequent reads always return an empty value.", + "x-example": "5f3c8d2a1b9e4f7a6c8b2d1e9f4a7b3c5d8e1f2a9b4c7d6e3f5a8b1c4d7e2f9a" + }, + "hint": { + "type": "string", + "description": "Last few characters of the client secret, used to help identify it.", + "x-example": "f5c6c7" + }, + "createdById": { + "type": "string", + "description": "ID of the user who created the secret.", + "x-example": "5e5ea5c16897e" + }, + "createdByName": { + "type": "string", + "description": "Name of the user who created the secret.", + "x-example": "Walter White" }, - "realtimeConnectionsTotal": { - "type": "integer", - "description": "Aggregated stats for total realtime connections.", - "x-example": 0, - "format": "int32" + "lastAccessedAt": { + "type": "string", + "description": "Time the secret was last used for authentication in ISO 8601 format. Null if never used.", + "x-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.", + "x-example": "organization:organization.read" }, - "realtimeMessages": { - "type": "array", - "description": "Aggregated stats for realtime messages.", - "items": { - "$ref": "#\/components\/schemas\/metric" - }, - "x-example": [] + "description": { + "type": "string", + "description": "Human-readable description of what the scope grants.", + "x-example": "Access to read the organization" }, - "realtimeMessagesTotal": { - "type": "integer", - "description": "Aggregated stats for total realtime messages.", - "x-example": 0, - "format": "int32" + "type": { + "type": "string", + "description": "What the scope grants access to. One of `account`, `project`, or `organization`. Only `project` and `organization` scopes are installable.", + "x-example": "organization" }, - "realtimeBandwidth": { - "type": "array", - "description": "Aggregated stats for realtime bandwidth.", - "items": { - "$ref": "#\/components\/schemas\/metric" - }, - "x-example": [] + "category": { + "type": "string", + "description": "Scope category, used to group scopes on consent and installation screens.", + "x-example": "Organization" }, - "realtimeBandwidthTotal": { - "type": "integer", - "description": "Aggregated stats for total realtime bandwidth.", - "x-example": 0, - "format": "int32" + "deprecated": { + "type": "boolean", + "description": "Whether the scope is deprecated. Deprecated scopes can still be requested but should not be offered for new grants.", + "x-example": false } }, "required": [ - "bandwidth", - "users", - "executions", - "databasesReads", - "databasesWrites", - "imageTransformations", - "imageTransformationsTotal", - "screenshotsGenerated", - "screenshotsGeneratedTotal", - "usersTotal", - "executionsTotal", - "executionsMBSecondsTotal", - "buildsMBSecondsTotal", - "filesStorageTotal", - "buildsStorageTotal", - "deploymentsStorageTotal", - "databasesStorageTotal", - "databasesReadsTotal", - "databasesWritesTotal", - "backupsStorageTotal", - "storageTotal", - "authPhoneTotal", - "authPhoneEstimate", - "projects", - "realtimeConnections", - "realtimeConnectionsTotal", - "realtimeMessages", - "realtimeMessagesTotal", - "realtimeBandwidth", - "realtimeBandwidthTotal" + "value", + "description", + "type", + "category", + "deprecated" ], "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, - "storageTotal": 0, - "authPhoneTotal": 0, - "authPhoneEstimate": 0, - "projects": [], - "realtimeConnections": [], - "realtimeConnectionsTotal": 0, - "realtimeMessages": [], - "realtimeMessagesTotal": 0, - "realtimeBandwidth": [], - "realtimeBandwidthTotal": 0 + "value": "organization:organization.read", + "description": "Access to read the organization", + "type": "organization", + "category": "Organization", + "deprecated": false } }, - "usageOrganizationProject": { - "description": "OrganizationProject", + "oauth2Authorize": { + "description": "OAuth2 Authorize", "type": "object", "properties": { - "projectId": { + "grantId": { "type": "string", - "description": "projectId", + "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.", "x-example": "5e5ea5c16897e" }, - "bandwidth": { - "type": "array", - "description": "Aggregated stats for number of requests.", - "items": { - "$ref": "#\/components\/schemas\/metric" - }, - "x-example": [] + "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.", + "x-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`.", + "x-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.", + "x-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.", + "x-example": "5e5ea5c16897e" }, - "users": { - "type": "array", - "description": "Aggregated stats for consumed bandwidth.", - "items": { - "$ref": "#\/components\/schemas\/metric" - }, - "x-example": [] + "$createdAt": { + "type": "string", + "description": "Grant creation time in ISO 8601 format.", + "x-example": "2020-10-15T06:38:00.000+00:00" }, - "executions": { - "type": "integer", - "description": "Aggregated stats for function executions.", - "x-example": [], - "format": "int32" + "$updatedAt": { + "type": "string", + "description": "Grant update date in ISO 8601 format.", + "x-example": "2020-10-15T06:38:00.000+00:00" }, - "databasesReads": { + "userId": { + "type": "string", + "description": "ID of the user the grant belongs to.", + "x-example": "5e5ea5c16897e" + }, + "appId": { + "type": "string", + "description": "ID of the OAuth2 client (app) the grant was requested for.", + "x-example": "5e5ea5c16897e" + }, + "scopes": { "type": "array", - "description": "Aggregated stats for database reads.", + "description": "Requested OAuth2 scopes the user is being asked to consent to.", "items": { - "$ref": "#\/components\/schemas\/metric" + "type": "string" }, - "x-example": [] + "x-example": [ + "openid", + "email", + "profile" + ] }, - "databasesWrites": { + "resources": { "type": "array", - "description": "Aggregated stats for database writes.", + "description": "Requested RFC 8707 resource indicators the user is being asked to consent to.", "items": { - "$ref": "#\/components\/schemas\/metric" + "type": "string" }, - "x-example": [] - }, - "executionsMBSeconds": { - "type": "integer", - "description": "Aggregated stats for function executions in mb seconds.", - "x-example": 0, - "format": "int32" - }, - "buildsMBSeconds": { - "type": "integer", - "description": "Aggregated stats for function builds in mb seconds.", - "x-example": 0, - "format": "int32" - }, - "storage": { - "type": "integer", - "description": "Aggregated stats for number of documents.", - "x-example": [], - "format": "int32" + "x-example": [ + "https:\/\/api.example.com\/" + ] }, - "authPhoneTotal": { - "type": "integer", - "description": "Aggregated stats for phone authentication.", - "x-example": [], - "format": "int32" + "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.", + "x-example": "[{\"type\":\"calendar\",\"identifier\":\"primary\",\"actions\":[\"read_events\",\"create_event\"]}]" }, - "authPhoneEstimate": { - "type": "number", - "description": "Aggregated stats for phone authentication estimated cost.", - "x-example": [], - "format": "double" + "prompt": { + "type": "string", + "description": "OIDC prompt directive the consent screen should honor. Space-separated list of: login, consent, select_account.", + "x-example": "login" }, - "databasesReadsTotal": { - "type": "integer", - "description": "Aggregated stats for total databases reads.", - "x-example": 0, - "format": "int32" + "redirectUri": { + "type": "string", + "description": "Redirect URI the user will be sent to after the flow completes.", + "x-example": "https:\/\/example.com\/callback" }, - "databasesWritesTotal": { + "authTime": { "type": "integer", - "description": "Aggregated stats for total databases writes.", - "x-example": 0, + "description": "Unix timestamp of when the user last authenticated.", + "x-example": 1592981250, "format": "int32" }, - "imageTransformations": { - "type": "array", - "description": "Aggregated stats for file transformations.", - "items": { - "$ref": "#\/components\/schemas\/metric" - }, - "x-example": [] - }, - "imageTransformationsTotal": { - "type": "integer", - "description": "Aggregated stats for total file transformations.", - "x-example": 0, - "format": "int32" + "expire": { + "type": "string", + "description": "Grant expiration time in ISO 8601 format.", + "x-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.", + "x-example": "5f3c8d2a1b9e4f7a6c8b2d1e9f4a7b3c5d8e1f2a9b4c7d6e3f5a8b1c4d7e2f9a" }, - "screenshotsGenerated": { - "type": "array", - "description": "Aggregated stats for file transformations.", - "items": { - "$ref": "#\/components\/schemas\/metric" - }, - "x-example": [] + "user_code": { + "type": "string", + "description": "Short code the end user enters on the verification page.", + "x-example": "ABCD-EFGH" }, - "screenshotsGeneratedTotal": { - "type": "integer", - "description": "Aggregated stats for total file transformations.", - "x-example": 0, - "format": "int32" + "verification_uri": { + "type": "string", + "description": "URL where the end user enters the user code.", + "x-example": "https:\/\/cloud.appwrite.io\/console\/oauth2\/device" }, - "realtimeConnections": { - "type": "integer", - "description": "Aggregated stats for realtime connections.", - "x-example": 0, - "format": "int32" + "verification_uri_complete": { + "type": "string", + "description": "Verification URL with the user code prefilled as a query parameter.", + "x-example": "https:\/\/cloud.appwrite.io\/console\/oauth2\/device?user_code=ABCD-EFGH" }, - "realtimeMessages": { + "expires_in": { "type": "integer", - "description": "Aggregated stats for realtime messages.", - "x-example": 0, + "description": "Lifetime of the device code and user code in seconds.", + "x-example": 900, "format": "int32" }, - "realtimeBandwidth": { + "interval": { "type": "integer", - "description": "Aggregated stats for realtime bandwidth.", - "x-example": 0, + "description": "Minimum polling interval for the token endpoint in seconds.", + "x-example": 5, "format": "int32" } }, "required": [ - "projectId", - "bandwidth", - "users", - "executions", - "databasesReads", - "databasesWrites", - "executionsMBSeconds", - "buildsMBSeconds", - "storage", - "authPhoneTotal", - "authPhoneEstimate", - "databasesReadsTotal", - "databasesWritesTotal", - "imageTransformations", - "imageTransformationsTotal", - "screenshotsGenerated", - "screenshotsGeneratedTotal", - "realtimeConnections", - "realtimeMessages", - "realtimeBandwidth" + "device_code", + "user_code", + "verification_uri", + "verification_uri_complete", + "expires_in", + "interval" ], "example": { - "projectId": "5e5ea5c16897e", - "bandwidth": [], - "users": [], - "executions": [], - "databasesReads": [], - "databasesWrites": [], - "executionsMBSeconds": 0, - "buildsMBSeconds": 0, - "storage": [], - "authPhoneTotal": [], - "authPhoneEstimate": [], - "databasesReadsTotal": 0, - "databasesWritesTotal": 0, - "imageTransformations": [], - "imageTransformationsTotal": 0, - "screenshotsGenerated": [], - "screenshotsGeneratedTotal": 0, - "realtimeConnections": 0, - "realtimeMessages": 0, - "realtimeBandwidth": 0 + "device_code": "5f3c8d2a1b9e4f7a6c8b2d1e9f4a7b3c5d8e1f2a9b4c7d6e3f5a8b1c4d7e2f9a", + "user_code": "ABCD-EFGH", + "verification_uri": "https:\/\/cloud.appwrite.io\/console\/oauth2\/device", + "verification_uri_complete": "https:\/\/cloud.appwrite.io\/console\/oauth2\/device?user_code=ABCD-EFGH", + "expires_in": 900, + "interval": 5 } }, - "usageResources": { - "description": "Resource", + "oauth2PAR": { + "description": "OAuth2 PAR", "type": "object", "properties": { - "name": { + "request_uri": { "type": "string", - "description": "Invoice name", - "x-example": "" + "description": "Authorization request handle to pass to the authorize endpoint.", + "x-example": "urn:appwrite:oauth2:request:5e5ea5c16897e" }, - "value": { + "expires_in": { "type": "integer", - "description": "Invoice value", - "x-example": 0, + "description": "Lifetime of the authorization request handle in seconds.", + "x-example": 600, "format": "int32" + } + }, + "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.", + "x-example": "eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiJ9..." }, - "amount": { - "type": "number", - "description": "Invoice amount", - "x-example": 500, - "format": "double" - }, - "rate": { - "type": "number", - "description": "Invoice rate", - "x-example": 12.5, - "format": "double" + "token_type": { + "type": "string", + "description": "OAuth2 token type.", + "x-example": "Bearer" }, - "desc": { + "expires_in": { + "type": "integer", + "description": "Access token lifetime in seconds.", + "x-example": 3600, + "format": "int32" + }, + "refresh_token": { "type": "string", - "description": "Invoice description", - "x-example": "Your monthly recurring Pro plan." + "description": "OAuth2 refresh token.", + "x-example": "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9..." }, - "resourceId": { + "scope": { "type": "string", - "description": "Resource ID", - "x-example": "" + "description": "Space-separated scopes granted to the access token.", + "x-example": "openid email profile" }, - "type": { + "authorization_details": { "type": "string", - "description": "Dedicated database engine type for per-database line items (e.g. postgresql). Empty for other resources.", - "x-example": "postgresql" + "description": "Granted RFC 9396 authorization details as a JSON string.", + "x-example": "[{\"type\":\"calendar\",\"identifier\":\"primary\",\"actions\":[\"read_events\"]}]", + "nullable": true }, - "specification": { + "id_token": { "type": "string", - "description": "Dedicated database specification slug for per-database line items (e.g. s-2vcpu-2gb). Empty for other resources.", - "x-example": "s-2vcpu-2gb" + "description": "OpenID Connect ID token. Returned when the `openid` scope is granted.", + "x-example": "eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiJ9...", + "nullable": true } }, "required": [ - "name", - "value", - "amount", - "rate", - "desc", - "resourceId", - "type", - "specification" + "access_token", + "token_type", + "expires_in", + "refresh_token", + "scope" ], "example": { - "name": "", - "value": 0, - "amount": 500, - "rate": 12.5, - "desc": "Your monthly recurring Pro plan.", - "resourceId": "", - "type": "postgresql", - "specification": "s-2vcpu-2gb" + "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..." } }, - "app": { - "description": "App", + "oauth2Consent": { + "description": "OAuth2 Consent", "type": "object", "properties": { "$id": { "type": "string", - "description": "App ID.", + "description": "Consent ID.", "x-example": "5e5ea5c16897e" }, "$createdAt": { "type": "string", - "description": "App creation time in ISO 8601 format.", + "description": "Consent creation time in ISO 8601 format.", "x-example": "2020-10-15T06:38:00.000+00:00" }, "$updatedAt": { "type": "string", - "description": "App update date in ISO 8601 format.", + "description": "Consent update date in ISO 8601 format.", "x-example": "2020-10-15T06:38:00.000+00:00" }, - "name": { - "type": "string", - "description": "Application name.", - "x-example": "My Application" - }, - "description": { - "type": "string", - "description": "Application description shown to users during OAuth2 consent.", - "x-example": "Connect your workspace to My Application." - }, - "clientUri": { - "type": "string", - "description": "Application homepage URL shown to users during OAuth2 consent.", - "x-example": "https:\/\/example.com" - }, - "logoUri": { + "userId": { "type": "string", - "description": "Application logo URL shown to users during OAuth2 consent.", - "x-example": "https:\/\/example.com\/logo.png" + "description": "ID of the user the consent belongs to.", + "x-example": "5e5ea5c16897e" }, - "privacyPolicyUrl": { + "appId": { "type": "string", - "description": "Application privacy policy URL shown to users during OAuth2 consent.", - "x-example": "https:\/\/example.com\/privacy" + "description": "ID of the registered app the consent was given to. Empty for URL-form (CIMD) clients.", + "x-example": "5e5ea5c16897e" }, - "termsUrl": { + "cimdUrl": { "type": "string", - "description": "Application terms of service URL shown to users during OAuth2 consent.", - "x-example": "https:\/\/example.com\/terms" + "description": "Client ID metadata document URL of the client the consent was given to. Empty for registered apps.", + "x-example": "https:\/\/example.com\/.well-known\/client-metadata.json" }, - "contacts": { + "scopes": { "type": "array", - "description": "Application support or security contact emails.", + "description": "OAuth2 scopes the user consented to.", "items": { "type": "string" }, "x-example": [ - "support@example.com" + "openid", + "email", + "profile" ] }, - "tagline": { - "type": "string", - "description": "Application tagline shown to users during OAuth2 consent.", - "x-example": "Automate your workspace." - }, - "tags": { + "resources": { "type": "array", - "description": "Application tags shown to users during OAuth2 consent.", + "description": "RFC 8707 resource indicators the user consented to.", "items": { "type": "string" }, "x-example": [ - "productivity", - "automation" + "https:\/\/api.example.com\/" ] }, - "images": { - "type": "array", - "description": "Application image URLs shown to users during OAuth2 consent.", - "items": { - "type": "string" - }, - "x-example": [ - "https:\/\/example.com\/screenshot.png" - ] + "authorizationDetails": { + "type": "string", + "description": "Authorization details the user consented to, as a JSON string. Each entry has a `type` plus project-defined fields.", + "x-example": "[{\"type\":\"calendar\",\"identifier\":\"primary\",\"actions\":[\"read_events\",\"create_event\"]}]" }, - "supportUrl": { + "expire": { "type": "string", - "description": "Application support URL shown to users during OAuth2 consent.", - "x-example": "https:\/\/example.com\/support" + "description": "Consent expiration time in ISO 8601 format. Empty when the consent has no token-bound expiry yet.", + "x-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.", + "x-example": "5e5ea5c16897e" }, - "dataDeletionUrl": { + "$createdAt": { "type": "string", - "description": "Application data deletion URL shown to users during OAuth2 consent.", - "x-example": "https:\/\/example.com\/data-deletion" + "description": "Token creation time in ISO 8601 format.", + "x-example": "2020-10-15T06:38:00.000+00:00" }, - "redirectUris": { + "$updatedAt": { + "type": "string", + "description": "Token update date in ISO 8601 format. Refreshing the token family updates this.", + "x-example": "2020-10-15T06:38:00.000+00:00" + }, + "consentId": { + "type": "string", + "description": "ID of the consent the token family was issued under.", + "x-example": "5e5ea5c16897e" + }, + "userId": { + "type": "string", + "description": "ID of the user the token family belongs to.", + "x-example": "5e5ea5c16897e" + }, + "appId": { + "type": "string", + "description": "ID of the registered app the token family was issued to. Empty for URL-form (CIMD) clients.", + "x-example": "5e5ea5c16897e" + }, + "cimdUrl": { + "type": "string", + "description": "Client ID metadata document URL of the client the token family was issued to. Empty for registered apps.", + "x-example": "https:\/\/example.com\/.well-known\/client-metadata.json" + }, + "scopes": { "type": "array", - "description": "List of authorized redirect URIs. These URIs can be used to redirect users after they authenticate.", + "description": "OAuth2 scopes granted on the token family.", "items": { "type": "string" }, "x-example": [ - "https:\/\/example.com\/callback" + "openid", + "email", + "profile" ] }, - "postLogoutRedirectUris": { + "resources": { "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.", + "description": "RFC 8707 resource indicators granted on the token family.", "items": { "type": "string" }, "x-example": [ - "https:\/\/example.com\/logged-out" + "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.", + "x-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.", + "x-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.", + "x-example": "wafRule1" + }, + "$createdAt": { + "type": "string", + "description": "WAF rule creation time in ISO 8601 format.", + "x-example": "2020-10-15T06:38:00.000+00:00" + }, + "$updatedAt": { + "type": "string", + "description": "WAF rule last update time in ISO 8601 format.", + "x-example": "2020-10-15T06:38:00.000+00:00" + }, + "name": { + "type": "string", + "description": "Human friendly rule name.", + "x-example": "Block anonymous POST traffic" + }, + "description": { + "type": "string", + "description": "Optional description for the rule.", + "x-example": "Blocks anonymous POST calls to \/v1\/graphql" + }, + "teamId": { + "type": "string", + "description": "Team ID.", + "x-example": "5e5ea5c16897e" + }, + "projectId": { + "type": "string", + "description": "Project ID.", + "x-example": "cloudConsole" + }, + "resourceType": { + "type": "string", + "description": "Resource type the rule is scoped to.", + "x-example": "functions" + }, + "resourceId": { + "type": "string", + "description": "Resource identifier. Empty for API-wide rules.", + "x-example": "functionId" + }, + "action": { + "type": "string", + "description": "Action performed when the rule matches.", + "x-example": "deny", + "enum": [ + "bypass", + "deny", + "challenge", + "rateLimit", + "redirect" + ], + "x-enum-name": "WafRuleAction" + }, + "priority": { + "type": "integer", + "description": "Evaluation priority. Lower values execute earlier.", + "x-example": 100, + "format": "int32" + }, "enabled": { "type": "boolean", - "description": "Whether the app is enabled or not.", + "description": "Whether the rule is active.", "x-example": true }, - "type": { + "conditions": { + "type": "object", + "additionalProperties": true, + "description": "List of conditions evaluated for this rule.", + "x-example": [ + { + "method": "equal", + "attribute": "ip", + "values": [ + "127.0.0.1" + ] + } + ] + }, + "config": { + "type": "object", + "additionalProperties": true, + "description": "Action specific configuration.", + "x-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": "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.", - "x-example": "confidential" + "description": "Rule ID.", + "x-example": "wafRule1" }, - "deviceFlow": { - "type": "boolean", - "description": "Whether this client may use the OAuth2 Device Authorization Grant (RFC 8628).", - "x-example": false + "$createdAt": { + "type": "string", + "description": "WAF rule creation time in ISO 8601 format.", + "x-example": "2020-10-15T06:38:00.000+00:00" + }, + "$updatedAt": { + "type": "string", + "description": "WAF rule last update time in ISO 8601 format.", + "x-example": "2020-10-15T06:38:00.000+00:00" + }, + "name": { + "type": "string", + "description": "Human friendly rule name.", + "x-example": "Block anonymous POST traffic" + }, + "description": { + "type": "string", + "description": "Optional description for the rule.", + "x-example": "Blocks anonymous POST calls to \/v1\/graphql" }, "teamId": { "type": "string", - "description": "ID of team that owns the application, if owned by team. Otherwise, user ID will be used.", + "description": "Team ID.", "x-example": "5e5ea5c16897e" }, - "userId": { + "projectId": { "type": "string", - "description": "ID of user who owns the application, if owned by user. Otherwise, team ID will be used.", - "x-example": "5e5ea5c16897e" + "description": "Project ID.", + "x-example": "cloudConsole" }, - "secrets": { - "type": "array", - "description": "List of application secrets.", - "items": { - "$ref": "#\/components\/schemas\/appSecret" - }, + "resourceType": { + "type": "string", + "description": "Resource type the rule is scoped to.", + "x-example": "functions" + }, + "resourceId": { + "type": "string", + "description": "Resource identifier. Empty for API-wide rules.", + "x-example": "functionId" + }, + "action": { + "type": "string", + "description": "Action performed when the rule matches.", + "x-example": "deny", + "enum": [ + "bypass", + "deny", + "challenge", + "rateLimit", + "redirect" + ], + "x-enum-name": "WafRuleAction" + }, + "priority": { + "type": "integer", + "description": "Evaluation priority. Lower values execute earlier.", + "x-example": 100, + "format": "int32" + }, + "enabled": { + "type": "boolean", + "description": "Whether the rule is active.", + "x-example": true + }, + "conditions": { + "type": "object", + "additionalProperties": true, + "description": "List of conditions evaluated for this rule.", + "x-example": [ + { + "method": "equal", + "attribute": "ip", + "values": [ + "127.0.0.1" + ] + } + ] + }, + "config": { + "type": "object", + "additionalProperties": true, + "description": "Action specific configuration.", "x-example": [] } }, @@ -117514,516 +117277,503 @@ "$updatedAt", "name", "description", - "clientUri", - "logoUri", - "privacyPolicyUrl", - "termsUrl", - "contacts", - "tagline", - "tags", - "images", - "supportUrl", - "dataDeletionUrl", - "redirectUris", - "postLogoutRedirectUris", - "enabled", - "type", - "deviceFlow", "teamId", - "userId", - "secrets" + "projectId", + "resourceType", + "resourceId", + "action", + "priority", + "enabled", + "conditions", + "config" ], "example": { - "$id": "5e5ea5c16897e", + "$id": "wafRule1", "$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" - ], - "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, + "name": "Block anonymous POST traffic", + "description": "Blocks anonymous POST calls to \/v1\/graphql", "teamId": "5e5ea5c16897e", - "userId": "5e5ea5c16897e", - "secrets": [] + "projectId": "cloudConsole", + "resourceType": "functions", + "resourceId": "functionId", + "action": "deny", + "priority": 100, + "enabled": true, + "conditions": [ + { + "method": "equal", + "attribute": "ip", + "values": [ + "127.0.0.1" + ] + } + ], + "config": [] } }, - "appSecret": { - "description": "AppSecret", + "wafRuleDeny": { + "description": "WafRuleDeny", "type": "object", "properties": { "$id": { "type": "string", - "description": "Secret ID.", - "x-example": "5e5ea5c16897e" + "description": "Rule ID.", + "x-example": "wafRule1" }, "$createdAt": { "type": "string", - "description": "Secret creation time in ISO 8601 format.", + "description": "WAF rule creation time in ISO 8601 format.", "x-example": "2020-10-15T06:38:00.000+00:00" }, "$updatedAt": { "type": "string", - "description": "Secret update time in ISO 8601 format.", + "description": "WAF rule last update time in ISO 8601 format.", "x-example": "2020-10-15T06:38:00.000+00:00" }, - "appId": { + "name": { "type": "string", - "description": "Application ID this secret belongs to.", - "x-example": "5e5ea5c16897e" + "description": "Human friendly rule name.", + "x-example": "Block anonymous POST traffic" }, - "secret": { + "description": { "type": "string", - "description": "Hashed application client secret.", - "x-example": "$argon2i$v=19$m=16,t=2,p=1$MTIzMTIzMTIzMTIzMQ$3\/ZUl3IWERBO2RIm5rHltg" + "description": "Optional description for the rule.", + "x-example": "Blocks anonymous POST calls to \/v1\/graphql" }, - "hint": { + "teamId": { "type": "string", - "description": "Last few characters of the client secret, used to help identify it.", - "x-example": "f5c6c7" + "description": "Team ID.", + "x-example": "5e5ea5c16897e" }, - "createdById": { + "projectId": { "type": "string", - "description": "ID of the user who created the secret.", - "x-example": "5e5ea5c16897e" + "description": "Project ID.", + "x-example": "cloudConsole" }, - "createdByName": { + "resourceType": { "type": "string", - "description": "Name of the user who created the secret.", - "x-example": "Walter White" + "description": "Resource type the rule is scoped to.", + "x-example": "functions" }, - "lastAccessedAt": { + "resourceId": { "type": "string", - "description": "Time the secret was last used for authentication in ISO 8601 format. Null if never used.", - "x-example": "2020-10-15T06:38:00.000+00:00", - "nullable": true + "description": "Resource identifier. Empty for API-wide rules.", + "x-example": "functionId" + }, + "action": { + "type": "string", + "description": "Action performed when the rule matches.", + "x-example": "deny", + "enum": [ + "bypass", + "deny", + "challenge", + "rateLimit", + "redirect" + ], + "x-enum-name": "WafRuleAction" + }, + "priority": { + "type": "integer", + "description": "Evaluation priority. Lower values execute earlier.", + "x-example": 100, + "format": "int32" + }, + "enabled": { + "type": "boolean", + "description": "Whether the rule is active.", + "x-example": true + }, + "conditions": { + "type": "object", + "additionalProperties": true, + "description": "List of conditions evaluated for this rule.", + "x-example": [ + { + "method": "equal", + "attribute": "ip", + "values": [ + "127.0.0.1" + ] + } + ] + }, + "config": { + "type": "object", + "additionalProperties": true, + "description": "Action specific configuration.", + "x-example": [] } }, "required": [ "$id", "$createdAt", "$updatedAt", - "appId", - "secret", - "hint", - "createdById", - "createdByName" + "name", + "description", + "teamId", + "projectId", + "resourceType", + "resourceId", + "action", + "priority", + "enabled", + "conditions", + "config" ], "example": { - "$id": "5e5ea5c16897e", + "$id": "wafRule1", "$createdAt": "2020-10-15T06:38:00.000+00:00", "$updatedAt": "2020-10-15T06:38:00.000+00:00", - "appId": "5e5ea5c16897e", - "secret": "$argon2i$v=19$m=16,t=2,p=1$MTIzMTIzMTIzMTIzMQ$3\/ZUl3IWERBO2RIm5rHltg", - "hint": "f5c6c7", - "createdById": "5e5ea5c16897e", - "createdByName": "Walter White", - "lastAccessedAt": "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": [] } }, - "appSecretPlaintext": { - "description": "AppSecretPlaintext", + "wafRuleRateLimit": { + "description": "WafRuleRateLimit", "type": "object", "properties": { "$id": { "type": "string", - "description": "Secret ID.", - "x-example": "5e5ea5c16897e" + "description": "Rule ID.", + "x-example": "wafRule1" }, "$createdAt": { "type": "string", - "description": "Secret creation time in ISO 8601 format.", + "description": "WAF rule creation time in ISO 8601 format.", "x-example": "2020-10-15T06:38:00.000+00:00" }, "$updatedAt": { "type": "string", - "description": "Secret update time in ISO 8601 format.", + "description": "WAF rule last update time in ISO 8601 format.", "x-example": "2020-10-15T06:38:00.000+00:00" }, - "appId": { + "name": { "type": "string", - "description": "Application ID this secret belongs to.", - "x-example": "5e5ea5c16897e" + "description": "Human friendly rule name.", + "x-example": "Block anonymous POST traffic" }, - "secret": { + "description": { "type": "string", - "description": "Application client secret. Returned in full only when the secret is created; subsequent reads return a masked value.", - "x-example": "5f3c8d2a1b9e4f7a6c8b2d1e9f4a7b3c5d8e1f2a9b4c7d6e3f5a8b1c4d7e2f9a" + "description": "Optional description for the rule.", + "x-example": "Blocks anonymous POST calls to \/v1\/graphql" }, - "hint": { + "teamId": { "type": "string", - "description": "Last few characters of the client secret, used to help identify it.", - "x-example": "f5c6c7" + "description": "Team ID.", + "x-example": "5e5ea5c16897e" }, - "createdById": { + "projectId": { "type": "string", - "description": "ID of the user who created the secret.", - "x-example": "5e5ea5c16897e" + "description": "Project ID.", + "x-example": "cloudConsole" }, - "createdByName": { + "resourceType": { "type": "string", - "description": "Name of the user who created the secret.", - "x-example": "Walter White" + "description": "Resource type the rule is scoped to.", + "x-example": "functions" }, - "lastAccessedAt": { + "resourceId": { "type": "string", - "description": "Time the secret was last used for authentication in ISO 8601 format. Null if never used.", - "x-example": "2020-10-15T06:38:00.000+00:00", - "nullable": true + "description": "Resource identifier. Empty for API-wide rules.", + "x-example": "functionId" + }, + "action": { + "type": "string", + "description": "Action performed when the rule matches.", + "x-example": "deny", + "enum": [ + "bypass", + "deny", + "challenge", + "rateLimit", + "redirect" + ], + "x-enum-name": "WafRuleAction" + }, + "priority": { + "type": "integer", + "description": "Evaluation priority. Lower values execute earlier.", + "x-example": 100, + "format": "int32" + }, + "enabled": { + "type": "boolean", + "description": "Whether the rule is active.", + "x-example": true + }, + "conditions": { + "type": "object", + "additionalProperties": true, + "description": "List of conditions evaluated for this rule.", + "x-example": [ + { + "method": "equal", + "attribute": "ip", + "values": [ + "127.0.0.1" + ] + } + ] + }, + "config": { + "type": "object", + "additionalProperties": true, + "description": "Action specific configuration.", + "x-example": [] + }, + "limit": { + "type": "integer", + "description": "Maximum number of matching requests allowed for the given interval.", + "x-example": 1000, + "format": "int32" + }, + "interval": { + "type": "integer", + "description": "Interval in seconds for the rate limit window.", + "x-example": 60, + "format": "int32" } }, "required": [ "$id", "$createdAt", "$updatedAt", - "appId", - "secret", - "hint", - "createdById", - "createdByName" + "name", + "description", + "teamId", + "projectId", + "resourceType", + "resourceId", + "action", + "priority", + "enabled", + "conditions", + "config", + "limit", + "interval" ], "example": { - "$id": "5e5ea5c16897e", + "$id": "wafRule1", "$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.", - "x-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.", - "x-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`.", - "x-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.", - "x-example": "https:\/\/example.com\/callback?error=access_denied&state=fghij" - } - }, - "required": [ - "redirectUrl" - ], - "example": { - "redirectUrl": "https:\/\/example.com\/callback?error=access_denied&state=fghij" + "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 } }, - "oauth2Grant": { - "description": "OAuth2 Grant", + "wafRuleRedirect": { + "description": "WafRuleRedirect", "type": "object", "properties": { "$id": { "type": "string", - "description": "Grant ID.", - "x-example": "5e5ea5c16897e" + "description": "Rule ID.", + "x-example": "wafRule1" }, "$createdAt": { "type": "string", - "description": "Grant creation time in ISO 8601 format.", + "description": "WAF rule creation time in ISO 8601 format.", "x-example": "2020-10-15T06:38:00.000+00:00" }, "$updatedAt": { "type": "string", - "description": "Grant update date in ISO 8601 format.", + "description": "WAF rule last update time in ISO 8601 format.", "x-example": "2020-10-15T06:38:00.000+00:00" }, - "userId": { + "name": { "type": "string", - "description": "ID of the user the grant belongs to.", - "x-example": "5e5ea5c16897e" + "description": "Human friendly rule name.", + "x-example": "Block anonymous POST traffic" }, - "appId": { + "description": { "type": "string", - "description": "ID of the OAuth2 client (app) the grant was requested for.", - "x-example": "5e5ea5c16897e" + "description": "Optional description for the rule.", + "x-example": "Blocks anonymous POST calls to \/v1\/graphql" }, - "scopes": { - "type": "array", - "description": "Requested OAuth2 scopes the user is being asked to consent to.", - "items": { - "type": "string" - }, - "x-example": [ - "openid", - "email", - "profile" - ] + "teamId": { + "type": "string", + "description": "Team ID.", + "x-example": "5e5ea5c16897e" }, - "resources": { - "type": "array", - "description": "Requested RFC 8707 resource indicators the user is being asked to consent to.", - "items": { - "type": "string" - }, - "x-example": [ - "https:\/\/api.example.com\/" - ] + "projectId": { + "type": "string", + "description": "Project ID.", + "x-example": "cloudConsole" }, - "authorizationDetails": { + "resourceType": { "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.", - "x-example": "[{\"type\":\"calendar\",\"identifier\":\"primary\",\"actions\":[\"read_events\",\"create_event\"]}]" + "description": "Resource type the rule is scoped to.", + "x-example": "functions" }, - "prompt": { + "resourceId": { "type": "string", - "description": "OIDC prompt directive the consent screen should honor. Space-separated list of: login, consent, select_account.", - "x-example": "login" + "description": "Resource identifier. Empty for API-wide rules.", + "x-example": "functionId" }, - "redirectUri": { + "action": { "type": "string", - "description": "Redirect URI the user will be sent to after the flow completes.", - "x-example": "https:\/\/example.com\/callback" + "description": "Action performed when the rule matches.", + "x-example": "deny", + "enum": [ + "bypass", + "deny", + "challenge", + "rateLimit", + "redirect" + ], + "x-enum-name": "WafRuleAction" }, - "authTime": { + "priority": { "type": "integer", - "description": "Unix timestamp of when the user last authenticated.", - "x-example": 1592981250, + "description": "Evaluation priority. Lower values execute earlier.", + "x-example": 100, "format": "int32" }, - "expire": { + "enabled": { + "type": "boolean", + "description": "Whether the rule is active.", + "x-example": true + }, + "conditions": { + "type": "object", + "additionalProperties": true, + "description": "List of conditions evaluated for this rule.", + "x-example": [ + { + "method": "equal", + "attribute": "ip", + "values": [ + "127.0.0.1" + ] + } + ] + }, + "config": { + "type": "object", + "additionalProperties": true, + "description": "Action specific configuration.", + "x-example": [] + }, + "location": { "type": "string", - "description": "Grant expiration time in ISO 8601 format.", - "x-example": "2020-10-15T06:38:00.000+00:00" + "description": "Target location for the redirect.", + "x-example": "\/maintenance" + }, + "statusCode": { + "type": "integer", + "description": "HTTP status code used for the redirect.", + "x-example": 301, + "format": "int32" } }, "required": [ "$id", "$createdAt", "$updatedAt", - "userId", - "appId", - "scopes", - "resources", - "authorizationDetails", - "prompt", - "redirectUri", - "authTime", - "expire" + "name", + "description", + "teamId", + "projectId", + "resourceType", + "resourceId", + "action", + "priority", + "enabled", + "conditions", + "config", + "location", + "statusCode" ], "example": { - "$id": "5e5ea5c16897e", + "$id": "wafRule1", "$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\/" + "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" + ] + } ], - "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" + "config": [], + "location": "\/maintenance", + "statusCode": 301 } }, - "oauth2DeviceAuthorization": { - "description": "OAuth2 Device Authorization", + "wafRuleList": { + "description": "WAF rule list", "type": "object", "properties": { - "device_code": { - "type": "string", - "description": "Device verification code used by the client to poll the token endpoint.", - "x-example": "5f3c8d2a1b9e4f7a6c8b2d1e9f4a7b3c5d8e1f2a9b4c7d6e3f5a8b1c4d7e2f9a" - }, - "user_code": { - "type": "string", - "description": "Short code the end user enters on the verification page.", - "x-example": "ABCD-EFGH" - }, - "verification_uri": { - "type": "string", - "description": "URL where the end user enters the user code.", - "x-example": "https:\/\/cloud.appwrite.io\/console\/oauth2\/device" - }, - "verification_uri_complete": { - "type": "string", - "description": "Verification URL with the user code prefilled as a query parameter.", - "x-example": "https:\/\/cloud.appwrite.io\/console\/oauth2\/device?user_code=ABCD-EFGH" - }, - "expires_in": { - "type": "integer", - "description": "Lifetime of the device code and user code in seconds.", - "x-example": 900, - "format": "int32" - }, - "interval": { + "total": { "type": "integer", - "description": "Minimum polling interval for the token endpoint in seconds.", + "description": "Total number of rules that matched your query.", "x-example": 5, "format": "int32" - } - }, - "required": [ - "device_code", - "user_code", - "verification_uri", - "verification_uri_complete", - "expires_in", - "interval" - ], - "example": { - "device_code": "5f3c8d2a1b9e4f7a6c8b2d1e9f4a7b3c5d8e1f2a9b4c7d6e3f5a8b1c4d7e2f9a", - "user_code": "ABCD-EFGH", - "verification_uri": "https:\/\/cloud.appwrite.io\/console\/oauth2\/device", - "verification_uri_complete": "https:\/\/cloud.appwrite.io\/console\/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.", - "x-example": "urn:appwrite:oauth2:request:5e5ea5c16897e" - }, - "expires_in": { - "type": "integer", - "description": "Lifetime of the authorization request handle in seconds.", - "x-example": 600, - "format": "int32" - } - }, - "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.", - "x-example": "eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiJ9..." - }, - "token_type": { - "type": "string", - "description": "OAuth2 token type.", - "x-example": "Bearer" - }, - "expires_in": { - "type": "integer", - "description": "Access token lifetime in seconds.", - "x-example": 3600, - "format": "int32" - }, - "refresh_token": { - "type": "string", - "description": "OAuth2 refresh token.", - "x-example": "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9..." - }, - "scope": { - "type": "string", - "description": "Space-separated scopes granted to the access token.", - "x-example": "openid email profile" - }, - "authorization_details": { - "type": "string", - "description": "Granted RFC 9396 authorization details as a JSON string.", - "x-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.", - "x-example": "eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiJ9...", - "nullable": true + "rules": { + "type": "array", + "description": "List of rules.", + "items": { + "$ref": "#\/components\/schemas\/wafRule" + }, + "x-example": "" } }, "required": [ - "access_token", - "token_type", - "expires_in", - "refresh_token", - "scope" + "total", + "rules" ], "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..." + "total": 5, + "rules": "" } }, "oauth2Project": { @@ -118130,6 +117880,62 @@ "organizations": "" } }, + "oauth2ConsentList": { + "description": "OAuth2 consents list", + "type": "object", + "properties": { + "total": { + "type": "integer", + "description": "Total number of consents that matched your query.", + "x-example": 5, + "format": "int32" + }, + "consents": { + "type": "array", + "description": "List of consents.", + "items": { + "$ref": "#\/components\/schemas\/oauth2Consent" + }, + "x-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.", + "x-example": 5, + "format": "int32" + }, + "tokens": { + "type": "array", + "description": "List of tokens.", + "items": { + "$ref": "#\/components\/schemas\/oauth2ConsentToken" + }, + "x-example": "" + } + }, + "required": [ + "total", + "tokens" + ], + "example": { + "total": 5, + "tokens": "" + } + }, "activityEventList": { "description": "Activity event list", "type": "object", @@ -118717,6 +118523,34 @@ "total": 5, "secrets": "" } + }, + "appScopeList": { + "description": "App scopes list", + "type": "object", + "properties": { + "total": { + "type": "integer", + "description": "Total number of scopes that matched your query.", + "x-example": 5, + "format": "int32" + }, + "scopes": { + "type": "array", + "description": "List of scopes.", + "items": { + "$ref": "#\/components\/schemas\/appScope" + }, + "x-example": "" + } + }, + "required": [ + "total", + "scopes" + ], + "example": { + "total": 5, + "scopes": "" + } } }, "securitySchemes": { diff --git a/specs/1.9.x/open-api3-1.9.x-server.json b/specs/1.9.x/open-api3-1.9.x-server.json index 547deb694..69f98d839 100644 --- a/specs/1.9.x/open-api3-1.9.x-server.json +++ b/specs/1.9.x/open-api3-1.9.x-server.json @@ -178,6 +178,436 @@ } } }, + "\/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": { + "method": "listConsents", + "group": "consents", + "cookies": false, + "type": "", + "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", + "x-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": { + "method": "getConsent", + "group": "consents", + "cookies": false, + "type": "", + "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", + "x-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": { + "method": "deleteConsent", + "group": "consents", + "cookies": false, + "type": "", + "demo": "account\/delete-consent.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "account", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "produces": [ + "application\/json" + ], + "auth": { + "Project": [], + "Session": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "consentId", + "description": "Consent unique ID.", + "required": true, + "schema": { + "type": "string", + "x-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": { + "method": "listConsentTokens", + "group": "consents", + "cookies": false, + "type": "", + "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", + "x-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", + "x-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": { + "method": "getConsentToken", + "group": "consents", + "cookies": false, + "type": "", + "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", + "x-example": "<CONSENT_ID>" + }, + "in": "path" + }, + { + "name": "tokenId", + "description": "Token unique ID.", + "required": true, + "schema": { + "type": "string", + "x-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": { + "method": "deleteConsentToken", + "group": "consents", + "cookies": false, + "type": "", + "demo": "account\/delete-consent-token.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "account", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "produces": [ + "application\/json" + ], + "auth": { + "Project": [], + "Session": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "consentId", + "description": "Consent unique ID.", + "required": true, + "schema": { + "type": "string", + "x-example": "<CONSENT_ID>" + }, + "in": "path" + }, + { + "name": "tokenId", + "description": "Token unique ID.", + "required": true, + "schema": { + "type": "string", + "x-example": "<TOKEN_ID>" + }, + "in": "path" + } + ] + } + }, "\/account\/email": { "patch": { "summary": "Update email", @@ -3190,7 +3620,7 @@ "parameters": [ { "name": "provider", - "description": "OAuth2 Provider. Currently, supported providers are: amazon, apple, auth0, authentik, autodesk, bitbucket, bitly, box, dailymotion, discord, disqus, dropbox, etsy, facebook, figma, fusionauth, github, gitlab, google, keycloak, kick, linkedin, microsoft, notion, oidc, okta, paypal, paypalSandbox, podio, salesforce, slack, spotify, stripe, tradeshift, tradeshiftBox, twitch, wordpress, x, yahoo, yammer, yandex, zoho, zoom.", + "description": "OAuth2 Provider. Currently, supported providers are: amazon, apple, appwrite, auth0, authentik, autodesk, bitbucket, bitly, box, dailymotion, discord, disqus, dropbox, etsy, facebook, figma, fusionauth, github, gitlab, google, keycloak, kick, linkedin, microsoft, notion, oidc, okta, paypal, paypalSandbox, podio, salesforce, slack, spotify, stripe, tradeshift, tradeshiftBox, twitch, wordpress, x, yahoo, yammer, yandex, zoho, zoom.", "required": true, "schema": { "type": "string", @@ -3198,6 +3628,7 @@ "enum": [ "amazon", "apple", + "appwrite", "auth0", "authentik", "autodesk", @@ -3244,6 +3675,7 @@ "x-enum-keys": [ "amazon", "apple", + "appwrite", "auth0", "authentik", "autodesk", @@ -3956,7 +4388,7 @@ "deprecated": false, "x-appwrite": { "method": "list", - "group": null, + "group": "apps", "cookies": false, "type": "", "demo": "apps\/list.md", @@ -4033,7 +4465,7 @@ "deprecated": false, "x-appwrite": { "method": "create", - "group": null, + "group": "apps", "cookies": false, "type": "", "demo": "apps\/create.md", @@ -4163,7 +4595,7 @@ }, "redirectUris": { "type": "array", - "description": "Redirect URIs (array of valid URLs).", + "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.", "x-example": null, "items": { "type": "string" @@ -4171,7 +4603,7 @@ }, "postLogoutRedirectUris": { "type": "array", - "description": "Post-logout redirect URIs for OpenID Connect RP-Initiated Logout (array of valid URLs). After ending the user session, the logout endpoint only redirects to URIs in this list.", + "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.", "default": [], "x-example": null, "items": { @@ -4214,6 +4646,59 @@ } } }, + "\/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": { + "method": "listOAuth2Scopes", + "group": "scopes", + "cookies": false, + "type": "", + "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", @@ -4237,7 +4722,7 @@ "deprecated": false, "x-appwrite": { "method": "get", - "group": null, + "group": "apps", "cookies": false, "type": "", "demo": "apps\/get.md", @@ -4268,7 +4753,7 @@ "parameters": [ { "name": "appId", - "description": "Application unique ID.", + "description": "Application unique ID or HTTPS client ID metadata document URL.", "required": true, "schema": { "type": "string", @@ -4300,7 +4785,7 @@ "deprecated": false, "x-appwrite": { "method": "update", - "group": null, + "group": "apps", "cookies": false, "type": "", "demo": "apps\/update.md", @@ -4440,7 +4925,7 @@ }, "redirectUris": { "type": "array", - "description": "Redirect URIs (array of valid URLs).", + "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.", "default": [], "x-example": null, "items": { @@ -4449,7 +4934,7 @@ }, "postLogoutRedirectUris": { "type": "array", - "description": "Post-logout redirect URIs for OpenID Connect RP-Initiated Logout (array of valid URLs). After ending the user session, the logout endpoint only redirects to URIs in this list.", + "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.", "default": [], "x-example": null, "items": { @@ -4492,7 +4977,7 @@ "deprecated": false, "x-appwrite": { "method": "delete", - "group": null, + "group": "apps", "cookies": false, "type": "", "demo": "apps\/delete.md", @@ -4537,21 +5022,21 @@ ] } }, - "\/apps\/{appId}\/secrets": { - "get": { - "summary": "List Secrets", - "operationId": "appsListSecrets", + "\/apps\/{appId}\/labels": { + "put": { + "summary": "Update Application Labels", + "operationId": "appsUpdateLabels", "tags": [ "apps" ], - "description": "List client secrets for an application.", + "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 secrets list", + "description": "App", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/appSecretList" + "$ref": "#\/components\/schemas\/app" } } } @@ -4559,33 +5044,30 @@ }, "deprecated": false, "x-appwrite": { - "method": "listSecrets", - "group": null, + "method": "updateLabels", + "group": "apps", "cookies": false, "type": "", - "demo": "apps\/list-secrets.md", - "rate-limit": 120, + "demo": "apps\/update-labels.md", + "rate-limit": 60, "rate-time": 60, "rate-key": "ip:{ip},userId:{userId}", - "scope": "apps.read", + "scope": "apps.write", "platforms": [ "console", - "client", "server" ], "packaging": false, "public": true, "auth": { "Project": [], - "Session": [] + "Key": [] } }, "security": [ { "Project": [], - "Session": [], - "Key": [], - "JWT": [] + "Key": [] } ], "parameters": [ @@ -4598,112 +5080,47 @@ "x-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", - "x-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" - } + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "labels": { + "type": "array", + "description": "Array of application labels. Replaces the previous labels. Maximum of 1000 labels are allowed, each up to 36 alphanumeric characters long.", + "x-example": null, + "items": { + "type": "string" + } + } + }, + "required": [ + "labels" + ] } } } - }, - "deprecated": false, - "x-appwrite": { - "method": "createSecret", - "group": null, - "cookies": false, - "type": "", - "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", - "x-example": "<APP_ID>" - }, - "in": "path" - } - ] + } } }, - "\/apps\/{appId}\/secrets\/{secretId}": { + "\/apps\/{appId}\/secrets": { "get": { - "summary": "Get Secret", - "operationId": "appsGetSecret", + "summary": "List Secrets", + "operationId": "appsListSecrets", "tags": [ "apps" ], - "description": "Get an application client secret by its unique ID.", + "description": "List client secrets for an application.", "responses": { "200": { - "description": "AppSecret", + "description": "App secrets list", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/appSecret" + "$ref": "#\/components\/schemas\/appSecretList" } } } @@ -4711,11 +5128,11 @@ }, "deprecated": false, "x-appwrite": { - "method": "getSecret", - "group": null, + "method": "listSecrets", + "group": "secrets", "cookies": false, "type": "", - "demo": "apps\/get-secret.md", + "demo": "apps\/list-secrets.md", "rate-limit": 120, "rate-time": 60, "rate-key": "ip:{ip},userId:{userId}", @@ -4752,75 +5169,227 @@ "in": "path" }, { - "name": "secretId", - "description": "Secret unique ID.", - "required": true, - "schema": { - "type": "string", - "x-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": { - "method": "deleteSecret", - "group": null, - "cookies": false, - "type": "", - "demo": "apps\/delete-secret.md", - "rate-limit": 60, - "rate-time": 60, - "rate-key": "ip:{ip},userId:{userId}", - "scope": "apps.write", - "platforms": [ - "console", - "client", - "server" - ], - "packaging": false, - "public": true, - "produces": [ - "application\/json" - ], - "auth": { - "Project": [], - "Session": [] - } - }, - "security": [ - { - "Project": [], - "Session": [], - "Key": [], - "JWT": [] - } - ], - "parameters": [ - { - "name": "appId", - "description": "Application unique ID.", - "required": true, - "schema": { - "type": "string", - "x-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", + "x-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": { + "method": "createSecret", + "group": "secrets", + "cookies": false, + "type": "", + "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", + "x-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": { + "method": "getSecret", + "group": "secrets", + "cookies": false, + "type": "", + "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", + "x-example": "<APP_ID>" + }, + "in": "path" + }, + { + "name": "secretId", + "description": "Secret unique ID.", + "required": true, + "schema": { + "type": "string", + "x-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": { + "method": "deleteSecret", + "group": "secrets", + "cookies": false, + "type": "", + "demo": "apps\/delete-secret.md", + "rate-limit": 60, + "rate-time": 60, + "rate-key": "ip:{ip},userId:{userId}", + "scope": "apps.write", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "produces": [ + "application\/json" + ], + "auth": { + "Project": [], + "Session": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "Key": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "appId", + "description": "Application unique ID.", + "required": true, + "schema": { + "type": "string", + "x-example": "<APP_ID>" + }, + "in": "path" + }, + { "name": "secretId", "description": "Secret unique ID.", "required": true, @@ -4856,7 +5425,7 @@ "deprecated": false, "x-appwrite": { "method": "updateTeam", - "group": null, + "group": "apps", "cookies": false, "type": "", "demo": "apps\/update-team.md", @@ -4933,7 +5502,7 @@ "deprecated": false, "x-appwrite": { "method": "deleteTokens", - "group": null, + "group": "apps", "cookies": false, "type": "", "demo": "apps\/delete-tokens.md", @@ -8060,7 +8629,7 @@ "tags": [ "backups" ], - "description": "Create and trigger a new restoration for a backup on a project.\n\nWhen restoring a DocumentsDB or VectorsDB database to a new resource, pass `newSpecification` to provision the restored database on a different specification than the archived one (for example, restoring onto a larger or smaller dedicated database). Use `serverless` to restore onto the shared pool, or a dedicated specification slug to restore onto a dedicated database of that size. The specification must be permitted by the organization's plan. `newSpecification` is not supported for legacy\/TablesDB databases or for bucket restores.\n", + "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. Pass `newResourceId` to restore into that database ID, including the archived database ID to overwrite it. When `newResourceId` is omitted, a new database ID is generated and returned in `options`.\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 to a new resource from a dedicated source, the restore provisions a fresh dedicated backing database at the source database's own specification.\n", "responses": { "201": { "description": "Restoration", @@ -8142,7 +8711,7 @@ }, "newResourceId": { "type": "string", - "description": "Unique Id. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.", + "description": "Destination resource ID. Omit to generate a new ID, or pass the archived resource ID to overwrite it. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.", "default": "", "x-example": "<NEW_RESOURCE_ID>", "x-appwrite": { @@ -8154,12 +8723,6 @@ "description": "Database name. Max length: 128 chars.", "default": "", "x-example": "<NEW_RESOURCE_NAME>" - }, - "newSpecification": { - "type": "string", - "description": "Specification to provision the restored database on, when restoring a DocumentsDB or VectorsDB database to a new resource. Defaults to the archived database's specification. Use `serverless` for the shared pool or a dedicated specification slug.", - "default": "", - "x-example": "serverless" } }, "required": [ @@ -14836,7 +15399,6 @@ "documentId": { "type": "string", "description": "Document ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.", - "default": "", "x-example": "<DOCUMENT_ID>", "x-appwrite": { "idGenerator": "ID.unique" @@ -14845,7 +15407,7 @@ "data": { "type": "object", "description": "Document data as JSON object.", - "default": [], + "default": {}, "x-example": "{\"username\":\"walter.obrien\",\"email\":\"walter.obrien@example.com\",\"fullName\":\"Walter O'Brien\",\"age\":30,\"isAdmin\":false}" }, "permissions": { @@ -14872,7 +15434,11 @@ "x-example": "<TRANSACTION_ID>", "x-nullable": true } - } + }, + "required": [ + "documentId", + "data" + ] } } } @@ -16533,6 +17099,13 @@ "description": "Database specification. Defaults to `serverless`, which creates the database on the shared pool. Any other value provisions a dedicated database on that specification.", "default": "serverless", "x-example": "serverless" + }, + "replicas": { + "type": "integer", + "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.", + "default": 0, + "x-example": 0, + "format": "int32" } }, "required": [ @@ -16545,6 +17118,56 @@ } } }, + "\/documentsdb\/specifications": { + "get": { + "summary": "List dedicated database specifications.", + "operationId": "documentsDBListSpecifications", + "tags": [ + "documentsDB" + ], + "description": "List the dedicated database specifications available on the current plan. Each specification reports its resource limits, pricing, and whether it is enabled for the organization.", + "responses": { + "200": { + "description": "SpecificationList", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/dedicatedDatabaseSpecificationList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "method": "listSpecifications", + "group": "databases", + "cookies": false, + "type": "", + "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", @@ -17117,6 +17740,13 @@ "description": "Is database enabled? When set to 'disabled', users cannot access the database but Server SDKs with an API key can still read and write to the database. No data is lost when this is toggled.", "default": true, "x-example": false + }, + "replicas": { + "type": "integer", + "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.", + "x-example": 0, + "format": "int32", + "x-nullable": true } }, "required": [ @@ -17925,7 +18555,6 @@ "documentId": { "type": "string", "description": "Document ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.", - "default": "", "x-example": "<DOCUMENT_ID>", "x-appwrite": { "idGenerator": "ID.unique" @@ -17934,7 +18563,7 @@ "data": { "type": "object", "description": "Document data as JSON object.", - "default": [], + "default": {}, "x-example": "{\"username\":\"walter.obrien\",\"email\":\"walter.obrien@example.com\",\"fullName\":\"Walter O'Brien\",\"age\":30,\"isAdmin\":false}" }, "permissions": { @@ -17959,7 +18588,11 @@ "description": "Transaction ID for staging the operation.", "x-example": "<TRANSACTION_ID>" } - } + }, + "required": [ + "documentId", + "data" + ] } } } @@ -19391,6 +20024,209 @@ ] } }, + "\/documentsdb\/{databaseId}\/failovers": { + "post": { + "summary": "Trigger manual 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.", + "responses": { + "202": { + "description": "DedicatedDatabase", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/dedicatedDatabase" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "method": "createFailover", + "group": "databases", + "cookies": false, + "type": "", + "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", + "x-example": "<DATABASE_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "targetReplicaId": { + "type": "string", + "description": "Target replica ID to promote. If not specified, the healthiest replica is selected.", + "x-example": "<TARGET_REPLICA_ID>", + "x-nullable": true + } + } + } + } + } + } + } + }, + "\/documentsdb\/{databaseId}\/replicas": { + "get": { + "summary": "Get replica status.", + "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": { + "method": "getReplicas", + "group": "databases", + "cookies": false, + "type": "", + "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", + "x-example": "<DATABASE_ID>" + }, + "in": "path" + } + ] + } + }, + "\/documentsdb\/{databaseId}\/status": { + "get": { + "summary": "Get database 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": { + "method": "getStatus", + "group": "databases", + "cookies": false, + "type": "", + "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", + "x-example": "<DATABASE_ID>" + }, + "in": "path" + } + ] + } + }, "\/functions": { "get": { "summary": "List functions", @@ -19816,8 +20652,113 @@ "templates.write", "stages.read", "stages.write", + "users.read", + "users.write", + "sessions.read", + "sessions.write", + "teams.read", + "teams.write", + "databases.read", + "databases.write", + "tables.read", + "tables.write", + "columns.read", + "columns.write", + "indexes.read", + "indexes.write", + "rows.read", + "rows.write", + "collections.read", + "collections.write", + "attributes.read", + "attributes.write", + "documents.read", + "documents.write", + "buckets.read", + "buckets.write", + "files.read", + "files.write", + "tokens.read", + "tokens.write", + "functions.read", + "functions.write", + "executions.read", + "executions.write", + "execution.read", + "execution.write", + "sites.read", + "sites.write", + "log.read", + "log.write", + "providers.read", + "providers.write", + "topics.read", + "topics.write", + "subscribers.read", + "subscribers.write", + "targets.read", + "targets.write", + "messages.read", + "messages.write", + "rules.read", + "rules.write", + "webhooks.read", + "webhooks.write", + "locale.read", + "avatars.read", + "health.read", + "assistant.read", + "migrations.read", + "migrations.write", + "schedules.read", + "schedules.write", + "vcs.read", + "vcs.write", + "insights.read", + "insights.write", + "reports.read", + "reports.write", + "presences.read", + "presences.write", + "backups.policies.read", + "backups.policies.write", + "archives.read", + "archives.write", + "restorations.read", + "restorations.write", + "dedicatedDatabases.execute", + "domains.read", + "domains.write", + "wafRules.read", + "wafRules.write", + "events.read", + "apps.read", + "apps.write", "oauth2.read", "oauth2.write", + "oauth2.introspect", + "usage.read" + ], + "x-enum-name": "ProjectKeyScopes", + "x-enum-keys": [ + "project.read", + "project.write", + "keys.read", + "keys.write", + "platforms.read", + "platforms.write", + "mocks.read", + "mocks.write", + "policies.read", + "policies.write", + "project.policies.read", + "project.policies.write", + "project.oauth2.read", + "project.oauth2.write", + "templates.read", + "templates.write", + "stages.read", + "stages.write", "users.read", "users.write", "sessions.read", @@ -19895,113 +20836,14 @@ "dedicatedDatabases.execute", "domains.read", "domains.write", + "wafRules.read", + "wafRules.write", "events.read", "apps.read", "apps.write", - "usage.read" - ], - "x-enum-name": "ProjectKeyScopes", - "x-enum-keys": [ - "project.read", - "project.write", - "keys.read", - "keys.write", - "platforms.read", - "platforms.write", - "mocks.read", - "mocks.write", - "policies.read", - "policies.write", - "project.policies.read", - "project.policies.write", - "project.oauth2.read", - "project.oauth2.write", - "templates.read", - "templates.write", - "stages.read", - "stages.write", "oauth2.read", "oauth2.write", - "users.read", - "users.write", - "sessions.read", - "sessions.write", - "teams.read", - "teams.write", - "databases.read", - "databases.write", - "tables.read", - "tables.write", - "columns.read", - "columns.write", - "indexes.read", - "indexes.write", - "rows.read", - "rows.write", - "collections.read", - "collections.write", - "attributes.read", - "attributes.write", - "documents.read", - "documents.write", - "buckets.read", - "buckets.write", - "files.read", - "files.write", - "tokens.read", - "tokens.write", - "functions.read", - "functions.write", - "executions.read", - "executions.write", - "execution.read", - "execution.write", - "sites.read", - "sites.write", - "log.read", - "log.write", - "providers.read", - "providers.write", - "topics.read", - "topics.write", - "subscribers.read", - "subscribers.write", - "targets.read", - "targets.write", - "messages.read", - "messages.write", - "rules.read", - "rules.write", - "webhooks.read", - "webhooks.write", - "locale.read", - "avatars.read", - "health.read", - "assistant.read", - "migrations.read", - "migrations.write", - "schedules.read", - "schedules.write", - "vcs.read", - "vcs.write", - "insights.read", - "insights.write", - "reports.read", - "reports.write", - "presences.read", - "presences.write", - "backups.policies.read", - "backups.policies.write", - "archives.read", - "archives.write", - "restorations.read", - "restorations.write", - "dedicatedDatabases.execute", - "domains.read", - "domains.write", - "events.read", - "apps.read", - "apps.write", + "oauth2.introspect", "usage.read" ] } @@ -20602,8 +21444,6 @@ "templates.write", "stages.read", "stages.write", - "oauth2.read", - "oauth2.write", "users.read", "users.write", "sessions.read", @@ -20681,9 +21521,14 @@ "dedicatedDatabases.execute", "domains.read", "domains.write", + "wafRules.read", + "wafRules.write", "events.read", "apps.read", "apps.write", + "oauth2.read", + "oauth2.write", + "oauth2.introspect", "usage.read" ], "x-enum-name": "ProjectKeyScopes", @@ -20706,8 +21551,6 @@ "templates.write", "stages.read", "stages.write", - "oauth2.read", - "oauth2.write", "users.read", "users.write", "sessions.read", @@ -20785,9 +21628,14 @@ "dedicatedDatabases.execute", "domains.read", "domains.write", + "wafRules.read", + "wafRules.write", "events.read", "apps.read", "apps.write", + "oauth2.read", + "oauth2.write", + "oauth2.introspect", "usage.read" ] } @@ -20849,8 +21697,8 @@ "runtimeSpecification": { "type": "string", "description": "Runtime specification for the function executions.", - "default": {}, - "x-example": null + "x-example": null, + "x-nullable": true }, "deploymentRetention": { "type": "integer", @@ -21675,7 +22523,10 @@ "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "functions.read", + "scope": [ + "public", + "functions.read" + ], "platforms": [ "console", "server" @@ -21736,6 +22587,17 @@ "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", + "x-example": "<TOKEN>", + "default": "" + }, + "in": "query" } ] } @@ -22748,21 +23610,21 @@ } } }, - "\/health": { + "\/locale": { "get": { - "summary": "Get HTTP", - "operationId": "healthGet", + "summary": "Get user locale", + "operationId": "localeGet", "tags": [ - "health" + "locale" ], - "description": "Check the Appwrite HTTP server is up and responsive.", + "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": "Health Status", + "description": "Locale", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/healthStatus" + "$ref": "#\/components\/schemas\/locale" } } } @@ -22771,49 +23633,52 @@ "deprecated": false, "x-appwrite": { "method": "get", - "group": "health", + "group": null, "cookies": false, "type": "", - "demo": "health\/get.md", + "demo": "locale\/get.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "health.read", + "scope": "locale.read", "platforms": [ "console", + "client", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/health\/get.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/locale\/get-locale.md", "auth": { "Project": [], - "Key": [] + "Session": [] } }, "security": [ { "Project": [], - "Key": [] + "Session": [], + "Key": [], + "JWT": [] } ] } }, - "\/health\/anti-virus": { + "\/locale\/codes": { "get": { - "summary": "Get antivirus", - "operationId": "healthGetAntivirus", + "summary": "List locale codes", + "operationId": "localeListCodes", "tags": [ - "health" + "locale" ], - "description": "Check the Appwrite Antivirus server is up and connection is successful.", + "description": "List of all locale codes in [ISO 639-1](https:\/\/en.wikipedia.org\/wiki\/List_of_ISO_639-1_codes).", "responses": { "200": { - "description": "Health Antivirus", + "description": "Locale codes list", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/healthAntivirus" + "$ref": "#\/components\/schemas\/localeCodeList" } } } @@ -22821,50 +23686,53 @@ }, "deprecated": false, "x-appwrite": { - "method": "getAntivirus", - "group": "health", + "method": "listCodes", + "group": null, "cookies": false, "type": "", - "demo": "health\/get-antivirus.md", + "demo": "locale\/list-codes.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "health.read", + "scope": "locale.read", "platforms": [ "console", + "client", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/health\/get-storage-anti-virus.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/locale\/list-locale-codes.md", "auth": { "Project": [], - "Key": [] + "Session": [] } }, "security": [ { "Project": [], - "Key": [] + "Session": [], + "Key": [], + "JWT": [] } ] } }, - "\/health\/audits-db": { + "\/locale\/continents": { "get": { - "summary": "Get audits DB", - "operationId": "healthGetAuditsDB", + "summary": "List continents", + "operationId": "localeListContinents", "tags": [ - "health" + "locale" ], - "description": "Check the database that backs the audit and activity store. When the connection is reachable the endpoint returns a passing status with its response time.\n", + "description": "List of all continents. You can use the locale header to get the data in a supported language.", "responses": { "200": { - "description": "Status List", + "description": "Continents List", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/healthStatusList" + "$ref": "#\/components\/schemas\/continentList" } } } @@ -22872,50 +23740,53 @@ }, "deprecated": false, "x-appwrite": { - "method": "getAuditsDB", + "method": "listContinents", "group": null, "cookies": false, "type": "", - "demo": "health\/get-audits-db.md", + "demo": "locale\/list-continents.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "health.read", + "scope": "locale.read", "platforms": [ "console", + "client", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/health\/get-audits-db.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/locale\/list-continents.md", "auth": { "Project": [], - "Key": [] + "Session": [] } }, "security": [ { "Project": [], - "Key": [] + "Session": [], + "Key": [], + "JWT": [] } ] } }, - "\/health\/cache": { + "\/locale\/countries": { "get": { - "summary": "Get cache", - "operationId": "healthGetCache", + "summary": "List countries", + "operationId": "localeListCountries", "tags": [ - "health" + "locale" ], - "description": "Check the Appwrite in-memory cache servers are up and connection is successful.", + "description": "List of all countries. You can use the locale header to get the data in a supported language.", "responses": { "200": { - "description": "Status List", + "description": "Countries List", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/healthStatusList" + "$ref": "#\/components\/schemas\/countryList" } } } @@ -22923,50 +23794,53 @@ }, "deprecated": false, "x-appwrite": { - "method": "getCache", - "group": "health", + "method": "listCountries", + "group": null, "cookies": false, "type": "", - "demo": "health\/get-cache.md", + "demo": "locale\/list-countries.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "health.read", + "scope": "locale.read", "platforms": [ "console", + "client", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/health\/get-cache.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/locale\/list-countries.md", "auth": { "Project": [], - "Key": [] + "Session": [] } }, "security": [ { "Project": [], - "Key": [] + "Session": [], + "Key": [], + "JWT": [] } ] } }, - "\/health\/certificate": { + "\/locale\/countries\/eu": { "get": { - "summary": "Get the SSL certificate for a domain", - "operationId": "healthGetCertificate", + "summary": "List EU countries", + "operationId": "localeListCountriesEU", "tags": [ - "health" + "locale" ], - "description": "Get the SSL certificate for a domain", + "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": "Health Certificate", + "description": "Countries List", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/healthCertificate" + "$ref": "#\/components\/schemas\/countryList" } } } @@ -22974,61 +23848,53 @@ }, "deprecated": false, "x-appwrite": { - "method": "getCertificate", - "group": "health", + "method": "listCountriesEU", + "group": null, "cookies": false, "type": "", - "demo": "health\/get-certificate.md", + "demo": "locale\/list-countries-eu.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "health.read", + "scope": "locale.read", "platforms": [ "console", + "client", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/health\/get-certificate.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/locale\/list-countries-eu.md", "auth": { "Project": [], - "Key": [] + "Session": [] } }, "security": [ { "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "domain", - "description": "string", - "required": false, - "schema": { - "type": "string" - }, - "in": "query" + "Session": [], + "Key": [], + "JWT": [] } ] } }, - "\/health\/console-pausing": { + "\/locale\/countries\/phones": { "get": { - "summary": "Get console pausing health", - "operationId": "healthGetConsolePausing", + "summary": "List countries phone codes", + "operationId": "localeListCountriesPhones", "tags": [ - "health" + "locale" ], - "description": "Get console pausing health status. Monitors projects approaching the pause threshold to detect potential issues with console access tracking.\n", + "description": "List of all countries phone codes. You can use the locale header to get the data in a supported language.", "responses": { "200": { - "description": "Health Status", + "description": "Phones List", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/healthStatus" + "$ref": "#\/components\/schemas\/phoneList" } } } @@ -23036,74 +23902,53 @@ }, "deprecated": false, "x-appwrite": { - "method": "getConsolePausing", + "method": "listCountriesPhones", "group": null, "cookies": false, "type": "", - "demo": "health\/get-console-pausing.md", + "demo": "locale\/list-countries-phones.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "health.read", + "scope": "locale.read", "platforms": [ "console", + "client", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/health\/get-console-pausing.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/locale\/list-countries-phones.md", "auth": { "Project": [], - "Key": [] + "Session": [] } }, "security": [ { "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "threshold", - "description": "Percentage threshold of projects approaching pause. When hit (equal or higher), endpoint returns server error. Default value is 10.", - "required": false, - "schema": { - "type": "integer", - "format": "int32", - "default": 10 - }, - "in": "query" - }, - { - "name": "inactivityDays", - "description": "Number of days of inactivity before a project is paused. Should match the plan's projectInactivityDays setting. Default value is 7.", - "required": false, - "schema": { - "type": "integer", - "format": "int32", - "default": 7 - }, - "in": "query" + "Session": [], + "Key": [], + "JWT": [] } ] } }, - "\/health\/db": { + "\/locale\/currencies": { "get": { - "summary": "Get DB", - "operationId": "healthGetDB", + "summary": "List currencies", + "operationId": "localeListCurrencies", "tags": [ - "health" + "locale" ], - "description": "Check the Appwrite database servers are up and connection is successful.", + "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": "Status List", + "description": "Currencies List", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/healthStatusList" + "$ref": "#\/components\/schemas\/currencyList" } } } @@ -23111,50 +23956,53 @@ }, "deprecated": false, "x-appwrite": { - "method": "getDB", - "group": "health", + "method": "listCurrencies", + "group": null, "cookies": false, "type": "", - "demo": "health\/get-db.md", + "demo": "locale\/list-currencies.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "health.read", + "scope": "locale.read", "platforms": [ "console", + "client", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/health\/get-db.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/locale\/list-currencies.md", "auth": { "Project": [], - "Key": [] + "Session": [] } }, "security": [ { "Project": [], - "Key": [] + "Session": [], + "Key": [], + "JWT": [] } ] } }, - "\/health\/geo": { + "\/locale\/languages": { "get": { - "summary": "Get geo", - "operationId": "healthGetGeo", + "summary": "List languages", + "operationId": "localeListLanguages", "tags": [ - "health" + "locale" ], - "description": "Check the Appwrite geo service is up and connection is successful.", + "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": "Health Status", + "description": "Languages List", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/healthStatus" + "$ref": "#\/components\/schemas\/languageList" } } } @@ -23162,50 +24010,53 @@ }, "deprecated": false, "x-appwrite": { - "method": "getGeo", - "group": "health", + "method": "listLanguages", + "group": null, "cookies": false, "type": "", - "demo": "health\/get-geo.md", + "demo": "locale\/list-languages.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "health.read", + "scope": "locale.read", "platforms": [ "console", + "client", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/health\/get-geo.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/locale\/list-languages.md", "auth": { "Project": [], - "Key": [] + "Session": [] } }, "security": [ { "Project": [], - "Key": [] + "Session": [], + "Key": [], + "JWT": [] } ] } }, - "\/health\/geo-premium": { + "\/messaging\/messages": { "get": { - "summary": "Get premium geo health", - "operationId": "healthGetGeoPremium", + "summary": "List messages", + "operationId": "messagingListMessages", "tags": [ - "health" + "messaging" ], - "description": "Get the health status of the premium geo service. This endpoint probes the internal `appwrite-geo-premium` service used for premium IP-to-location lookups (organizations or projects on the premium geo DB addon) and returns a `pass` status when reachable.\n", + "description": "Get a list of all messages from the current Appwrite project.", "responses": { "200": { - "description": "Health Status", + "description": "Message list", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/healthStatus" + "$ref": "#\/components\/schemas\/messageList" } } } @@ -23213,22 +24064,22 @@ }, "deprecated": false, "x-appwrite": { - "method": "getGeoPremium", - "group": null, + "method": "listMessages", + "group": "messages", "cookies": false, "type": "", - "demo": "health\/get-geo-premium.md", + "demo": "messaging\/list-messages.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "health.read", + "scope": "messages.read", "platforms": [ "console", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/health\/get-geo-premium.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/messaging\/list-messages.md", "auth": { "Project": [], "Key": [] @@ -23239,24 +24090,61 @@ "Project": [], "Key": [] } + ], + "parameters": [ + { + "name": "queries", + "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/queries). Maximum of 100 queries are allowed, each 4096 characters long. You may filter on the following attributes: scheduledAt, deliveredAt, deliveredTotal, status, description, providerType", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string" + }, + "default": [] + }, + "in": "query" + }, + { + "name": "search", + "description": "Search term to filter your list results. Max length: 256 chars.", + "required": false, + "schema": { + "type": "string", + "x-example": "<SEARCH>", + "default": "" + }, + "in": "query" + }, + { + "name": "total", + "description": "When set to false, the total count returned will be 0 and will not be calculated.", + "required": false, + "schema": { + "type": "boolean", + "x-example": false, + "default": true + }, + "in": "query" + } ] } }, - "\/health\/pubsub": { - "get": { - "summary": "Get pubsub", - "operationId": "healthGetPubSub", + "\/messaging\/messages\/email": { + "post": { + "summary": "Create email", + "operationId": "messagingCreateEmail", "tags": [ - "health" + "messaging" ], - "description": "Check the Appwrite pub-sub servers are up and connection is successful.", + "description": "Create a new email message.", "responses": { - "200": { - "description": "Status List", + "201": { + "description": "Message", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/healthStatusList" + "$ref": "#\/components\/schemas\/message" } } } @@ -23264,22 +24152,22 @@ }, "deprecated": false, "x-appwrite": { - "method": "getPubSub", - "group": "health", + "method": "createEmail", + "group": "messages", "cookies": false, "type": "", - "demo": "health\/get-pub-sub.md", + "demo": "messaging\/create-email.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "health.read", + "scope": "messages.write", "platforms": [ "console", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/health\/get-pubsub.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/messaging\/create-email.md", "auth": { "Project": [], "Key": [] @@ -23290,24 +24178,131 @@ "Project": [], "Key": [] } - ] + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "messageId": { + "type": "string", + "description": "Message ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.", + "x-example": "<MESSAGE_ID>", + "x-appwrite": { + "idGenerator": "ID.unique" + } + }, + "subject": { + "type": "string", + "description": "Email Subject.", + "x-example": "<SUBJECT>" + }, + "content": { + "type": "string", + "description": "Email Content.", + "x-example": "<CONTENT>" + }, + "topics": { + "type": "array", + "description": "List of Topic IDs.", + "default": [], + "x-example": null, + "items": { + "type": "string" + } + }, + "users": { + "type": "array", + "description": "List of User IDs.", + "default": [], + "x-example": null, + "items": { + "type": "string" + } + }, + "targets": { + "type": "array", + "description": "List of Targets IDs.", + "default": [], + "x-example": null, + "items": { + "type": "string" + } + }, + "cc": { + "type": "array", + "description": "Array of target IDs to be added as CC.", + "default": [], + "x-example": null, + "items": { + "type": "string" + } + }, + "bcc": { + "type": "array", + "description": "Array of target IDs to be added as BCC.", + "default": [], + "x-example": null, + "items": { + "type": "string" + } + }, + "attachments": { + "type": "array", + "description": "Array of compound ID strings of bucket IDs and file IDs to be attached to the email. They should be formatted as <BUCKET_ID>:<FILE_ID>.", + "default": [], + "x-example": null, + "items": { + "type": "string" + } + }, + "draft": { + "type": "boolean", + "description": "Is message a draft", + "default": false, + "x-example": false + }, + "html": { + "type": "boolean", + "description": "Is content of type HTML", + "default": false, + "x-example": false + }, + "scheduledAt": { + "type": "string", + "description": "Scheduled delivery time for message in [ISO 8601](https:\/\/www.iso.org\/iso-8601-date-and-time-format.html) format. DateTime value must be in future.", + "x-example": "2020-10-15T06:38:00.000+00:00", + "format": "datetime", + "x-nullable": true + } + }, + "required": [ + "messageId", + "subject", + "content" + ] + } + } + } + } } }, - "\/health\/queue\/audits": { - "get": { - "summary": "Get audits queue", - "operationId": "healthGetQueueAudits", + "\/messaging\/messages\/email\/{messageId}": { + "patch": { + "summary": "Update email", + "operationId": "messagingUpdateEmail", "tags": [ - "health" + "messaging" ], - "description": "Get the number of audit logs that are waiting to be processed in the Appwrite internal queue server.\n", + "description": "Update an email message by its unique ID. This endpoint only works on messages that are in draft status. Messages that are already processing, sent, or failed cannot be updated.\n", "responses": { "200": { - "description": "Health Queue", + "description": "Message", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/healthQueue" + "$ref": "#\/components\/schemas\/message" } } } @@ -23315,22 +24310,22 @@ }, "deprecated": false, "x-appwrite": { - "method": "getQueueAudits", - "group": "queue", + "method": "updateEmail", + "group": "messages", "cookies": false, "type": "", - "demo": "health\/get-queue-audits.md", + "demo": "messaging\/update-email.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "health.read", + "scope": "messages.write", "platforms": [ "console", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/health\/get-queue-audits.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/messaging\/update-email.md", "auth": { "Project": [], "Key": [] @@ -23344,98 +24339,129 @@ ], "parameters": [ { - "name": "threshold", - "description": "Queue size threshold. When hit (equal or higher), endpoint returns server error. Default value is 5000.", - "required": false, + "name": "messageId", + "description": "Message ID.", + "required": true, "schema": { - "type": "integer", - "format": "int32", - "default": 5000 + "type": "string", + "x-example": "<MESSAGE_ID>" }, - "in": "query" + "in": "path" } - ] - } - }, - "\/health\/queue\/billing-project-aggregation": { - "get": { - "summary": "Get billing project aggregation queue", - "operationId": "healthGetQueueBillingProjectAggregation", - "tags": [ - "health" ], - "description": "Get billing project aggregation queue.", - "responses": { - "200": { - "description": "Health Queue", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/healthQueue" - } + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "topics": { + "type": "array", + "description": "List of Topic IDs.", + "x-example": null, + "items": { + "type": "string" + }, + "x-nullable": true + }, + "users": { + "type": "array", + "description": "List of User IDs.", + "x-example": null, + "items": { + "type": "string" + }, + "x-nullable": true + }, + "targets": { + "type": "array", + "description": "List of Targets IDs.", + "x-example": null, + "items": { + "type": "string" + }, + "x-nullable": true + }, + "subject": { + "type": "string", + "description": "Email Subject.", + "x-example": "<SUBJECT>", + "x-nullable": true + }, + "content": { + "type": "string", + "description": "Email Content.", + "x-example": "<CONTENT>", + "x-nullable": true + }, + "draft": { + "type": "boolean", + "description": "Is message a draft", + "x-example": false, + "x-nullable": true + }, + "html": { + "type": "boolean", + "description": "Is content of type HTML", + "x-example": false, + "x-nullable": true + }, + "cc": { + "type": "array", + "description": "Array of target IDs to be added as CC.", + "x-example": null, + "items": { + "type": "string" + }, + "x-nullable": true + }, + "bcc": { + "type": "array", + "description": "Array of target IDs to be added as BCC.", + "x-example": null, + "items": { + "type": "string" + }, + "x-nullable": true + }, + "scheduledAt": { + "type": "string", + "description": "Scheduled delivery time for message in [ISO 8601](https:\/\/www.iso.org\/iso-8601-date-and-time-format.html) format. DateTime value must be in future.", + "x-example": "2020-10-15T06:38:00.000+00:00", + "format": "datetime", + "x-nullable": true + }, + "attachments": { + "type": "array", + "description": "Array of compound ID strings of bucket IDs and file IDs to be attached to the email. They should be formatted as <BUCKET_ID>:<FILE_ID>.", + "x-example": null, + "items": { + "type": "string" + }, + "x-nullable": true + } + } } } } - }, - "deprecated": false, - "x-appwrite": { - "method": "getQueueBillingProjectAggregation", - "group": null, - "cookies": false, - "type": "", - "demo": "health\/get-queue-billing-project-aggregation.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "health.read", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/health\/get-queue-billing-project-aggregation.md", - "auth": { - "Project": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "threshold", - "description": "Queue size threshold. When hit (equal or higher), endpoint returns server error. Default value is 5000.", - "required": false, - "schema": { - "type": "integer", - "format": "int32", - "default": 10000 - }, - "in": "query" - } - ] + } } }, - "\/health\/queue\/billing-team-aggregation": { - "get": { - "summary": "Get billing team aggregation queue", - "operationId": "healthGetQueueBillingTeamAggregation", + "\/messaging\/messages\/push": { + "post": { + "summary": "Create push notification", + "operationId": "messagingCreatePush", "tags": [ - "health" + "messaging" ], - "description": "Get billing team aggregation queue.", + "description": "Create a new push notification.", "responses": { - "200": { - "description": "Health Queue", + "201": { + "description": "Message", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/healthQueue" + "$ref": "#\/components\/schemas\/message" } } } @@ -23443,22 +24469,22 @@ }, "deprecated": false, "x-appwrite": { - "method": "getQueueBillingTeamAggregation", - "group": null, + "method": "createPush", + "group": "messages", "cookies": false, "type": "", - "demo": "health\/get-queue-billing-team-aggregation.md", + "demo": "messaging\/create-push.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "health.read", + "scope": "messages.write", "platforms": [ "console", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/health\/get-queue-billing-team-aggregation.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/messaging\/create-push.md", "auth": { "Project": [], "Key": [] @@ -23470,36 +24496,174 @@ "Key": [] } ], - "parameters": [ - { - "name": "threshold", - "description": "Queue size threshold. When hit (equal or higher), endpoint returns server error. Default value is 5000.", - "required": false, - "schema": { - "type": "integer", - "format": "int32", - "default": 10000 - }, - "in": "query" + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "messageId": { + "type": "string", + "description": "Message ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.", + "x-example": "<MESSAGE_ID>", + "x-appwrite": { + "idGenerator": "ID.unique" + } + }, + "title": { + "type": "string", + "description": "Title for push notification.", + "default": "", + "x-example": "<TITLE>" + }, + "body": { + "type": "string", + "description": "Body for push notification.", + "default": "", + "x-example": "<BODY>" + }, + "topics": { + "type": "array", + "description": "List of Topic IDs.", + "default": [], + "x-example": null, + "items": { + "type": "string" + } + }, + "users": { + "type": "array", + "description": "List of User IDs.", + "default": [], + "x-example": null, + "items": { + "type": "string" + } + }, + "targets": { + "type": "array", + "description": "List of Targets IDs.", + "default": [], + "x-example": null, + "items": { + "type": "string" + } + }, + "data": { + "type": "object", + "description": "Additional key-value pair data for push notification.", + "default": {}, + "x-example": "{}", + "x-nullable": true + }, + "action": { + "type": "string", + "description": "Action for push notification.", + "default": "", + "x-example": "<ACTION>" + }, + "image": { + "type": "string", + "description": "Image for push notification. Must be a compound bucket ID to file ID of a jpeg, png, or bmp image in Appwrite Storage. It should be formatted as <BUCKET_ID>:<FILE_ID>.", + "default": "", + "x-example": "<ID1:ID2>" + }, + "icon": { + "type": "string", + "description": "Icon for push notification. Available only for Android and Web Platform.", + "default": "", + "x-example": "<ICON>" + }, + "sound": { + "type": "string", + "description": "Sound for push notification. Available only for Android and iOS Platform.", + "default": "", + "x-example": "<SOUND>" + }, + "color": { + "type": "string", + "description": "Color for push notification. Available only for Android Platform.", + "default": "", + "x-example": "<COLOR>" + }, + "tag": { + "type": "string", + "description": "Tag for push notification. Available only for Android Platform.", + "default": "", + "x-example": "<TAG>" + }, + "badge": { + "type": "integer", + "description": "Badge for push notification. Available only for iOS Platform.", + "default": -1, + "x-example": null, + "format": "int32" + }, + "draft": { + "type": "boolean", + "description": "Is message a draft", + "default": false, + "x-example": false + }, + "scheduledAt": { + "type": "string", + "description": "Scheduled delivery time for message in [ISO 8601](https:\/\/www.iso.org\/iso-8601-date-and-time-format.html) format. DateTime value must be in future.", + "x-example": "2020-10-15T06:38:00.000+00:00", + "format": "datetime", + "x-nullable": true + }, + "contentAvailable": { + "type": "boolean", + "description": "If set to true, the notification will be delivered in the background. Available only for iOS Platform.", + "default": false, + "x-example": false + }, + "critical": { + "type": "boolean", + "description": "If set to true, the notification will be marked as critical. This requires the app to have the critical notification entitlement. Available only for iOS Platform.", + "default": false, + "x-example": false + }, + "priority": { + "type": "string", + "description": "Set the notification priority. \"normal\" will consider device state and may not deliver notifications immediately. \"high\" will always attempt to immediately deliver the notification.", + "default": "high", + "x-example": "normal", + "enum": [ + "normal", + "high" + ], + "x-enum-name": "MessagePriority", + "x-enum-keys": [ + "normal", + "high" + ] + } + }, + "required": [ + "messageId" + ] + } + } } - ] + } } }, - "\/health\/queue\/builds": { - "get": { - "summary": "Get builds queue", - "operationId": "healthGetQueueBuilds", + "\/messaging\/messages\/push\/{messageId}": { + "patch": { + "summary": "Update push notification", + "operationId": "messagingUpdatePush", "tags": [ - "health" + "messaging" ], - "description": "Get the number of builds that are waiting to be processed in the Appwrite internal queue server.", + "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": "Health Queue", + "description": "Message", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/healthQueue" + "$ref": "#\/components\/schemas\/message" } } } @@ -23507,22 +24671,22 @@ }, "deprecated": false, "x-appwrite": { - "method": "getQueueBuilds", - "group": "queue", + "method": "updatePush", + "group": "messages", "cookies": false, "type": "", - "demo": "health\/get-queue-builds.md", + "demo": "messaging\/update-push.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "health.read", + "scope": "messages.write", "platforms": [ "console", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/health\/get-queue-builds.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/messaging\/update-push.md", "auth": { "Project": [], "Key": [] @@ -23536,121 +24700,268 @@ ], "parameters": [ { - "name": "threshold", - "description": "Queue size threshold. When hit (equal or higher), endpoint returns server error. Default value is 5000.", - "required": false, + "name": "messageId", + "description": "Message ID.", + "required": true, "schema": { - "type": "integer", - "format": "int32", - "default": 5000 + "type": "string", + "x-example": "<MESSAGE_ID>" }, - "in": "query" + "in": "path" } - ] + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "topics": { + "type": "array", + "description": "List of Topic IDs.", + "x-example": null, + "items": { + "type": "string" + }, + "x-nullable": true + }, + "users": { + "type": "array", + "description": "List of User IDs.", + "x-example": null, + "items": { + "type": "string" + }, + "x-nullable": true + }, + "targets": { + "type": "array", + "description": "List of Targets IDs.", + "x-example": null, + "items": { + "type": "string" + }, + "x-nullable": true + }, + "title": { + "type": "string", + "description": "Title for push notification.", + "x-example": "<TITLE>", + "x-nullable": true + }, + "body": { + "type": "string", + "description": "Body for push notification.", + "x-example": "<BODY>", + "x-nullable": true + }, + "data": { + "type": "object", + "description": "Additional Data for push notification.", + "default": {}, + "x-example": "{}", + "x-nullable": true + }, + "action": { + "type": "string", + "description": "Action for push notification.", + "x-example": "<ACTION>", + "x-nullable": true + }, + "image": { + "type": "string", + "description": "Image for push notification. Must be a compound bucket ID to file ID of a jpeg, png, or bmp image in Appwrite Storage. It should be formatted as <BUCKET_ID>:<FILE_ID>.", + "x-example": "<ID1:ID2>", + "x-nullable": true + }, + "icon": { + "type": "string", + "description": "Icon for push notification. Available only for Android and Web platforms.", + "x-example": "<ICON>", + "x-nullable": true + }, + "sound": { + "type": "string", + "description": "Sound for push notification. Available only for Android and iOS platforms.", + "x-example": "<SOUND>", + "x-nullable": true + }, + "color": { + "type": "string", + "description": "Color for push notification. Available only for Android platforms.", + "x-example": "<COLOR>", + "x-nullable": true + }, + "tag": { + "type": "string", + "description": "Tag for push notification. Available only for Android platforms.", + "x-example": "<TAG>", + "x-nullable": true + }, + "badge": { + "type": "integer", + "description": "Badge for push notification. Available only for iOS platforms.", + "x-example": null, + "format": "int32", + "x-nullable": true + }, + "draft": { + "type": "boolean", + "description": "Is message a draft", + "x-example": false, + "x-nullable": true + }, + "scheduledAt": { + "type": "string", + "description": "Scheduled delivery time for message in [ISO 8601](https:\/\/www.iso.org\/iso-8601-date-and-time-format.html) format. DateTime value must be in future.", + "x-example": "2020-10-15T06:38:00.000+00:00", + "format": "datetime", + "x-nullable": true + }, + "contentAvailable": { + "type": "boolean", + "description": "If set to true, the notification will be delivered in the background. Available only for iOS Platform.", + "x-example": false, + "x-nullable": true + }, + "critical": { + "type": "boolean", + "description": "If set to true, the notification will be marked as critical. This requires the app to have the critical notification entitlement. Available only for iOS Platform.", + "x-example": false, + "x-nullable": true + }, + "priority": { + "type": "string", + "description": "Set the notification priority. \"normal\" will consider device battery state and may send notifications later. \"high\" will always attempt to immediately deliver the notification.", + "x-example": "normal", + "enum": [ + "normal", + "high" + ], + "x-enum-name": "MessagePriority", + "x-enum-keys": [ + "normal", + "high" + ], + "x-nullable": true + } + } + } + } + } + } } }, - "\/health\/queue\/certificates": { - "get": { - "summary": "Get certificates queue", - "operationId": "healthGetQueueCertificates", + "\/messaging\/messages\/sms": { + "post": { + "summary": "Create SMS", + "operationId": "messagingCreateSms", "tags": [ - "health" + "messaging" ], - "description": "Get the number of certificates that are waiting to be issued against [Letsencrypt](https:\/\/letsencrypt.org\/) in the Appwrite internal queue server.", + "description": "Create a new SMS message.", "responses": { - "200": { - "description": "Health Queue", + "201": { + "description": "Message", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/healthQueue" + "$ref": "#\/components\/schemas\/message" } } } } }, - "deprecated": false, + "deprecated": true, "x-appwrite": { - "method": "getQueueCertificates", - "group": "queue", + "method": "createSms", + "group": "messages", "cookies": false, "type": "", - "demo": "health\/get-queue-certificates.md", + "demo": "messaging\/create-sms.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "health.read", + "scope": "messages.write", "platforms": [ "console", "server" ], "packaging": false, - "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/health\/get-queue-certificates.md", - "auth": { - "Project": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "threshold", - "description": "Queue size threshold. When hit (equal or higher), endpoint returns server error. Default value is 5000.", - "required": false, - "schema": { - "type": "integer", - "format": "int32", - "default": 5000 - }, - "in": "query" - } - ] - } - }, - "\/health\/queue\/databases": { - "get": { - "summary": "Get databases queue", - "operationId": "healthGetQueueDatabases", - "tags": [ - "health" - ], - "description": "Get the number of database changes that are waiting to be processed in the Appwrite internal queue server.", - "responses": { - "200": { - "description": "Health Queue", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/healthQueue" + "public": false, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/messaging\/create-sms.md", + "deprecated": { + "since": "1.8.0", + "replaceWith": "messaging.createSMS" + }, + "methods": [ + { + "name": "createSms", + "namespace": "messaging", + "desc": "", + "auth": { + "Project": [], + "Key": [] + }, + "parameters": [ + "messageId", + "content", + "topics", + "users", + "targets", + "draft", + "scheduledAt" + ], + "required": [ + "messageId", + "content" + ], + "responses": [ + { + "code": 201, + "model": "#\/components\/schemas\/message" } + ], + "description": "Create a new SMS message.", + "demo": "messaging\/create-sms.md", + "public": false, + "deprecated": { + "since": "1.8.0", + "replaceWith": "messaging.createSMS" } + }, + { + "name": "createSMS", + "namespace": "messaging", + "desc": "", + "auth": { + "Project": [], + "Key": [] + }, + "parameters": [ + "messageId", + "content", + "topics", + "users", + "targets", + "draft", + "scheduledAt" + ], + "required": [ + "messageId", + "content" + ], + "responses": [ + { + "code": 201, + "model": "#\/components\/schemas\/message" + } + ], + "description": "Create a new SMS message.", + "demo": "messaging\/create-sms.md", + "public": true } - } - }, - "deprecated": false, - "x-appwrite": { - "method": "getQueueDatabases", - "group": "queue", - "cookies": false, - "type": "", - "demo": "health\/get-queue-databases.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "health.read", - "platforms": [ - "console", - "server" ], - "packaging": false, - "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/health\/get-queue-databases.md", "auth": { "Project": [], "Key": [] @@ -23662,70 +24973,184 @@ "Key": [] } ], - "parameters": [ - { - "name": "name", - "description": "Queue name for which to check the queue size", - "required": false, - "schema": { - "type": "string", - "x-example": "<NAME>", - "default": "database_db_main" - }, - "in": "query" - }, - { - "name": "threshold", - "description": "Queue size threshold. When hit (equal or higher), endpoint returns server error. Default value is 5000.", - "required": false, - "schema": { - "type": "integer", - "format": "int32", - "default": 5000 - }, - "in": "query" + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "messageId": { + "type": "string", + "description": "Message ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.", + "x-example": "<MESSAGE_ID>", + "x-appwrite": { + "idGenerator": "ID.unique" + } + }, + "content": { + "type": "string", + "description": "SMS Content.", + "x-example": "<CONTENT>" + }, + "topics": { + "type": "array", + "description": "List of Topic IDs.", + "default": [], + "x-example": null, + "items": { + "type": "string" + } + }, + "users": { + "type": "array", + "description": "List of User IDs.", + "default": [], + "x-example": null, + "items": { + "type": "string" + } + }, + "targets": { + "type": "array", + "description": "List of Targets IDs.", + "default": [], + "x-example": null, + "items": { + "type": "string" + } + }, + "draft": { + "type": "boolean", + "description": "Is message a draft", + "default": false, + "x-example": false + }, + "scheduledAt": { + "type": "string", + "description": "Scheduled delivery time for message in [ISO 8601](https:\/\/www.iso.org\/iso-8601-date-and-time-format.html) format. DateTime value must be in future.", + "x-example": "2020-10-15T06:38:00.000+00:00", + "format": "datetime", + "x-nullable": true + } + }, + "required": [ + "messageId", + "content" + ] + } + } } - ] + } } }, - "\/health\/queue\/deletes": { - "get": { - "summary": "Get deletes queue", - "operationId": "healthGetQueueDeletes", + "\/messaging\/messages\/sms\/{messageId}": { + "patch": { + "summary": "Update SMS", + "operationId": "messagingUpdateSms", "tags": [ - "health" + "messaging" ], - "description": "Get the number of background destructive changes that are waiting to be processed in the Appwrite internal queue server.", + "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": "Health Queue", + "description": "Message", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/healthQueue" + "$ref": "#\/components\/schemas\/message" } } } } }, - "deprecated": false, + "deprecated": true, "x-appwrite": { - "method": "getQueueDeletes", - "group": "queue", + "method": "updateSms", + "group": "messages", "cookies": false, "type": "", - "demo": "health\/get-queue-deletes.md", + "demo": "messaging\/update-sms.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "health.read", + "scope": "messages.write", "platforms": [ "console", "server" ], "packaging": false, - "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/health\/get-queue-deletes.md", + "public": false, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/messaging\/update-sms.md", + "deprecated": { + "since": "1.8.0", + "replaceWith": "messaging.updateSMS" + }, + "methods": [ + { + "name": "updateSms", + "namespace": "messaging", + "desc": "", + "auth": { + "Project": [], + "Key": [] + }, + "parameters": [ + "messageId", + "topics", + "users", + "targets", + "content", + "draft", + "scheduledAt" + ], + "required": [ + "messageId" + ], + "responses": [ + { + "code": 200, + "model": "#\/components\/schemas\/message" + } + ], + "description": "Update an SMS message by its unique ID. This endpoint only works on messages that are in draft status. Messages that are already processing, sent, or failed cannot be updated.\n", + "demo": "messaging\/update-sms.md", + "public": false, + "deprecated": { + "since": "1.8.0", + "replaceWith": "messaging.updateSMS" + } + }, + { + "name": "updateSMS", + "namespace": "messaging", + "desc": "", + "auth": { + "Project": [], + "Key": [] + }, + "parameters": [ + "messageId", + "topics", + "users", + "targets", + "content", + "draft", + "scheduledAt" + ], + "required": [ + "messageId" + ], + "responses": [ + { + "code": 200, + "model": "#\/components\/schemas\/message" + } + ], + "description": "Update an SMS message by its unique ID. This endpoint only works on messages that are in draft status. Messages that are already processing, sent, or failed cannot be updated.\n", + "demo": "messaging\/update-sms.md", + "public": true + } + ], "auth": { "Project": [], "Key": [] @@ -23739,34 +25164,90 @@ ], "parameters": [ { - "name": "threshold", - "description": "Queue size threshold. When hit (equal or higher), endpoint returns server error. Default value is 5000.", - "required": false, + "name": "messageId", + "description": "Message ID.", + "required": true, "schema": { - "type": "integer", - "format": "int32", - "default": 5000 + "type": "string", + "x-example": "<MESSAGE_ID>" }, - "in": "query" + "in": "path" } - ] + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "topics": { + "type": "array", + "description": "List of Topic IDs.", + "x-example": null, + "items": { + "type": "string" + }, + "x-nullable": true + }, + "users": { + "type": "array", + "description": "List of User IDs.", + "x-example": null, + "items": { + "type": "string" + }, + "x-nullable": true + }, + "targets": { + "type": "array", + "description": "List of Targets IDs.", + "x-example": null, + "items": { + "type": "string" + }, + "x-nullable": true + }, + "content": { + "type": "string", + "description": "Email Content.", + "x-example": "<CONTENT>", + "x-nullable": true + }, + "draft": { + "type": "boolean", + "description": "Is message a draft", + "x-example": false, + "x-nullable": true + }, + "scheduledAt": { + "type": "string", + "description": "Scheduled delivery time for message in [ISO 8601](https:\/\/www.iso.org\/iso-8601-date-and-time-format.html) format. DateTime value must be in future.", + "x-example": "2020-10-15T06:38:00.000+00:00", + "format": "datetime", + "x-nullable": true + } + } + } + } + } + } } }, - "\/health\/queue\/failed\/{name}": { + "\/messaging\/messages\/{messageId}": { "get": { - "summary": "Get number of failed queue jobs", - "operationId": "healthGetFailedJobs", + "summary": "Get message", + "operationId": "messagingGetMessage", "tags": [ - "health" + "messaging" ], - "description": "Returns the amount of failed jobs in a given queue.\n", + "description": "Get a message by its unique ID.\n", "responses": { "200": { - "description": "Health Queue", + "description": "Message", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/healthQueue" + "$ref": "#\/components\/schemas\/message" } } } @@ -23774,22 +25255,22 @@ }, "deprecated": false, "x-appwrite": { - "method": "getFailedJobs", - "group": "queue", + "method": "getMessage", + "group": "messages", "cookies": false, "type": "", - "demo": "health\/get-failed-jobs.md", + "demo": "messaging\/get-message.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "health.read", + "scope": "messages.read", "platforms": [ "console", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/health\/get-failed-queue-jobs.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/messaging\/get-message.md", "auth": { "Project": [], "Key": [] @@ -23803,100 +25284,47 @@ ], "parameters": [ { - "name": "name", - "description": "The name of the queue", + "name": "messageId", + "description": "Message ID.", "required": true, "schema": { "type": "string", - "x-example": "v1-database", - "enum": [ - "v1-database", - "v1-deletes", - "v1-audits", - "v1-mails", - "v1-functions", - "v1-stats-resources", - "v1-stats-usage", - "v1-webhooks", - "v1-certificates", - "v1-builds", - "v1-screenshots", - "v1-messaging", - "v1-migrations", - "v1-notifications" - ], - "x-enum-name": "HealthQueueName", - "x-enum-keys": [ - "v1-database", - "v1-deletes", - "v1-audits", - "v1-mails", - "v1-functions", - "v1-stats-resources", - "v1-stats-usage", - "v1-webhooks", - "v1-certificates", - "v1-builds", - "v1-screenshots", - "v1-messaging", - "v1-migrations", - "v1-notifications" - ] + "x-example": "<MESSAGE_ID>" }, "in": "path" - }, - { - "name": "threshold", - "description": "Queue size threshold. When hit (equal or higher), endpoint returns server error. Default value is 5000.", - "required": false, - "schema": { - "type": "integer", - "format": "int32", - "default": 5000 - }, - "in": "query" } ] - } - }, - "\/health\/queue\/functions": { - "get": { - "summary": "Get functions queue", - "operationId": "healthGetQueueFunctions", + }, + "delete": { + "summary": "Delete message", + "operationId": "messagingDelete", "tags": [ - "health" + "messaging" ], - "description": "Get the number of function executions that are waiting to be processed in the Appwrite internal queue server.", + "description": "Delete a message. If the message is not a draft or scheduled, but has been sent, this will not recall the message.", "responses": { - "200": { - "description": "Health Queue", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/healthQueue" - } - } - } + "204": { + "description": "No content" } }, "deprecated": false, "x-appwrite": { - "method": "getQueueFunctions", - "group": "queue", + "method": "delete", + "group": "messages", "cookies": false, "type": "", - "demo": "health\/get-queue-functions.md", + "demo": "messaging\/delete.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "health.read", + "scope": "messages.write", "platforms": [ "console", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/health\/get-queue-functions.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/messaging\/delete-message.md", "auth": { "Project": [], "Key": [] @@ -23910,34 +25338,33 @@ ], "parameters": [ { - "name": "threshold", - "description": "Queue size threshold. When hit (equal or higher), endpoint returns server error. Default value is 5000.", - "required": false, + "name": "messageId", + "description": "Message ID.", + "required": true, "schema": { - "type": "integer", - "format": "int32", - "default": 5000 + "type": "string", + "x-example": "<MESSAGE_ID>" }, - "in": "query" + "in": "path" } ] } }, - "\/health\/queue\/mails": { + "\/messaging\/messages\/{messageId}\/targets": { "get": { - "summary": "Get mails queue", - "operationId": "healthGetQueueMails", + "summary": "List message targets", + "operationId": "messagingListTargets", "tags": [ - "health" + "messaging" ], - "description": "Get the number of mails that are waiting to be processed in the Appwrite internal queue server.", + "description": "Get a list of the targets associated with a message.", "responses": { "200": { - "description": "Health Queue", + "description": "Target list", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/healthQueue" + "$ref": "#\/components\/schemas\/targetList" } } } @@ -23945,22 +25372,22 @@ }, "deprecated": false, "x-appwrite": { - "method": "getQueueMails", - "group": "queue", + "method": "listTargets", + "group": "messages", "cookies": false, "type": "", - "demo": "health\/get-queue-mails.md", + "demo": "messaging\/list-targets.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "health.read", + "scope": "messages.read", "platforms": [ "console", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/health\/get-queue-mails.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/messaging\/list-message-targets.md", "auth": { "Project": [], "Key": [] @@ -23974,34 +25401,57 @@ ], "parameters": [ { - "name": "threshold", - "description": "Queue size threshold. When hit (equal or higher), endpoint returns server error. Default value is 5000.", + "name": "messageId", + "description": "Message ID.", + "required": true, + "schema": { + "type": "string", + "x-example": "<MESSAGE_ID>" + }, + "in": "path" + }, + { + "name": "queries", + "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/queries). Maximum of 100 queries are allowed, each 4096 characters long. You may filter on the following attributes: userId, providerId, identifier, providerType", "required": false, "schema": { - "type": "integer", - "format": "int32", - "default": 5000 + "type": "array", + "items": { + "type": "string" + }, + "default": [] + }, + "in": "query" + }, + { + "name": "total", + "description": "When set to false, the total count returned will be 0 and will not be calculated.", + "required": false, + "schema": { + "type": "boolean", + "x-example": false, + "default": true }, "in": "query" } ] } }, - "\/health\/queue\/messaging": { + "\/messaging\/providers": { "get": { - "summary": "Get messaging queue", - "operationId": "healthGetQueueMessaging", + "summary": "List providers", + "operationId": "messagingListProviders", "tags": [ - "health" + "messaging" ], - "description": "Get the number of messages that are waiting to be processed in the Appwrite internal queue server.", + "description": "Get a list of all providers from the current Appwrite project.", "responses": { "200": { - "description": "Health Queue", + "description": "Provider list", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/healthQueue" + "$ref": "#\/components\/schemas\/providerList" } } } @@ -24009,22 +25459,22 @@ }, "deprecated": false, "x-appwrite": { - "method": "getQueueMessaging", - "group": "queue", + "method": "listProviders", + "group": "providers", "cookies": false, "type": "", - "demo": "health\/get-queue-messaging.md", + "demo": "messaging\/list-providers.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "health.read", + "scope": "providers.read", "platforms": [ "console", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/health\/get-queue-messaging.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/messaging\/list-providers.md", "auth": { "Project": [], "Key": [] @@ -24038,121 +25488,155 @@ ], "parameters": [ { - "name": "threshold", - "description": "Queue size threshold. When hit (equal or higher), endpoint returns server error. Default value is 5000.", + "name": "queries", + "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/queries). Maximum of 100 queries are allowed, each 4096 characters long. You may filter on the following attributes: name, provider, type, enabled", "required": false, "schema": { - "type": "integer", - "format": "int32", - "default": 5000 + "type": "array", + "items": { + "type": "string" + }, + "default": [] + }, + "in": "query" + }, + { + "name": "search", + "description": "Search term to filter your list results. Max length: 256 chars.", + "required": false, + "schema": { + "type": "string", + "x-example": "<SEARCH>", + "default": "" + }, + "in": "query" + }, + { + "name": "total", + "description": "When set to false, the total count returned will be 0 and will not be calculated.", + "required": false, + "schema": { + "type": "boolean", + "x-example": false, + "default": true }, "in": "query" } ] } }, - "\/health\/queue\/migrations": { - "get": { - "summary": "Get migrations queue", - "operationId": "healthGetQueueMigrations", + "\/messaging\/providers\/apns": { + "post": { + "summary": "Create APNS provider", + "operationId": "messagingCreateApnsProvider", "tags": [ - "health" + "messaging" ], - "description": "Get the number of migrations that are waiting to be processed in the Appwrite internal queue server.", + "description": "Create a new Apple Push Notification service provider.", "responses": { - "200": { - "description": "Health Queue", + "201": { + "description": "Provider", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/healthQueue" + "$ref": "#\/components\/schemas\/provider" } } } } }, - "deprecated": false, + "deprecated": true, "x-appwrite": { - "method": "getQueueMigrations", - "group": "queue", + "method": "createApnsProvider", + "group": "providers", "cookies": false, "type": "", - "demo": "health\/get-queue-migrations.md", + "demo": "messaging\/create-apns-provider.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "health.read", + "scope": "providers.write", "platforms": [ "console", "server" ], "packaging": false, - "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/health\/get-queue-migrations.md", - "auth": { - "Project": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "threshold", - "description": "Queue size threshold. When hit (equal or higher), endpoint returns server error. Default value is 5000.", - "required": false, - "schema": { - "type": "integer", - "format": "int32", - "default": 5000 - }, - "in": "query" - } - ] - } - }, - "\/health\/queue\/notifications": { - "get": { - "summary": "Get notifications queue", - "operationId": "healthGetQueueNotifications", - "tags": [ - "health" - ], - "description": "Get the number of jobs in the notifications queue.\n", - "responses": { - "200": { - "description": "Health Queue", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/healthQueue" + "public": false, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/messaging\/create-apns-provider.md", + "deprecated": { + "since": "1.8.0", + "replaceWith": "messaging.createAPNSProvider" + }, + "methods": [ + { + "name": "createApnsProvider", + "namespace": "messaging", + "desc": "", + "auth": { + "Project": [], + "Key": [] + }, + "parameters": [ + "providerId", + "name", + "authKey", + "authKeyId", + "teamId", + "bundleId", + "sandbox", + "enabled" + ], + "required": [ + "providerId", + "name" + ], + "responses": [ + { + "code": 201, + "model": "#\/components\/schemas\/provider" } + ], + "description": "Create a new Apple Push Notification service provider.", + "demo": "messaging\/create-apns-provider.md", + "public": false, + "deprecated": { + "since": "1.8.0", + "replaceWith": "messaging.createAPNSProvider" } + }, + { + "name": "createAPNSProvider", + "namespace": "messaging", + "desc": "", + "auth": { + "Project": [], + "Key": [] + }, + "parameters": [ + "providerId", + "name", + "authKey", + "authKeyId", + "teamId", + "bundleId", + "sandbox", + "enabled" + ], + "required": [ + "providerId", + "name" + ], + "responses": [ + { + "code": 201, + "model": "#\/components\/schemas\/provider" + } + ], + "description": "Create a new Apple Push Notification service provider.", + "demo": "messaging\/create-apns-provider.md", + "public": true } - } - }, - "deprecated": false, - "x-appwrite": { - "method": "getQueueNotifications", - "group": "queue", - "cookies": false, - "type": "", - "demo": "health\/get-queue-notifications.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "health.read", - "platforms": [ - "console", - "server" ], - "packaging": false, - "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/health\/get-queue-notifications.md", "auth": { "Project": [], "Key": [] @@ -24164,59 +25648,182 @@ "Key": [] } ], - "parameters": [ - { - "name": "threshold", - "description": "Queue size threshold. When hit (equal or higher), endpoint returns server error. Default value is 5000.", - "required": false, - "schema": { - "type": "integer", - "format": "int32", - "default": 5000 - }, - "in": "query" + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "providerId": { + "type": "string", + "description": "Provider ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.", + "x-example": "<PROVIDER_ID>", + "x-appwrite": { + "idGenerator": "ID.unique" + } + }, + "name": { + "type": "string", + "description": "Provider name.", + "x-example": "<NAME>" + }, + "authKey": { + "type": "string", + "description": "APNS authentication key.", + "default": "", + "x-example": "<AUTH_KEY>" + }, + "authKeyId": { + "type": "string", + "description": "APNS authentication key ID.", + "default": "", + "x-example": "<AUTH_KEY_ID>" + }, + "teamId": { + "type": "string", + "description": "APNS team ID.", + "default": "", + "x-example": "<TEAM_ID>" + }, + "bundleId": { + "type": "string", + "description": "APNS bundle ID.", + "default": "", + "x-example": "<BUNDLE_ID>" + }, + "sandbox": { + "type": "boolean", + "description": "Use APNS sandbox environment.", + "default": false, + "x-example": false + }, + "enabled": { + "type": "boolean", + "description": "Set as enabled.", + "x-example": false, + "x-nullable": true + } + }, + "required": [ + "providerId", + "name" + ] + } + } } - ] + } } }, - "\/health\/queue\/region-manager": { - "get": { - "summary": "Get region manager queue", - "operationId": "healthGetQueueRegionManager", + "\/messaging\/providers\/apns\/{providerId}": { + "patch": { + "summary": "Update APNS provider", + "operationId": "messagingUpdateApnsProvider", "tags": [ - "health" + "messaging" ], - "description": "Get region manager queue.", + "description": "Update a Apple Push Notification service provider by its unique ID.", "responses": { "200": { - "description": "Health Queue", + "description": "Provider", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/healthQueue" + "$ref": "#\/components\/schemas\/provider" } } } } }, - "deprecated": false, + "deprecated": true, "x-appwrite": { - "method": "getQueueRegionManager", - "group": null, + "method": "updateApnsProvider", + "group": "providers", "cookies": false, "type": "", - "demo": "health\/get-queue-region-manager.md", + "demo": "messaging\/update-apns-provider.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "health.read", + "scope": "providers.write", "platforms": [ "console", "server" ], "packaging": false, - "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/health\/get-queue-region-manager.md", + "public": false, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/messaging\/update-apns-provider.md", + "deprecated": { + "since": "1.8.0", + "replaceWith": "messaging.updateAPNSProvider" + }, + "methods": [ + { + "name": "updateApnsProvider", + "namespace": "messaging", + "desc": "", + "auth": { + "Project": [], + "Key": [] + }, + "parameters": [ + "providerId", + "name", + "enabled", + "authKey", + "authKeyId", + "teamId", + "bundleId", + "sandbox" + ], + "required": [ + "providerId" + ], + "responses": [ + { + "code": 200, + "model": "#\/components\/schemas\/provider" + } + ], + "description": "Update a Apple Push Notification service provider by its unique ID.", + "demo": "messaging\/update-apns-provider.md", + "public": false, + "deprecated": { + "since": "1.8.0", + "replaceWith": "messaging.updateAPNSProvider" + } + }, + { + "name": "updateAPNSProvider", + "namespace": "messaging", + "desc": "", + "auth": { + "Project": [], + "Key": [] + }, + "parameters": [ + "providerId", + "name", + "enabled", + "authKey", + "authKeyId", + "teamId", + "bundleId", + "sandbox" + ], + "required": [ + "providerId" + ], + "responses": [ + { + "code": 200, + "model": "#\/components\/schemas\/provider" + } + ], + "description": "Update a Apple Push Notification service provider by its unique ID.", + "demo": "messaging\/update-apns-provider.md", + "public": true + } + ], "auth": { "Project": [], "Key": [] @@ -24230,57 +25837,175 @@ ], "parameters": [ { - "name": "threshold", - "description": "Queue size threshold. When hit (equal or higher), endpoint returns server error. Default value is 100.", - "required": false, + "name": "providerId", + "description": "Provider ID.", + "required": true, "schema": { - "type": "integer", - "format": "int32", - "default": 100 + "type": "string", + "x-example": "<PROVIDER_ID>" }, - "in": "query" + "in": "path" } - ] + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "Provider name.", + "default": "", + "x-example": "<NAME>" + }, + "enabled": { + "type": "boolean", + "description": "Set as enabled.", + "x-example": false, + "x-nullable": true + }, + "authKey": { + "type": "string", + "description": "APNS authentication key.", + "default": "", + "x-example": "<AUTH_KEY>" + }, + "authKeyId": { + "type": "string", + "description": "APNS authentication key ID.", + "default": "", + "x-example": "<AUTH_KEY_ID>" + }, + "teamId": { + "type": "string", + "description": "APNS team ID.", + "default": "", + "x-example": "<TEAM_ID>" + }, + "bundleId": { + "type": "string", + "description": "APNS bundle ID.", + "default": "", + "x-example": "<BUNDLE_ID>" + }, + "sandbox": { + "type": "boolean", + "description": "Use APNS sandbox environment.", + "x-example": false, + "x-nullable": true + } + } + } + } + } + } } }, - "\/health\/queue\/stats-resources": { - "get": { - "summary": "Get stats resources queue", - "operationId": "healthGetQueueStatsResources", + "\/messaging\/providers\/fcm": { + "post": { + "summary": "Create FCM provider", + "operationId": "messagingCreateFcmProvider", "tags": [ - "health" + "messaging" ], - "description": "Get the number of metrics that are waiting to be processed in the Appwrite stats resources queue.", + "description": "Create a new Firebase Cloud Messaging provider.", "responses": { - "200": { - "description": "Health Queue", + "201": { + "description": "Provider", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/healthQueue" + "$ref": "#\/components\/schemas\/provider" } } } } }, - "deprecated": false, + "deprecated": true, "x-appwrite": { - "method": "getQueueStatsResources", - "group": "queue", + "method": "createFcmProvider", + "group": "providers", "cookies": false, "type": "", - "demo": "health\/get-queue-stats-resources.md", + "demo": "messaging\/create-fcm-provider.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "health.read", + "scope": "providers.write", "platforms": [ "console", "server" ], "packaging": false, - "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/health\/get-queue-stats-resources.md", + "public": false, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/messaging\/create-fcm-provider.md", + "deprecated": { + "since": "1.8.0", + "replaceWith": "messaging.createFCMProvider" + }, + "methods": [ + { + "name": "createFcmProvider", + "namespace": "messaging", + "desc": "", + "auth": { + "Project": [], + "Key": [] + }, + "parameters": [ + "providerId", + "name", + "serviceAccountJSON", + "enabled" + ], + "required": [ + "providerId", + "name" + ], + "responses": [ + { + "code": 201, + "model": "#\/components\/schemas\/provider" + } + ], + "description": "Create a new Firebase Cloud Messaging provider.", + "demo": "messaging\/create-fcm-provider.md", + "public": false, + "deprecated": { + "since": "1.8.0", + "replaceWith": "messaging.createFCMProvider" + } + }, + { + "name": "createFCMProvider", + "namespace": "messaging", + "desc": "", + "auth": { + "Project": [], + "Key": [] + }, + "parameters": [ + "providerId", + "name", + "serviceAccountJSON", + "enabled" + ], + "required": [ + "providerId", + "name" + ], + "responses": [ + { + "code": 201, + "model": "#\/components\/schemas\/provider" + } + ], + "description": "Create a new Firebase Cloud Messaging provider.", + "demo": "messaging\/create-fcm-provider.md", + "public": true + } + ], "auth": { "Project": [], "Key": [] @@ -24292,123 +26017,151 @@ "Key": [] } ], - "parameters": [ - { - "name": "threshold", - "description": "Queue size threshold. When hit (equal or higher), endpoint returns server error. Default value is 5000.", - "required": false, - "schema": { - "type": "integer", - "format": "int32", - "default": 5000 - }, - "in": "query" + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "providerId": { + "type": "string", + "description": "Provider ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.", + "x-example": "<PROVIDER_ID>", + "x-appwrite": { + "idGenerator": "ID.unique" + } + }, + "name": { + "type": "string", + "description": "Provider name.", + "x-example": "<NAME>" + }, + "serviceAccountJSON": { + "type": "object", + "description": "FCM service account JSON.", + "default": {}, + "x-example": "{}", + "x-nullable": true + }, + "enabled": { + "type": "boolean", + "description": "Set as enabled.", + "x-example": false, + "x-nullable": true + } + }, + "required": [ + "providerId", + "name" + ] + } + } } - ] + } } }, - "\/health\/queue\/stats-usage": { - "get": { - "summary": "Get stats usage queue", - "operationId": "healthGetQueueUsage", + "\/messaging\/providers\/fcm\/{providerId}": { + "patch": { + "summary": "Update FCM provider", + "operationId": "messagingUpdateFcmProvider", "tags": [ - "health" + "messaging" ], - "description": "Get the number of metrics that are waiting to be processed in the Appwrite internal queue server.", + "description": "Update a Firebase Cloud Messaging provider by its unique ID.", "responses": { "200": { - "description": "Health Queue", + "description": "Provider", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/healthQueue" + "$ref": "#\/components\/schemas\/provider" } } } } }, - "deprecated": false, + "deprecated": true, "x-appwrite": { - "method": "getQueueUsage", - "group": "queue", + "method": "updateFcmProvider", + "group": "providers", "cookies": false, "type": "", - "demo": "health\/get-queue-usage.md", + "demo": "messaging\/update-fcm-provider.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "health.read", + "scope": "providers.write", "platforms": [ "console", "server" ], "packaging": false, - "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/health\/get-queue-stats-usage.md", - "auth": { - "Project": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "threshold", - "description": "Queue size threshold. When hit (equal or higher), endpoint returns server error. Default value is 5000.", - "required": false, - "schema": { - "type": "integer", - "format": "int32", - "default": 5000 - }, - "in": "query" - } - ] - } - }, - "\/health\/queue\/threats": { - "get": { - "summary": "Get threats queue", - "operationId": "healthGetQueueThreats", - "tags": [ - "health" - ], - "description": "Get threats queue.", - "responses": { - "200": { - "description": "Health Queue", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/healthQueue" + "public": false, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/messaging\/update-fcm-provider.md", + "deprecated": { + "since": "1.8.0", + "replaceWith": "messaging.updateFCMProvider" + }, + "methods": [ + { + "name": "updateFcmProvider", + "namespace": "messaging", + "desc": "", + "auth": { + "Project": [], + "Key": [] + }, + "parameters": [ + "providerId", + "name", + "enabled", + "serviceAccountJSON" + ], + "required": [ + "providerId" + ], + "responses": [ + { + "code": 200, + "model": "#\/components\/schemas\/provider" } + ], + "description": "Update a Firebase Cloud Messaging provider by its unique ID.", + "demo": "messaging\/update-fcm-provider.md", + "public": false, + "deprecated": { + "since": "1.8.0", + "replaceWith": "messaging.updateFCMProvider" } + }, + { + "name": "updateFCMProvider", + "namespace": "messaging", + "desc": "", + "auth": { + "Project": [], + "Key": [] + }, + "parameters": [ + "providerId", + "name", + "enabled", + "serviceAccountJSON" + ], + "required": [ + "providerId" + ], + "responses": [ + { + "code": 200, + "model": "#\/components\/schemas\/provider" + } + ], + "description": "Update a Firebase Cloud Messaging provider by its unique ID.", + "demo": "messaging\/update-fcm-provider.md", + "public": true } - } - }, - "deprecated": false, - "x-appwrite": { - "method": "getQueueThreats", - "group": null, - "cookies": false, - "type": "", - "demo": "health\/get-queue-threats.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "health.read", - "platforms": [ - "console", - "server" ], - "packaging": false, - "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/health\/get-queue-threats.md", "auth": { "Project": [], "Key": [] @@ -24422,34 +26175,63 @@ ], "parameters": [ { - "name": "threshold", - "description": "Queue size threshold. When hit (equal or higher), endpoint returns server error. Default value is 100.", - "required": false, + "name": "providerId", + "description": "Provider ID.", + "required": true, "schema": { - "type": "integer", - "format": "int32", - "default": 100 + "type": "string", + "x-example": "<PROVIDER_ID>" }, - "in": "query" + "in": "path" } - ] + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "Provider name.", + "default": "", + "x-example": "<NAME>" + }, + "enabled": { + "type": "boolean", + "description": "Set as enabled.", + "x-example": false, + "x-nullable": true + }, + "serviceAccountJSON": { + "type": "object", + "description": "FCM service account JSON.", + "default": {}, + "x-example": "{}", + "x-nullable": true + } + } + } + } + } + } } }, - "\/health\/queue\/webhooks": { - "get": { - "summary": "Get webhooks queue", - "operationId": "healthGetQueueWebhooks", + "\/messaging\/providers\/mailgun": { + "post": { + "summary": "Create Mailgun provider", + "operationId": "messagingCreateMailgunProvider", "tags": [ - "health" + "messaging" ], - "description": "Get the number of webhooks that are waiting to be processed in the Appwrite internal queue server.", + "description": "Create a new Mailgun provider.", "responses": { - "200": { - "description": "Health Queue", + "201": { + "description": "Provider", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/healthQueue" + "$ref": "#\/components\/schemas\/provider" } } } @@ -24457,22 +26239,22 @@ }, "deprecated": false, "x-appwrite": { - "method": "getQueueWebhooks", - "group": "queue", + "method": "createMailgunProvider", + "group": "providers", "cookies": false, "type": "", - "demo": "health\/get-queue-webhooks.md", + "demo": "messaging\/create-mailgun-provider.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "health.read", + "scope": "providers.write", "platforms": [ "console", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/health\/get-queue-webhooks.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/messaging\/create-mailgun-provider.md", "auth": { "Project": [], "Key": [] @@ -24484,36 +26266,101 @@ "Key": [] } ], - "parameters": [ - { - "name": "threshold", - "description": "Queue size threshold. When hit (equal or higher), endpoint returns server error. Default value is 5000.", - "required": false, - "schema": { - "type": "integer", - "format": "int32", - "default": 5000 - }, - "in": "query" + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "providerId": { + "type": "string", + "description": "Provider ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.", + "x-example": "<PROVIDER_ID>", + "x-appwrite": { + "idGenerator": "ID.unique" + } + }, + "name": { + "type": "string", + "description": "Provider name.", + "x-example": "<NAME>" + }, + "apiKey": { + "type": "string", + "description": "Mailgun API Key.", + "default": "", + "x-example": "<API_KEY>" + }, + "domain": { + "type": "string", + "description": "Mailgun Domain.", + "default": "", + "x-example": "<DOMAIN>" + }, + "isEuRegion": { + "type": "boolean", + "description": "Set as EU region.", + "x-example": false, + "x-nullable": true + }, + "fromName": { + "type": "string", + "description": "Sender Name.", + "default": "", + "x-example": "<FROM_NAME>" + }, + "fromEmail": { + "type": "string", + "description": "Sender email address.", + "default": "", + "x-example": "email@example.com", + "format": "email" + }, + "replyToName": { + "type": "string", + "description": "Name set in the reply to field for the mail. Default value is sender name. Reply to name must have reply to email as well.", + "default": "", + "x-example": "<REPLY_TO_NAME>" + }, + "replyToEmail": { + "type": "string", + "description": "Email set in the reply to field for the mail. Default value is sender email. Reply to email must have reply to name as well.", + "default": "", + "x-example": "email@example.com", + "format": "email" + }, + "enabled": { + "type": "boolean", + "description": "Set as enabled.", + "x-example": false, + "x-nullable": true + } + }, + "required": [ + "providerId", + "name" + ] + } + } } - ] + } } }, - "\/health\/storage": { - "get": { - "summary": "Get storage", - "operationId": "healthGetStorage", + "\/messaging\/providers\/mailgun\/{providerId}": { + "patch": { + "summary": "Update Mailgun provider", + "operationId": "messagingUpdateMailgunProvider", "tags": [ - "health" + "messaging" ], - "description": "Check the Appwrite storage device is up and connection is successful.", + "description": "Update a Mailgun provider by its unique ID.", "responses": { "200": { - "description": "Health Status", + "description": "Provider", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/healthStatus" + "$ref": "#\/components\/schemas\/provider" } } } @@ -24521,22 +26368,22 @@ }, "deprecated": false, "x-appwrite": { - "method": "getStorage", - "group": "storage", + "method": "updateMailgunProvider", + "group": "providers", "cookies": false, "type": "", - "demo": "health\/get-storage.md", + "demo": "messaging\/update-mailgun-provider.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "health.read", + "scope": "providers.write", "platforms": [ "console", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/health\/get-storage.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/messaging\/update-mailgun-provider.md", "auth": { "Project": [], "Key": [] @@ -24547,24 +26394,102 @@ "Project": [], "Key": [] } - ] + ], + "parameters": [ + { + "name": "providerId", + "description": "Provider ID.", + "required": true, + "schema": { + "type": "string", + "x-example": "<PROVIDER_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "Provider name.", + "default": "", + "x-example": "<NAME>" + }, + "apiKey": { + "type": "string", + "description": "Mailgun API Key.", + "default": "", + "x-example": "<API_KEY>" + }, + "domain": { + "type": "string", + "description": "Mailgun Domain.", + "default": "", + "x-example": "<DOMAIN>" + }, + "isEuRegion": { + "type": "boolean", + "description": "Set as EU region.", + "x-example": false, + "x-nullable": true + }, + "enabled": { + "type": "boolean", + "description": "Set as enabled.", + "x-example": false, + "x-nullable": true + }, + "fromName": { + "type": "string", + "description": "Sender Name.", + "default": "", + "x-example": "<FROM_NAME>" + }, + "fromEmail": { + "type": "string", + "description": "Sender email address.", + "default": "", + "x-example": "email@example.com", + "format": "email" + }, + "replyToName": { + "type": "string", + "description": "Name set in the reply to field for the mail. Default value is sender name.", + "default": "", + "x-example": "<REPLY_TO_NAME>" + }, + "replyToEmail": { + "type": "string", + "description": "Email set in the reply to field for the mail. Default value is sender email.", + "default": "", + "x-example": "<REPLY_TO_EMAIL>" + } + } + } + } + } + } } }, - "\/health\/storage\/local": { - "get": { - "summary": "Get local storage", - "operationId": "healthGetStorageLocal", + "\/messaging\/providers\/msg91": { + "post": { + "summary": "Create Msg91 provider", + "operationId": "messagingCreateMsg91Provider", "tags": [ - "health" + "messaging" ], - "description": "Check the Appwrite local storage device is up and connection is successful.", + "description": "Create a new MSG91 provider.", "responses": { - "200": { - "description": "Health Status", + "201": { + "description": "Provider", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/healthStatus" + "$ref": "#\/components\/schemas\/provider" } } } @@ -24572,22 +26497,22 @@ }, "deprecated": false, "x-appwrite": { - "method": "getStorageLocal", - "group": "storage", + "method": "createMsg91Provider", + "group": "providers", "cookies": false, "type": "", - "demo": "health\/get-storage-local.md", + "demo": "messaging\/create-msg-91-provider.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "health.read", + "scope": "providers.write", "platforms": [ "console", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/health\/get-storage-local.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/messaging\/create-msg91-provider.md", "auth": { "Project": [], "Key": [] @@ -24598,24 +26523,76 @@ "Project": [], "Key": [] } - ] + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "providerId": { + "type": "string", + "description": "Provider ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.", + "x-example": "<PROVIDER_ID>", + "x-appwrite": { + "idGenerator": "ID.unique" + } + }, + "name": { + "type": "string", + "description": "Provider name.", + "x-example": "<NAME>" + }, + "templateId": { + "type": "string", + "description": "Msg91 template ID", + "default": "", + "x-example": "<TEMPLATE_ID>" + }, + "senderId": { + "type": "string", + "description": "Msg91 sender ID.", + "default": "", + "x-example": "<SENDER_ID>" + }, + "authKey": { + "type": "string", + "description": "Msg91 auth key.", + "default": "", + "x-example": "<AUTH_KEY>" + }, + "enabled": { + "type": "boolean", + "description": "Set as enabled.", + "x-example": false, + "x-nullable": true + } + }, + "required": [ + "providerId", + "name" + ] + } + } + } + } } }, - "\/health\/time": { - "get": { - "summary": "Get time", - "operationId": "healthGetTime", + "\/messaging\/providers\/msg91\/{providerId}": { + "patch": { + "summary": "Update Msg91 provider", + "operationId": "messagingUpdateMsg91Provider", "tags": [ - "health" + "messaging" ], - "description": "Check the Appwrite server time is synced with Google remote NTP server. We use this technology to smoothly handle leap seconds with no disruptive events. The [Network Time Protocol](https:\/\/en.wikipedia.org\/wiki\/Network_Time_Protocol) (NTP) is used by hundreds of millions of computers and devices to synchronize their clocks over the Internet. If your computer sets its own clock, it likely uses NTP.", + "description": "Update a MSG91 provider by its unique ID.", "responses": { "200": { - "description": "Health Time", + "description": "Provider", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/healthTime" + "$ref": "#\/components\/schemas\/provider" } } } @@ -24623,22 +26600,22 @@ }, "deprecated": false, "x-appwrite": { - "method": "getTime", - "group": "health", + "method": "updateMsg91Provider", + "group": "providers", "cookies": false, "type": "", - "demo": "health\/get-time.md", + "demo": "messaging\/update-msg-91-provider.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "health.read", + "scope": "providers.write", "platforms": [ "console", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/health\/get-time.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/messaging\/update-msg91-provider.md", "auth": { "Project": [], "Key": [] @@ -24649,24 +26626,77 @@ "Project": [], "Key": [] } - ] + ], + "parameters": [ + { + "name": "providerId", + "description": "Provider ID.", + "required": true, + "schema": { + "type": "string", + "x-example": "<PROVIDER_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "Provider name.", + "default": "", + "x-example": "<NAME>" + }, + "enabled": { + "type": "boolean", + "description": "Set as enabled.", + "x-example": false, + "x-nullable": true + }, + "templateId": { + "type": "string", + "description": "Msg91 template ID.", + "default": "", + "x-example": "<TEMPLATE_ID>" + }, + "senderId": { + "type": "string", + "description": "Msg91 sender ID.", + "default": "", + "x-example": "<SENDER_ID>" + }, + "authKey": { + "type": "string", + "description": "Msg91 auth key.", + "default": "", + "x-example": "<AUTH_KEY>" + } + } + } + } + } + } } }, - "\/locale": { - "get": { - "summary": "Get user locale", - "operationId": "localeGet", + "\/messaging\/providers\/resend": { + "post": { + "summary": "Create Resend provider", + "operationId": "messagingCreateResendProvider", "tags": [ - "locale" + "messaging" ], - "description": "Get the current user location based on IP. Returns an object with user country code, country name, continent name, continent code, ip address and suggested currency. You can use the locale header to get the data in a supported language.\n\n([IP Geolocation by DB-IP](https:\/\/db-ip.com))", + "description": "Create a new Resend provider.", "responses": { - "200": { - "description": "Locale", + "201": { + "description": "Provider", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/cloudLocale" + "$ref": "#\/components\/schemas\/provider" } } } @@ -24674,107 +26704,116 @@ }, "deprecated": false, "x-appwrite": { - "method": "get", - "group": null, + "method": "createResendProvider", + "group": "providers", "cookies": false, "type": "", - "demo": "locale\/get.md", + "demo": "messaging\/create-resend-provider.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "locale.read", + "scope": "providers.write", "platforms": [ "console", - "client", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/locale\/get-locale.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/messaging\/create-resend-provider.md", "auth": { "Project": [], - "Session": [] + "Key": [] } }, "security": [ { "Project": [], - "Session": [], - "Key": [], - "JWT": [] + "Key": [] } - ] - } - }, - "\/locale\/codes": { - "get": { - "summary": "List locale codes", - "operationId": "localeListCodes", - "tags": [ - "locale" ], - "description": "List of all locale codes in [ISO 639-1](https:\/\/en.wikipedia.org\/wiki\/List_of_ISO_639-1_codes).", - "responses": { - "200": { - "description": "Locale codes list", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/localeCodeList" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "method": "listCodes", - "group": null, - "cookies": false, - "type": "", - "demo": "locale\/list-codes.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "locale.read", - "platforms": [ - "console", - "client", - "server" - ], - "packaging": false, - "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/locale\/list-locale-codes.md", - "auth": { - "Project": [], - "Session": [] - } - }, - "security": [ - { - "Project": [], - "Session": [], - "Key": [], - "JWT": [] + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "providerId": { + "type": "string", + "description": "Provider ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.", + "x-example": "<PROVIDER_ID>", + "x-appwrite": { + "idGenerator": "ID.unique" + } + }, + "name": { + "type": "string", + "description": "Provider name.", + "x-example": "<NAME>" + }, + "apiKey": { + "type": "string", + "description": "Resend API key.", + "default": "", + "x-example": "<API_KEY>" + }, + "fromName": { + "type": "string", + "description": "Sender Name.", + "default": "", + "x-example": "<FROM_NAME>" + }, + "fromEmail": { + "type": "string", + "description": "Sender email address.", + "default": "", + "x-example": "email@example.com", + "format": "email" + }, + "replyToName": { + "type": "string", + "description": "Name set in the reply to field for the mail. Default value is sender name.", + "default": "", + "x-example": "<REPLY_TO_NAME>" + }, + "replyToEmail": { + "type": "string", + "description": "Email set in the reply to field for the mail. Default value is sender email.", + "default": "", + "x-example": "email@example.com", + "format": "email" + }, + "enabled": { + "type": "boolean", + "description": "Set as enabled.", + "x-example": false, + "x-nullable": true + } + }, + "required": [ + "providerId", + "name" + ] + } + } } - ] + } } }, - "\/locale\/continents": { - "get": { - "summary": "List continents", - "operationId": "localeListContinents", + "\/messaging\/providers\/resend\/{providerId}": { + "patch": { + "summary": "Update Resend provider", + "operationId": "messagingUpdateResendProvider", "tags": [ - "locale" + "messaging" ], - "description": "List of all continents. You can use the locale header to get the data in a supported language.", + "description": "Update a Resend provider by its unique ID.", "responses": { "200": { - "description": "Continents List", + "description": "Provider", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/continentList" + "$ref": "#\/components\/schemas\/provider" } } } @@ -24782,107 +26821,116 @@ }, "deprecated": false, "x-appwrite": { - "method": "listContinents", - "group": null, + "method": "updateResendProvider", + "group": "providers", "cookies": false, "type": "", - "demo": "locale\/list-continents.md", + "demo": "messaging\/update-resend-provider.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "locale.read", + "scope": "providers.write", "platforms": [ "console", - "client", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/locale\/list-continents.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/messaging\/update-resend-provider.md", "auth": { "Project": [], - "Session": [] + "Key": [] } }, "security": [ { "Project": [], - "Session": [], - "Key": [], - "JWT": [] + "Key": [] } - ] - } - }, - "\/locale\/countries": { - "get": { - "summary": "List countries", - "operationId": "localeListCountries", - "tags": [ - "locale" ], - "description": "List of all countries. You can use the locale header to get the data in a supported language.", - "responses": { - "200": { - "description": "Countries List", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/countryList" + "parameters": [ + { + "name": "providerId", + "description": "Provider ID.", + "required": true, + "schema": { + "type": "string", + "x-example": "<PROVIDER_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "Provider name.", + "default": "", + "x-example": "<NAME>" + }, + "enabled": { + "type": "boolean", + "description": "Set as enabled.", + "x-example": false, + "x-nullable": true + }, + "apiKey": { + "type": "string", + "description": "Resend API key.", + "default": "", + "x-example": "<API_KEY>" + }, + "fromName": { + "type": "string", + "description": "Sender Name.", + "default": "", + "x-example": "<FROM_NAME>" + }, + "fromEmail": { + "type": "string", + "description": "Sender email address.", + "default": "", + "x-example": "email@example.com", + "format": "email" + }, + "replyToName": { + "type": "string", + "description": "Name set in the Reply To field for the mail. Default value is Sender Name.", + "default": "", + "x-example": "<REPLY_TO_NAME>" + }, + "replyToEmail": { + "type": "string", + "description": "Email set in the Reply To field for the mail. Default value is Sender Email.", + "default": "", + "x-example": "<REPLY_TO_EMAIL>" + } } } } } - }, - "deprecated": false, - "x-appwrite": { - "method": "listCountries", - "group": null, - "cookies": false, - "type": "", - "demo": "locale\/list-countries.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "locale.read", - "platforms": [ - "console", - "client", - "server" - ], - "packaging": false, - "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/locale\/list-countries.md", - "auth": { - "Project": [], - "Session": [] - } - }, - "security": [ - { - "Project": [], - "Session": [], - "Key": [], - "JWT": [] - } - ] + } } }, - "\/locale\/countries\/eu": { - "get": { - "summary": "List EU countries", - "operationId": "localeListCountriesEU", + "\/messaging\/providers\/sendgrid": { + "post": { + "summary": "Create Sendgrid provider", + "operationId": "messagingCreateSendgridProvider", "tags": [ - "locale" + "messaging" ], - "description": "List of all countries that are currently members of the EU. You can use the locale header to get the data in a supported language.", + "description": "Create a new Sendgrid provider.", "responses": { - "200": { - "description": "Countries List", + "201": { + "description": "Provider", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/countryList" + "$ref": "#\/components\/schemas\/provider" } } } @@ -24890,53 +26938,116 @@ }, "deprecated": false, "x-appwrite": { - "method": "listCountriesEU", - "group": null, + "method": "createSendgridProvider", + "group": "providers", "cookies": false, "type": "", - "demo": "locale\/list-countries-eu.md", + "demo": "messaging\/create-sendgrid-provider.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "locale.read", + "scope": "providers.write", "platforms": [ "console", - "client", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/locale\/list-countries-eu.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/messaging\/create-sendgrid-provider.md", "auth": { "Project": [], - "Session": [] + "Key": [] } }, "security": [ { "Project": [], - "Session": [], - "Key": [], - "JWT": [] + "Key": [] } - ] + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "providerId": { + "type": "string", + "description": "Provider ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.", + "x-example": "<PROVIDER_ID>", + "x-appwrite": { + "idGenerator": "ID.unique" + } + }, + "name": { + "type": "string", + "description": "Provider name.", + "x-example": "<NAME>" + }, + "apiKey": { + "type": "string", + "description": "Sendgrid API key.", + "default": "", + "x-example": "<API_KEY>" + }, + "fromName": { + "type": "string", + "description": "Sender Name.", + "default": "", + "x-example": "<FROM_NAME>" + }, + "fromEmail": { + "type": "string", + "description": "Sender email address.", + "default": "", + "x-example": "email@example.com", + "format": "email" + }, + "replyToName": { + "type": "string", + "description": "Name set in the reply to field for the mail. Default value is sender name.", + "default": "", + "x-example": "<REPLY_TO_NAME>" + }, + "replyToEmail": { + "type": "string", + "description": "Email set in the reply to field for the mail. Default value is sender email.", + "default": "", + "x-example": "email@example.com", + "format": "email" + }, + "enabled": { + "type": "boolean", + "description": "Set as enabled.", + "x-example": false, + "x-nullable": true + } + }, + "required": [ + "providerId", + "name" + ] + } + } + } + } } }, - "\/locale\/countries\/phones": { - "get": { - "summary": "List countries phone codes", - "operationId": "localeListCountriesPhones", + "\/messaging\/providers\/sendgrid\/{providerId}": { + "patch": { + "summary": "Update Sendgrid provider", + "operationId": "messagingUpdateSendgridProvider", "tags": [ - "locale" + "messaging" ], - "description": "List of all countries phone codes. You can use the locale header to get the data in a supported language.", + "description": "Update a Sendgrid provider by its unique ID.", "responses": { "200": { - "description": "Phones List", + "description": "Provider", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/phoneList" + "$ref": "#\/components\/schemas\/provider" } } } @@ -24944,53 +27055,116 @@ }, "deprecated": false, "x-appwrite": { - "method": "listCountriesPhones", - "group": null, + "method": "updateSendgridProvider", + "group": "providers", "cookies": false, "type": "", - "demo": "locale\/list-countries-phones.md", + "demo": "messaging\/update-sendgrid-provider.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "locale.read", + "scope": "providers.write", "platforms": [ "console", - "client", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/locale\/list-countries-phones.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/messaging\/update-sendgrid-provider.md", "auth": { "Project": [], - "Session": [] + "Key": [] } }, "security": [ { "Project": [], - "Session": [], - "Key": [], - "JWT": [] + "Key": [] } - ] + ], + "parameters": [ + { + "name": "providerId", + "description": "Provider ID.", + "required": true, + "schema": { + "type": "string", + "x-example": "<PROVIDER_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "Provider name.", + "default": "", + "x-example": "<NAME>" + }, + "enabled": { + "type": "boolean", + "description": "Set as enabled.", + "x-example": false, + "x-nullable": true + }, + "apiKey": { + "type": "string", + "description": "Sendgrid API key.", + "default": "", + "x-example": "<API_KEY>" + }, + "fromName": { + "type": "string", + "description": "Sender Name.", + "default": "", + "x-example": "<FROM_NAME>" + }, + "fromEmail": { + "type": "string", + "description": "Sender email address.", + "default": "", + "x-example": "email@example.com", + "format": "email" + }, + "replyToName": { + "type": "string", + "description": "Name set in the Reply To field for the mail. Default value is Sender Name.", + "default": "", + "x-example": "<REPLY_TO_NAME>" + }, + "replyToEmail": { + "type": "string", + "description": "Email set in the Reply To field for the mail. Default value is Sender Email.", + "default": "", + "x-example": "<REPLY_TO_EMAIL>" + } + } + } + } + } + } } }, - "\/locale\/currencies": { - "get": { - "summary": "List currencies", - "operationId": "localeListCurrencies", + "\/messaging\/providers\/ses": { + "post": { + "summary": "Create Amazon SES provider", + "operationId": "messagingCreateSesProvider", "tags": [ - "locale" + "messaging" ], - "description": "List of all currencies, including currency symbol, name, plural, and decimal digits for all major and minor currencies. You can use the locale header to get the data in a supported language.", + "description": "Create a new Amazon SES provider.", "responses": { - "200": { - "description": "Currencies List", + "201": { + "description": "Provider", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/currencyList" + "$ref": "#\/components\/schemas\/provider" } } } @@ -24998,107 +27172,128 @@ }, "deprecated": false, "x-appwrite": { - "method": "listCurrencies", - "group": null, + "method": "createSesProvider", + "group": "providers", "cookies": false, "type": "", - "demo": "locale\/list-currencies.md", + "demo": "messaging\/create-ses-provider.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "locale.read", + "scope": "providers.write", "platforms": [ "console", - "client", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/locale\/list-currencies.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/messaging\/create-ses-provider.md", "auth": { "Project": [], - "Session": [] + "Key": [] } }, "security": [ { "Project": [], - "Session": [], - "Key": [], - "JWT": [] + "Key": [] } - ] - } - }, - "\/locale\/languages": { - "get": { - "summary": "List languages", - "operationId": "localeListLanguages", - "tags": [ - "locale" ], - "description": "List of all languages classified by ISO 639-1 including 2-letter code, name in English, and name in the respective language.", - "responses": { - "200": { - "description": "Languages List", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/languageList" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "method": "listLanguages", - "group": null, - "cookies": false, - "type": "", - "demo": "locale\/list-languages.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "locale.read", - "platforms": [ - "console", - "client", - "server" - ], - "packaging": false, - "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/locale\/list-languages.md", - "auth": { - "Project": [], - "Session": [] - } - }, - "security": [ - { - "Project": [], - "Session": [], - "Key": [], - "JWT": [] + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "providerId": { + "type": "string", + "description": "Provider ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.", + "x-example": "<PROVIDER_ID>", + "x-appwrite": { + "idGenerator": "ID.unique" + } + }, + "name": { + "type": "string", + "description": "Provider name.", + "x-example": "<NAME>" + }, + "accessKey": { + "type": "string", + "description": "AWS access key ID.", + "default": "", + "x-example": "<ACCESS_KEY>" + }, + "secretKey": { + "type": "string", + "description": "AWS secret access key.", + "default": "", + "x-example": "<SECRET_KEY>" + }, + "region": { + "type": "string", + "description": "AWS region, for example us-east-1.", + "default": "", + "x-example": "<REGION>" + }, + "fromName": { + "type": "string", + "description": "Sender Name.", + "default": "", + "x-example": "<FROM_NAME>" + }, + "fromEmail": { + "type": "string", + "description": "Sender email address.", + "default": "", + "x-example": "email@example.com", + "format": "email" + }, + "replyToName": { + "type": "string", + "description": "Name set in the reply to field for the mail. Default value is sender name.", + "default": "", + "x-example": "<REPLY_TO_NAME>" + }, + "replyToEmail": { + "type": "string", + "description": "Email set in the reply to field for the mail. Default value is sender email.", + "default": "", + "x-example": "email@example.com", + "format": "email" + }, + "enabled": { + "type": "boolean", + "description": "Set as enabled.", + "x-example": false, + "x-nullable": true + } + }, + "required": [ + "providerId", + "name" + ] + } + } } - ] + } } }, - "\/messaging\/messages": { - "get": { - "summary": "List messages", - "operationId": "messagingListMessages", + "\/messaging\/providers\/ses\/{providerId}": { + "patch": { + "summary": "Update Amazon SES provider", + "operationId": "messagingUpdateSesProvider", "tags": [ "messaging" ], - "description": "Get a list of all messages from the current Appwrite project.", + "description": "Update an Amazon SES provider by its unique ID.", "responses": { "200": { - "description": "Message list", + "description": "Provider", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/messageList" + "$ref": "#\/components\/schemas\/provider" } } } @@ -25106,22 +27301,22 @@ }, "deprecated": false, "x-appwrite": { - "method": "listMessages", - "group": "messages", + "method": "updateSesProvider", + "group": "providers", "cookies": false, "type": "", - "demo": "messaging\/list-messages.md", + "demo": "messaging\/update-ses-provider.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "messages.read", + "scope": "providers.write", "platforms": [ "console", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/messaging\/list-messages.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/messaging\/update-ses-provider.md", "auth": { "Project": [], "Key": [] @@ -25135,81 +27330,210 @@ ], "parameters": [ { - "name": "queries", - "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/queries). Maximum of 100 queries are allowed, each 4096 characters long. You may filter on the following attributes: scheduledAt, deliveredAt, deliveredTotal, status, description, providerType", - "required": false, - "schema": { - "type": "array", - "items": { - "type": "string" - }, - "default": [] - }, - "in": "query" - }, - { - "name": "search", - "description": "Search term to filter your list results. Max length: 256 chars.", - "required": false, + "name": "providerId", + "description": "Provider ID.", + "required": true, "schema": { "type": "string", - "x-example": "<SEARCH>", - "default": "" - }, - "in": "query" - }, - { - "name": "total", - "description": "When set to false, the total count returned will be 0 and will not be calculated.", - "required": false, - "schema": { - "type": "boolean", - "x-example": false, - "default": true + "x-example": "<PROVIDER_ID>" }, - "in": "query" + "in": "path" } - ] + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "Provider name.", + "default": "", + "x-example": "<NAME>" + }, + "enabled": { + "type": "boolean", + "description": "Set as enabled.", + "x-example": false, + "x-nullable": true + }, + "accessKey": { + "type": "string", + "description": "AWS access key ID.", + "default": "", + "x-example": "<ACCESS_KEY>" + }, + "secretKey": { + "type": "string", + "description": "AWS secret access key.", + "default": "", + "x-example": "<SECRET_KEY>" + }, + "region": { + "type": "string", + "description": "AWS region, for example us-east-1.", + "default": "", + "x-example": "<REGION>" + }, + "fromName": { + "type": "string", + "description": "Sender Name.", + "default": "", + "x-example": "<FROM_NAME>" + }, + "fromEmail": { + "type": "string", + "description": "Sender email address.", + "default": "", + "x-example": "email@example.com", + "format": "email" + }, + "replyToName": { + "type": "string", + "description": "Name set in the Reply To field for the mail. Default value is Sender Name.", + "default": "", + "x-example": "<REPLY_TO_NAME>" + }, + "replyToEmail": { + "type": "string", + "description": "Email set in the Reply To field for the mail. Default value is Sender Email.", + "default": "", + "x-example": "<REPLY_TO_EMAIL>" + } + } + } + } + } + } } }, - "\/messaging\/messages\/email": { + "\/messaging\/providers\/smtp": { "post": { - "summary": "Create email", - "operationId": "messagingCreateEmail", + "summary": "Create SMTP provider", + "operationId": "messagingCreateSmtpProvider", "tags": [ "messaging" ], - "description": "Create a new email message.", + "description": "Create a new SMTP provider.", "responses": { "201": { - "description": "Message", + "description": "Provider", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/message" + "$ref": "#\/components\/schemas\/provider" } } } } }, - "deprecated": false, + "deprecated": true, "x-appwrite": { - "method": "createEmail", - "group": "messages", + "method": "createSmtpProvider", + "group": "providers", "cookies": false, "type": "", - "demo": "messaging\/create-email.md", + "demo": "messaging\/create-smtp-provider.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "messages.write", + "scope": "providers.write", "platforms": [ "console", "server" ], "packaging": false, - "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/messaging\/create-email.md", + "public": false, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/messaging\/create-smtp-provider.md", + "deprecated": { + "since": "1.8.0", + "replaceWith": "messaging.createSMTPProvider" + }, + "methods": [ + { + "name": "createSmtpProvider", + "namespace": "messaging", + "desc": "", + "auth": { + "Project": [], + "Key": [] + }, + "parameters": [ + "providerId", + "name", + "host", + "port", + "username", + "password", + "encryption", + "autoTLS", + "mailer", + "fromName", + "fromEmail", + "replyToName", + "replyToEmail", + "enabled" + ], + "required": [ + "providerId", + "name", + "host" + ], + "responses": [ + { + "code": 201, + "model": "#\/components\/schemas\/provider" + } + ], + "description": "Create a new SMTP provider.", + "demo": "messaging\/create-smtp-provider.md", + "public": false, + "deprecated": { + "since": "1.8.0", + "replaceWith": "messaging.createSMTPProvider" + } + }, + { + "name": "createSMTPProvider", + "namespace": "messaging", + "desc": "", + "auth": { + "Project": [], + "Key": [] + }, + "parameters": [ + "providerId", + "name", + "host", + "port", + "username", + "password", + "encryption", + "autoTLS", + "mailer", + "fromName", + "fromEmail", + "replyToName", + "replyToEmail", + "enabled" + ], + "required": [ + "providerId", + "name", + "host" + ], + "responses": [ + { + "code": 201, + "model": "#\/components\/schemas\/provider" + } + ], + "description": "Create a new SMTP provider.", + "demo": "messaging\/create-smtp-provider.md", + "public": true + } + ], "auth": { "Project": [], "Key": [] @@ -25227,102 +27551,109 @@ "schema": { "type": "object", "properties": { - "messageId": { + "providerId": { "type": "string", - "description": "Message ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.", - "x-example": "<MESSAGE_ID>", + "description": "Provider ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.", + "x-example": "<PROVIDER_ID>", "x-appwrite": { "idGenerator": "ID.unique" } }, - "subject": { + "name": { "type": "string", - "description": "Email Subject.", - "x-example": "<SUBJECT>" + "description": "Provider name.", + "x-example": "<NAME>" }, - "content": { + "host": { "type": "string", - "description": "Email Content.", - "x-example": "<CONTENT>" - }, - "topics": { - "type": "array", - "description": "List of Topic IDs.", - "default": [], - "x-example": null, - "items": { - "type": "string" - } - }, - "users": { - "type": "array", - "description": "List of User IDs.", - "default": [], - "x-example": null, - "items": { - "type": "string" - } + "description": "SMTP hosts. Either a single hostname or multiple semicolon-delimited hostnames. You can also specify a different port for each host such as `smtp1.example.com:25;smtp2.example.com`. You can also specify encryption type, for example: `tls:\/\/smtp1.example.com:587;ssl:\/\/smtp2.example.com:465\"`. Hosts will be tried in order.", + "x-example": "<HOST>" }, - "targets": { - "type": "array", - "description": "List of Targets IDs.", - "default": [], - "x-example": null, - "items": { - "type": "string" - } + "port": { + "type": "integer", + "description": "The default SMTP server port.", + "default": 587, + "x-example": 1, + "format": "int32" }, - "cc": { - "type": "array", - "description": "Array of target IDs to be added as CC.", - "default": [], - "x-example": null, - "items": { - "type": "string" - } + "username": { + "type": "string", + "description": "Authentication username.", + "default": "", + "x-example": "<USERNAME>" }, - "bcc": { - "type": "array", - "description": "Array of target IDs to be added as BCC.", - "default": [], - "x-example": null, - "items": { - "type": "string" - } + "password": { + "type": "string", + "description": "Authentication password.", + "default": "", + "x-example": "password", + "format": "password" }, - "attachments": { - "type": "array", - "description": "Array of compound ID strings of bucket IDs and file IDs to be attached to the email. They should be formatted as <BUCKET_ID>:<FILE_ID>.", - "default": [], - "x-example": null, - "items": { - "type": "string" - } + "encryption": { + "type": "string", + "description": "Encryption type. Can be omitted, 'ssl', or 'tls'", + "x-example": "none", + "enum": [ + "none", + "ssl", + "tls" + ], + "x-enum-name": "SmtpEncryption", + "x-enum-keys": [ + "none", + "ssl", + "tls" + ] }, - "draft": { + "autoTLS": { "type": "boolean", - "description": "Is message a draft", - "default": false, + "description": "Enable SMTP AutoTLS feature.", + "default": true, "x-example": false }, - "html": { - "type": "boolean", - "description": "Is content of type HTML", - "default": false, - "x-example": false + "mailer": { + "type": "string", + "description": "The value to use for the X-Mailer header.", + "default": "", + "x-example": "<MAILER>" }, - "scheduledAt": { + "fromName": { "type": "string", - "description": "Scheduled delivery time for message in [ISO 8601](https:\/\/www.iso.org\/iso-8601-date-and-time-format.html) format. DateTime value must be in future.", - "x-example": "2020-10-15T06:38:00.000+00:00", - "format": "datetime", + "description": "Sender Name.", + "default": "", + "x-example": "<FROM_NAME>" + }, + "fromEmail": { + "type": "string", + "description": "Sender email address.", + "default": "", + "x-example": "email@example.com", + "format": "email" + }, + "replyToName": { + "type": "string", + "description": "Name set in the reply to field for the mail. Default value is sender name.", + "default": "", + "x-example": "<REPLY_TO_NAME>" + }, + "replyToEmail": { + "type": "string", + "description": "Email set in the reply to field for the mail. Default value is sender email.", + "default": "", + "x-example": "email@example.com", + "format": "email" + }, + "enabled": { + "type": "boolean", + "description": "Set as enabled.", + "x-example": false, "x-nullable": true } }, "required": [ - "messageId", - "subject", - "content" + "providerId", + "name", + "host" ] } } @@ -25330,44 +27661,128 @@ } } }, - "\/messaging\/messages\/email\/{messageId}": { + "\/messaging\/providers\/smtp\/{providerId}": { "patch": { - "summary": "Update email", - "operationId": "messagingUpdateEmail", + "summary": "Update SMTP provider", + "operationId": "messagingUpdateSmtpProvider", "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", + "description": "Update a SMTP provider by its unique ID.", "responses": { "200": { - "description": "Message", + "description": "Provider", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/message" + "$ref": "#\/components\/schemas\/provider" } } } } }, - "deprecated": false, + "deprecated": true, "x-appwrite": { - "method": "updateEmail", - "group": "messages", - "cookies": false, + "method": "updateSmtpProvider", + "group": "providers", + "cookies": false, "type": "", - "demo": "messaging\/update-email.md", + "demo": "messaging\/update-smtp-provider.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "messages.write", + "scope": "providers.write", "platforms": [ "console", "server" ], "packaging": false, - "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/messaging\/update-email.md", + "public": false, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/messaging\/update-smtp-provider.md", + "deprecated": { + "since": "1.8.0", + "replaceWith": "messaging.updateSMTPProvider" + }, + "methods": [ + { + "name": "updateSmtpProvider", + "namespace": "messaging", + "desc": "", + "auth": { + "Project": [], + "Key": [] + }, + "parameters": [ + "providerId", + "name", + "host", + "port", + "username", + "password", + "encryption", + "autoTLS", + "mailer", + "fromName", + "fromEmail", + "replyToName", + "replyToEmail", + "enabled" + ], + "required": [ + "providerId" + ], + "responses": [ + { + "code": 200, + "model": "#\/components\/schemas\/provider" + } + ], + "description": "Update a SMTP provider by its unique ID.", + "demo": "messaging\/update-smtp-provider.md", + "public": false, + "deprecated": { + "since": "1.8.0", + "replaceWith": "messaging.updateSMTPProvider" + } + }, + { + "name": "updateSMTPProvider", + "namespace": "messaging", + "desc": "", + "auth": { + "Project": [], + "Key": [] + }, + "parameters": [ + "providerId", + "name", + "host", + "port", + "username", + "password", + "encryption", + "autoTLS", + "mailer", + "fromName", + "fromEmail", + "replyToName", + "replyToEmail", + "enabled" + ], + "required": [ + "providerId" + ], + "responses": [ + { + "code": 200, + "model": "#\/components\/schemas\/provider" + } + ], + "description": "Update a SMTP provider by its unique ID.", + "demo": "messaging\/update-smtp-provider.md", + "public": true + } + ], "auth": { "Project": [], "Key": [] @@ -25381,12 +27796,12 @@ ], "parameters": [ { - "name": "messageId", - "description": "Message ID.", + "name": "providerId", + "description": "Provider ID.", "required": true, "schema": { "type": "string", - "x-example": "<MESSAGE_ID>" + "x-example": "<PROVIDER_ID>" }, "in": "path" } @@ -25397,89 +27812,95 @@ "schema": { "type": "object", "properties": { - "topics": { - "type": "array", - "description": "List of Topic IDs.", - "x-example": null, - "items": { - "type": "string" - }, - "x-nullable": true + "name": { + "type": "string", + "description": "Provider name.", + "default": "", + "x-example": "<NAME>" }, - "users": { - "type": "array", - "description": "List of User IDs.", - "x-example": null, - "items": { - "type": "string" - }, - "x-nullable": true + "host": { + "type": "string", + "description": "SMTP hosts. Either a single hostname or multiple semicolon-delimited hostnames. You can also specify a different port for each host such as `smtp1.example.com:25;smtp2.example.com`. You can also specify encryption type, for example: `tls:\/\/smtp1.example.com:587;ssl:\/\/smtp2.example.com:465\"`. Hosts will be tried in order.", + "default": "", + "x-example": "<HOST>" }, - "targets": { - "type": "array", - "description": "List of Targets IDs.", - "x-example": null, - "items": { - "type": "string" - }, + "port": { + "type": "integer", + "description": "SMTP port.", + "x-example": 1, + "format": "int32", "x-nullable": true }, - "subject": { + "username": { "type": "string", - "description": "Email Subject.", - "x-example": "<SUBJECT>", - "x-nullable": true + "description": "Authentication username.", + "default": "", + "x-example": "<USERNAME>" }, - "content": { + "password": { "type": "string", - "description": "Email Content.", - "x-example": "<CONTENT>", - "x-nullable": true + "description": "Authentication password.", + "default": "", + "x-example": "password", + "format": "password" }, - "draft": { - "type": "boolean", - "description": "Is message a draft", - "x-example": false, - "x-nullable": true + "encryption": { + "type": "string", + "description": "Encryption type. Can be 'ssl' or 'tls'", + "x-example": "none", + "enum": [ + "none", + "ssl", + "tls" + ], + "x-enum-name": "SmtpEncryption", + "x-enum-keys": [ + "none", + "ssl", + "tls" + ] }, - "html": { + "autoTLS": { "type": "boolean", - "description": "Is content of type HTML", + "description": "Enable SMTP AutoTLS feature.", "x-example": false, "x-nullable": true }, - "cc": { - "type": "array", - "description": "Array of target IDs to be added as CC.", - "x-example": null, - "items": { - "type": "string" - }, - "x-nullable": true + "mailer": { + "type": "string", + "description": "The value to use for the X-Mailer header.", + "default": "", + "x-example": "<MAILER>" }, - "bcc": { - "type": "array", - "description": "Array of target IDs to be added as BCC.", - "x-example": null, - "items": { - "type": "string" - }, - "x-nullable": true + "fromName": { + "type": "string", + "description": "Sender Name.", + "default": "", + "x-example": "<FROM_NAME>" }, - "scheduledAt": { + "fromEmail": { "type": "string", - "description": "Scheduled delivery time for message in [ISO 8601](https:\/\/www.iso.org\/iso-8601-date-and-time-format.html) format. DateTime value must be in future.", - "x-example": "2020-10-15T06:38:00.000+00:00", - "format": "datetime", - "x-nullable": true + "description": "Sender email address.", + "default": "", + "x-example": "email@example.com", + "format": "email" }, - "attachments": { - "type": "array", - "description": "Array of compound ID strings of bucket IDs and file IDs to be attached to the email. They should be formatted as <BUCKET_ID>:<FILE_ID>.", - "x-example": null, - "items": { - "type": "string" - }, + "replyToName": { + "type": "string", + "description": "Name set in the Reply To field for the mail. Default value is Sender Name.", + "default": "", + "x-example": "<REPLY_TO_NAME>" + }, + "replyToEmail": { + "type": "string", + "description": "Email set in the Reply To field for the mail. Default value is Sender Email.", + "default": "", + "x-example": "<REPLY_TO_EMAIL>" + }, + "enabled": { + "type": "boolean", + "description": "Set as enabled.", + "x-example": false, "x-nullable": true } } @@ -25489,21 +27910,21 @@ } } }, - "\/messaging\/messages\/push": { + "\/messaging\/providers\/telesign": { "post": { - "summary": "Create push notification", - "operationId": "messagingCreatePush", + "summary": "Create Telesign provider", + "operationId": "messagingCreateTelesignProvider", "tags": [ "messaging" ], - "description": "Create a new push notification.", + "description": "Create a new Telesign provider.", "responses": { "201": { - "description": "Message", + "description": "Provider", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/message" + "$ref": "#\/components\/schemas\/provider" } } } @@ -25511,22 +27932,22 @@ }, "deprecated": false, "x-appwrite": { - "method": "createPush", - "group": "messages", + "method": "createTelesignProvider", + "group": "providers", "cookies": false, "type": "", - "demo": "messaging\/create-push.md", + "demo": "messaging\/create-telesign-provider.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "messages.write", + "scope": "providers.write", "platforms": [ "console", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/messaging\/create-push.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/messaging\/create-telesign-provider.md", "auth": { "Project": [], "Key": [] @@ -25544,146 +27965,48 @@ "schema": { "type": "object", "properties": { - "messageId": { + "providerId": { "type": "string", - "description": "Message ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.", - "x-example": "<MESSAGE_ID>", + "description": "Provider ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.", + "x-example": "<PROVIDER_ID>", "x-appwrite": { "idGenerator": "ID.unique" } }, - "title": { - "type": "string", - "description": "Title for push notification.", - "default": "", - "x-example": "<TITLE>" - }, - "body": { - "type": "string", - "description": "Body for push notification.", - "default": "", - "x-example": "<BODY>" - }, - "topics": { - "type": "array", - "description": "List of Topic IDs.", - "default": [], - "x-example": null, - "items": { - "type": "string" - } - }, - "users": { - "type": "array", - "description": "List of User IDs.", - "default": [], - "x-example": null, - "items": { - "type": "string" - } - }, - "targets": { - "type": "array", - "description": "List of Targets IDs.", - "default": [], - "x-example": null, - "items": { - "type": "string" - } - }, - "data": { - "type": "object", - "description": "Additional key-value pair data for push notification.", - "default": {}, - "x-example": "{}", - "x-nullable": true - }, - "action": { - "type": "string", - "description": "Action for push notification.", - "default": "", - "x-example": "<ACTION>" - }, - "image": { - "type": "string", - "description": "Image for push notification. Must be a compound bucket ID to file ID of a jpeg, png, or bmp image in Appwrite Storage. It should be formatted as <BUCKET_ID>:<FILE_ID>.", - "default": "", - "x-example": "<ID1:ID2>" - }, - "icon": { + "name": { "type": "string", - "description": "Icon for push notification. Available only for Android and Web Platform.", - "default": "", - "x-example": "<ICON>" + "description": "Provider name.", + "x-example": "<NAME>" }, - "sound": { + "from": { "type": "string", - "description": "Sound for push notification. Available only for Android and iOS Platform.", + "description": "Sender Phone number. Format this number with a leading '+' and a country code, e.g., +16175551212.", "default": "", - "x-example": "<SOUND>" + "x-example": "+12065550100", + "format": "phone" }, - "color": { + "customerId": { "type": "string", - "description": "Color for push notification. Available only for Android Platform.", + "description": "Telesign customer ID.", "default": "", - "x-example": "<COLOR>" + "x-example": "<CUSTOMER_ID>" }, - "tag": { + "apiKey": { "type": "string", - "description": "Tag for push notification. Available only for Android Platform.", + "description": "Telesign API key.", "default": "", - "x-example": "<TAG>" - }, - "badge": { - "type": "integer", - "description": "Badge for push notification. Available only for iOS Platform.", - "default": -1, - "x-example": null, - "format": "int32" + "x-example": "<API_KEY>" }, - "draft": { + "enabled": { "type": "boolean", - "description": "Is message a draft", - "default": false, - "x-example": false - }, - "scheduledAt": { - "type": "string", - "description": "Scheduled delivery time for message in [ISO 8601](https:\/\/www.iso.org\/iso-8601-date-and-time-format.html) format. DateTime value must be in future.", - "x-example": "2020-10-15T06:38:00.000+00:00", - "format": "datetime", + "description": "Set as enabled.", + "x-example": false, "x-nullable": true - }, - "contentAvailable": { - "type": "boolean", - "description": "If set to true, the notification will be delivered in the background. Available only for iOS Platform.", - "default": false, - "x-example": false - }, - "critical": { - "type": "boolean", - "description": "If set to true, the notification will be marked as critical. This requires the app to have the critical notification entitlement. Available only for iOS Platform.", - "default": false, - "x-example": false - }, - "priority": { - "type": "string", - "description": "Set the notification priority. \"normal\" will consider device state and may not deliver notifications immediately. \"high\" will always attempt to immediately deliver the notification.", - "default": "high", - "x-example": "normal", - "enum": [ - "normal", - "high" - ], - "x-enum-name": "MessagePriority", - "x-enum-keys": [ - "normal", - "high" - ] } }, "required": [ - "messageId" + "providerId", + "name" ] } } @@ -25691,21 +28014,21 @@ } } }, - "\/messaging\/messages\/push\/{messageId}": { + "\/messaging\/providers\/telesign\/{providerId}": { "patch": { - "summary": "Update push notification", - "operationId": "messagingUpdatePush", + "summary": "Update Telesign provider", + "operationId": "messagingUpdateTelesignProvider", "tags": [ "messaging" ], - "description": "Update a push notification by its unique ID. This endpoint only works on messages that are in draft status. Messages that are already processing, sent, or failed cannot be updated.\n", + "description": "Update a Telesign provider by its unique ID.", "responses": { "200": { - "description": "Message", + "description": "Provider", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/message" + "$ref": "#\/components\/schemas\/provider" } } } @@ -25713,22 +28036,22 @@ }, "deprecated": false, "x-appwrite": { - "method": "updatePush", - "group": "messages", + "method": "updateTelesignProvider", + "group": "providers", "cookies": false, "type": "", - "demo": "messaging\/update-push.md", + "demo": "messaging\/update-telesign-provider.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "messages.write", + "scope": "providers.write", "platforms": [ "console", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/messaging\/update-push.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/messaging\/update-telesign-provider.md", "auth": { "Project": [], "Key": [] @@ -25742,12 +28065,12 @@ ], "parameters": [ { - "name": "messageId", - "description": "Message ID.", + "name": "providerId", + "description": "Provider ID.", "required": true, "schema": { "type": "string", - "x-example": "<MESSAGE_ID>" + "x-example": "<PROVIDER_ID>" }, "in": "path" } @@ -25758,134 +28081,35 @@ "schema": { "type": "object", "properties": { - "topics": { - "type": "array", - "description": "List of Topic IDs.", - "x-example": null, - "items": { - "type": "string" - }, - "x-nullable": true - }, - "users": { - "type": "array", - "description": "List of User IDs.", - "x-example": null, - "items": { - "type": "string" - }, - "x-nullable": true - }, - "targets": { - "type": "array", - "description": "List of Targets IDs.", - "x-example": null, - "items": { - "type": "string" - }, - "x-nullable": true - }, - "title": { - "type": "string", - "description": "Title for push notification.", - "x-example": "<TITLE>", - "x-nullable": true - }, - "body": { - "type": "string", - "description": "Body for push notification.", - "x-example": "<BODY>", - "x-nullable": true - }, - "data": { - "type": "object", - "description": "Additional Data for push notification.", - "default": {}, - "x-example": "{}", - "x-nullable": true - }, - "action": { + "name": { "type": "string", - "description": "Action for push notification.", - "x-example": "<ACTION>", - "x-nullable": true + "description": "Provider name.", + "default": "", + "x-example": "<NAME>" }, - "image": { - "type": "string", - "description": "Image for push notification. Must be a compound bucket ID to file ID of a jpeg, png, or bmp image in Appwrite Storage. It should be formatted as <BUCKET_ID>:<FILE_ID>.", - "x-example": "<ID1:ID2>", + "enabled": { + "type": "boolean", + "description": "Set as enabled.", + "x-example": false, "x-nullable": true }, - "icon": { + "customerId": { "type": "string", - "description": "Icon for push notification. Available only for Android and Web platforms.", - "x-example": "<ICON>", - "x-nullable": true + "description": "Telesign customer ID.", + "default": "", + "x-example": "<CUSTOMER_ID>" }, - "sound": { + "apiKey": { "type": "string", - "description": "Sound for push notification. Available only for Android and iOS platforms.", - "x-example": "<SOUND>", - "x-nullable": true + "description": "Telesign API key.", + "default": "", + "x-example": "<API_KEY>" }, - "color": { + "from": { "type": "string", - "description": "Color for push notification. Available only for Android platforms.", - "x-example": "<COLOR>", - "x-nullable": true - }, - "tag": { - "type": "string", - "description": "Tag for push notification. Available only for Android platforms.", - "x-example": "<TAG>", - "x-nullable": true - }, - "badge": { - "type": "integer", - "description": "Badge for push notification. Available only for iOS platforms.", - "x-example": null, - "format": "int32", - "x-nullable": true - }, - "draft": { - "type": "boolean", - "description": "Is message a draft", - "x-example": false, - "x-nullable": true - }, - "scheduledAt": { - "type": "string", - "description": "Scheduled delivery time for message in [ISO 8601](https:\/\/www.iso.org\/iso-8601-date-and-time-format.html) format. DateTime value must be in future.", - "x-example": "2020-10-15T06:38:00.000+00:00", - "format": "datetime", - "x-nullable": true - }, - "contentAvailable": { - "type": "boolean", - "description": "If set to true, the notification will be delivered in the background. Available only for iOS Platform.", - "x-example": false, - "x-nullable": true - }, - "critical": { - "type": "boolean", - "description": "If set to true, the notification will be marked as critical. This requires the app to have the critical notification entitlement. Available only for iOS Platform.", - "x-example": false, - "x-nullable": true - }, - "priority": { - "type": "string", - "description": "Set the notification priority. \"normal\" will consider device battery state and may send notifications later. \"high\" will always attempt to immediately deliver the notification.", - "x-example": "normal", - "enum": [ - "normal", - "high" - ], - "x-enum-name": "MessagePriority", - "x-enum-keys": [ - "normal", - "high" - ], - "x-nullable": true + "description": "Sender number.", + "default": "", + "x-example": "<FROM>" } } } @@ -25894,116 +28118,44 @@ } } }, - "\/messaging\/messages\/sms": { + "\/messaging\/providers\/textmagic": { "post": { - "summary": "Create SMS", - "operationId": "messagingCreateSms", + "summary": "Create Textmagic provider", + "operationId": "messagingCreateTextmagicProvider", "tags": [ "messaging" ], - "description": "Create a new SMS message.", + "description": "Create a new Textmagic provider.", "responses": { "201": { - "description": "Message", + "description": "Provider", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/message" + "$ref": "#\/components\/schemas\/provider" } } } } }, - "deprecated": true, + "deprecated": false, "x-appwrite": { - "method": "createSms", - "group": "messages", + "method": "createTextmagicProvider", + "group": "providers", "cookies": false, "type": "", - "demo": "messaging\/create-sms.md", + "demo": "messaging\/create-textmagic-provider.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "messages.write", + "scope": "providers.write", "platforms": [ "console", "server" ], "packaging": false, - "public": false, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/messaging\/create-sms.md", - "deprecated": { - "since": "1.8.0", - "replaceWith": "messaging.createSMS" - }, - "methods": [ - { - "name": "createSms", - "namespace": "messaging", - "desc": "", - "auth": { - "Project": [], - "Key": [] - }, - "parameters": [ - "messageId", - "content", - "topics", - "users", - "targets", - "draft", - "scheduledAt" - ], - "required": [ - "messageId", - "content" - ], - "responses": [ - { - "code": 201, - "model": "#\/components\/schemas\/message" - } - ], - "description": "Create a new SMS message.", - "demo": "messaging\/create-sms.md", - "public": false, - "deprecated": { - "since": "1.8.0", - "replaceWith": "messaging.createSMS" - } - }, - { - "name": "createSMS", - "namespace": "messaging", - "desc": "", - "auth": { - "Project": [], - "Key": [] - }, - "parameters": [ - "messageId", - "content", - "topics", - "users", - "targets", - "draft", - "scheduledAt" - ], - "required": [ - "messageId", - "content" - ], - "responses": [ - { - "code": 201, - "model": "#\/components\/schemas\/message" - } - ], - "description": "Create a new SMS message.", - "demo": "messaging\/create-sms.md", - "public": true - } - ], + "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/messaging\/create-textmagic-provider.md", "auth": { "Project": [], "Key": [] @@ -26021,63 +28173,48 @@ "schema": { "type": "object", "properties": { - "messageId": { + "providerId": { "type": "string", - "description": "Message ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.", - "x-example": "<MESSAGE_ID>", + "description": "Provider ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.", + "x-example": "<PROVIDER_ID>", "x-appwrite": { "idGenerator": "ID.unique" } }, - "content": { + "name": { "type": "string", - "description": "SMS Content.", - "x-example": "<CONTENT>" + "description": "Provider name.", + "x-example": "<NAME>" }, - "topics": { - "type": "array", - "description": "List of Topic IDs.", - "default": [], - "x-example": null, - "items": { - "type": "string" - } + "from": { + "type": "string", + "description": "Sender Phone number. Format this number with a leading '+' and a country code, e.g., +16175551212.", + "default": "", + "x-example": "+12065550100", + "format": "phone" }, - "users": { - "type": "array", - "description": "List of User IDs.", - "default": [], - "x-example": null, - "items": { - "type": "string" - } + "username": { + "type": "string", + "description": "Textmagic username.", + "default": "", + "x-example": "<USERNAME>" }, - "targets": { - "type": "array", - "description": "List of Targets IDs.", - "default": [], - "x-example": null, - "items": { - "type": "string" - } + "apiKey": { + "type": "string", + "description": "Textmagic apiKey.", + "default": "", + "x-example": "<API_KEY>" }, - "draft": { + "enabled": { "type": "boolean", - "description": "Is message a draft", - "default": false, - "x-example": false - }, - "scheduledAt": { - "type": "string", - "description": "Scheduled delivery time for message in [ISO 8601](https:\/\/www.iso.org\/iso-8601-date-and-time-format.html) format. DateTime value must be in future.", - "x-example": "2020-10-15T06:38:00.000+00:00", - "format": "datetime", + "description": "Set as enabled.", + "x-example": false, "x-nullable": true } }, "required": [ - "messageId", - "content" + "providerId", + "name" ] } } @@ -26085,114 +28222,44 @@ } } }, - "\/messaging\/messages\/sms\/{messageId}": { + "\/messaging\/providers\/textmagic\/{providerId}": { "patch": { - "summary": "Update SMS", - "operationId": "messagingUpdateSms", + "summary": "Update Textmagic provider", + "operationId": "messagingUpdateTextmagicProvider", "tags": [ "messaging" ], - "description": "Update an SMS message by its unique ID. This endpoint only works on messages that are in draft status. Messages that are already processing, sent, or failed cannot be updated.\n", + "description": "Update a Textmagic provider by its unique ID.", "responses": { "200": { - "description": "Message", + "description": "Provider", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/message" + "$ref": "#\/components\/schemas\/provider" } } } } }, - "deprecated": true, + "deprecated": false, "x-appwrite": { - "method": "updateSms", - "group": "messages", + "method": "updateTextmagicProvider", + "group": "providers", "cookies": false, "type": "", - "demo": "messaging\/update-sms.md", + "demo": "messaging\/update-textmagic-provider.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "messages.write", + "scope": "providers.write", "platforms": [ "console", "server" ], "packaging": false, - "public": false, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/messaging\/update-sms.md", - "deprecated": { - "since": "1.8.0", - "replaceWith": "messaging.updateSMS" - }, - "methods": [ - { - "name": "updateSms", - "namespace": "messaging", - "desc": "", - "auth": { - "Project": [], - "Key": [] - }, - "parameters": [ - "messageId", - "topics", - "users", - "targets", - "content", - "draft", - "scheduledAt" - ], - "required": [ - "messageId" - ], - "responses": [ - { - "code": 200, - "model": "#\/components\/schemas\/message" - } - ], - "description": "Update an SMS message by its unique ID. This endpoint only works on messages that are in draft status. Messages that are already processing, sent, or failed cannot be updated.\n", - "demo": "messaging\/update-sms.md", - "public": false, - "deprecated": { - "since": "1.8.0", - "replaceWith": "messaging.updateSMS" - } - }, - { - "name": "updateSMS", - "namespace": "messaging", - "desc": "", - "auth": { - "Project": [], - "Key": [] - }, - "parameters": [ - "messageId", - "topics", - "users", - "targets", - "content", - "draft", - "scheduledAt" - ], - "required": [ - "messageId" - ], - "responses": [ - { - "code": 200, - "model": "#\/components\/schemas\/message" - } - ], - "description": "Update an SMS message by its unique ID. This endpoint only works on messages that are in draft status. Messages that are already processing, sent, or failed cannot be updated.\n", - "demo": "messaging\/update-sms.md", - "public": true - } - ], + "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/messaging\/update-textmagic-provider.md", "auth": { "Project": [], "Key": [] @@ -26206,12 +28273,12 @@ ], "parameters": [ { - "name": "messageId", - "description": "Message ID.", + "name": "providerId", + "description": "Provider ID.", "required": true, "schema": { "type": "string", - "x-example": "<MESSAGE_ID>" + "x-example": "<PROVIDER_ID>" }, "in": "path" } @@ -26222,51 +28289,35 @@ "schema": { "type": "object", "properties": { - "topics": { - "type": "array", - "description": "List of Topic IDs.", - "x-example": null, - "items": { - "type": "string" - }, - "x-nullable": true - }, - "users": { - "type": "array", - "description": "List of User IDs.", - "x-example": null, - "items": { - "type": "string" - }, - "x-nullable": true - }, - "targets": { - "type": "array", - "description": "List of Targets IDs.", - "x-example": null, - "items": { - "type": "string" - }, - "x-nullable": true - }, - "content": { + "name": { "type": "string", - "description": "Email Content.", - "x-example": "<CONTENT>", - "x-nullable": true + "description": "Provider name.", + "default": "", + "x-example": "<NAME>" }, - "draft": { + "enabled": { "type": "boolean", - "description": "Is message a draft", + "description": "Set as enabled.", "x-example": false, "x-nullable": true }, - "scheduledAt": { + "username": { "type": "string", - "description": "Scheduled delivery time for message in [ISO 8601](https:\/\/www.iso.org\/iso-8601-date-and-time-format.html) format. DateTime value must be in future.", - "x-example": "2020-10-15T06:38:00.000+00:00", - "format": "datetime", - "x-nullable": true + "description": "Textmagic username.", + "default": "", + "x-example": "<USERNAME>" + }, + "apiKey": { + "type": "string", + "description": "Textmagic apiKey.", + "default": "", + "x-example": "<API_KEY>" + }, + "from": { + "type": "string", + "description": "Sender number.", + "default": "", + "x-example": "<FROM>" } } } @@ -26275,21 +28326,21 @@ } } }, - "\/messaging\/messages\/{messageId}": { - "get": { - "summary": "Get message", - "operationId": "messagingGetMessage", + "\/messaging\/providers\/twilio": { + "post": { + "summary": "Create Twilio provider", + "operationId": "messagingCreateTwilioProvider", "tags": [ "messaging" ], - "description": "Get a message by its unique ID.\n", + "description": "Create a new Twilio provider.", "responses": { - "200": { - "description": "Message", + "201": { + "description": "Provider", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/message" + "$ref": "#\/components\/schemas\/provider" } } } @@ -26297,22 +28348,22 @@ }, "deprecated": false, "x-appwrite": { - "method": "getMessage", - "group": "messages", + "method": "createTwilioProvider", + "group": "providers", "cookies": false, "type": "", - "demo": "messaging\/get-message.md", + "demo": "messaging\/create-twilio-provider.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "messages.read", + "scope": "providers.write", "platforms": [ "console", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/messaging\/get-message.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/messaging\/create-twilio-provider.md", "auth": { "Project": [], "Key": [] @@ -26324,49 +28375,99 @@ "Key": [] } ], - "parameters": [ - { - "name": "messageId", - "description": "Message ID.", - "required": true, - "schema": { - "type": "string", - "x-example": "<MESSAGE_ID>" - }, - "in": "path" + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "providerId": { + "type": "string", + "description": "Provider ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.", + "x-example": "<PROVIDER_ID>", + "x-appwrite": { + "idGenerator": "ID.unique" + } + }, + "name": { + "type": "string", + "description": "Provider name.", + "x-example": "<NAME>" + }, + "from": { + "type": "string", + "description": "Sender Phone number. Format this number with a leading '+' and a country code, e.g., +16175551212.", + "default": "", + "x-example": "+12065550100", + "format": "phone" + }, + "accountSid": { + "type": "string", + "description": "Twilio account secret ID.", + "default": "", + "x-example": "<ACCOUNT_SID>" + }, + "authToken": { + "type": "string", + "description": "Twilio authentication token.", + "default": "", + "x-example": "<AUTH_TOKEN>" + }, + "enabled": { + "type": "boolean", + "description": "Set as enabled.", + "x-example": false, + "x-nullable": true + } + }, + "required": [ + "providerId", + "name" + ] + } + } } - ] - }, - "delete": { - "summary": "Delete message", - "operationId": "messagingDelete", + } + } + }, + "\/messaging\/providers\/twilio\/{providerId}": { + "patch": { + "summary": "Update Twilio provider", + "operationId": "messagingUpdateTwilioProvider", "tags": [ "messaging" ], - "description": "Delete a message. If the message is not a draft or scheduled, but has been sent, this will not recall the message.", + "description": "Update a Twilio provider by its unique ID.", "responses": { - "204": { - "description": "No content" + "200": { + "description": "Provider", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/provider" + } + } + } } }, "deprecated": false, "x-appwrite": { - "method": "delete", - "group": "messages", + "method": "updateTwilioProvider", + "group": "providers", "cookies": false, "type": "", - "demo": "messaging\/delete.md", + "demo": "messaging\/update-twilio-provider.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "messages.write", + "scope": "providers.write", "platforms": [ "console", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/messaging\/delete-message.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/messaging\/update-twilio-provider.md", "auth": { "Project": [], "Key": [] @@ -26380,201 +28481,67 @@ ], "parameters": [ { - "name": "messageId", - "description": "Message ID.", + "name": "providerId", + "description": "Provider ID.", "required": true, "schema": { "type": "string", - "x-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": { - "method": "listTargets", - "group": "messages", - "cookies": false, - "type": "", - "demo": "messaging\/list-targets.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "messages.read", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/messaging\/list-message-targets.md", - "auth": { - "Project": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "messageId", - "description": "Message ID.", - "required": true, - "schema": { - "type": "string", - "x-example": "<MESSAGE_ID>" + "x-example": "<PROVIDER_ID>" }, "in": "path" - }, - { - "name": "queries", - "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/queries). Maximum of 100 queries are allowed, each 4096 characters long. You may filter on the following attributes: userId, providerId, identifier, providerType", - "required": false, - "schema": { - "type": "array", - "items": { - "type": "string" - }, - "default": [] - }, - "in": "query" - }, - { - "name": "total", - "description": "When set to false, the total count returned will be 0 and will not be calculated.", - "required": false, - "schema": { - "type": "boolean", - "x-example": false, - "default": true - }, - "in": "query" } - ] - } - }, - "\/messaging\/providers": { - "get": { - "summary": "List providers", - "operationId": "messagingListProviders", - "tags": [ - "messaging" ], - "description": "Get a list of all providers from the current Appwrite project.", - "responses": { - "200": { - "description": "Provider list", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/providerList" + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "Provider name.", + "default": "", + "x-example": "<NAME>" + }, + "enabled": { + "type": "boolean", + "description": "Set as enabled.", + "x-example": false, + "x-nullable": true + }, + "accountSid": { + "type": "string", + "description": "Twilio account secret ID.", + "default": "", + "x-example": "<ACCOUNT_SID>" + }, + "authToken": { + "type": "string", + "description": "Twilio authentication token.", + "default": "", + "x-example": "<AUTH_TOKEN>" + }, + "from": { + "type": "string", + "description": "Sender number.", + "default": "", + "x-example": "<FROM>" + } } } } } - }, - "deprecated": false, - "x-appwrite": { - "method": "listProviders", - "group": "providers", - "cookies": false, - "type": "", - "demo": "messaging\/list-providers.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "providers.read", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/messaging\/list-providers.md", - "auth": { - "Project": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "queries", - "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/queries). Maximum of 100 queries are allowed, each 4096 characters long. You may filter on the following attributes: name, provider, type, enabled", - "required": false, - "schema": { - "type": "array", - "items": { - "type": "string" - }, - "default": [] - }, - "in": "query" - }, - { - "name": "search", - "description": "Search term to filter your list results. Max length: 256 chars.", - "required": false, - "schema": { - "type": "string", - "x-example": "<SEARCH>", - "default": "" - }, - "in": "query" - }, - { - "name": "total", - "description": "When set to false, the total count returned will be 0 and will not be calculated.", - "required": false, - "schema": { - "type": "boolean", - "x-example": false, - "default": true - }, - "in": "query" - } - ] + } } }, - "\/messaging\/providers\/apns": { + "\/messaging\/providers\/vonage": { "post": { - "summary": "Create APNS provider", - "operationId": "messagingCreateApnsProvider", + "summary": "Create Vonage provider", + "operationId": "messagingCreateVonageProvider", "tags": [ "messaging" ], - "description": "Create a new Apple Push Notification service provider.", + "description": "Create a new Vonage provider.", "responses": { "201": { "description": "Provider", @@ -26587,13 +28554,13 @@ } } }, - "deprecated": true, + "deprecated": false, "x-appwrite": { - "method": "createApnsProvider", + "method": "createVonageProvider", "group": "providers", "cookies": false, "type": "", - "demo": "messaging\/create-apns-provider.md", + "demo": "messaging\/create-vonage-provider.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", @@ -26603,82 +28570,8 @@ "server" ], "packaging": false, - "public": false, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/messaging\/create-apns-provider.md", - "deprecated": { - "since": "1.8.0", - "replaceWith": "messaging.createAPNSProvider" - }, - "methods": [ - { - "name": "createApnsProvider", - "namespace": "messaging", - "desc": "", - "auth": { - "Project": [], - "Key": [] - }, - "parameters": [ - "providerId", - "name", - "authKey", - "authKeyId", - "teamId", - "bundleId", - "sandbox", - "enabled" - ], - "required": [ - "providerId", - "name" - ], - "responses": [ - { - "code": 201, - "model": "#\/components\/schemas\/provider" - } - ], - "description": "Create a new Apple Push Notification service provider.", - "demo": "messaging\/create-apns-provider.md", - "public": false, - "deprecated": { - "since": "1.8.0", - "replaceWith": "messaging.createAPNSProvider" - } - }, - { - "name": "createAPNSProvider", - "namespace": "messaging", - "desc": "", - "auth": { - "Project": [], - "Key": [] - }, - "parameters": [ - "providerId", - "name", - "authKey", - "authKeyId", - "teamId", - "bundleId", - "sandbox", - "enabled" - ], - "required": [ - "providerId", - "name" - ], - "responses": [ - { - "code": 201, - "model": "#\/components\/schemas\/provider" - } - ], - "description": "Create a new Apple Push Notification service provider.", - "demo": "messaging\/create-apns-provider.md", - "public": true - } - ], + "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/messaging\/create-vonage-provider.md", "auth": { "Project": [], "Key": [] @@ -26709,35 +28602,24 @@ "description": "Provider name.", "x-example": "<NAME>" }, - "authKey": { - "type": "string", - "description": "APNS authentication key.", - "default": "", - "x-example": "<AUTH_KEY>" - }, - "authKeyId": { + "from": { "type": "string", - "description": "APNS authentication key ID.", + "description": "Sender Phone number. Format this number with a leading '+' and a country code, e.g., +16175551212.", "default": "", - "x-example": "<AUTH_KEY_ID>" + "x-example": "+12065550100", + "format": "phone" }, - "teamId": { + "apiKey": { "type": "string", - "description": "APNS team ID.", + "description": "Vonage API key.", "default": "", - "x-example": "<TEAM_ID>" + "x-example": "<API_KEY>" }, - "bundleId": { + "apiSecret": { "type": "string", - "description": "APNS bundle ID.", + "description": "Vonage API secret.", "default": "", - "x-example": "<BUNDLE_ID>" - }, - "sandbox": { - "type": "boolean", - "description": "Use APNS sandbox environment.", - "default": false, - "x-example": false + "x-example": "<API_SECRET>" }, "enabled": { "type": "boolean", @@ -26756,14 +28638,14 @@ } } }, - "\/messaging\/providers\/apns\/{providerId}": { + "\/messaging\/providers\/vonage\/{providerId}": { "patch": { - "summary": "Update APNS provider", - "operationId": "messagingUpdateApnsProvider", + "summary": "Update Vonage provider", + "operationId": "messagingUpdateVonageProvider", "tags": [ "messaging" ], - "description": "Update a Apple Push Notification service provider by its unique ID.", + "description": "Update a Vonage provider by its unique ID.", "responses": { "200": { "description": "Provider", @@ -26776,13 +28658,13 @@ } } }, - "deprecated": true, + "deprecated": false, "x-appwrite": { - "method": "updateApnsProvider", + "method": "updateVonageProvider", "group": "providers", "cookies": false, "type": "", - "demo": "messaging\/update-apns-provider.md", + "demo": "messaging\/update-vonage-provider.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", @@ -26792,80 +28674,8 @@ "server" ], "packaging": false, - "public": false, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/messaging\/update-apns-provider.md", - "deprecated": { - "since": "1.8.0", - "replaceWith": "messaging.updateAPNSProvider" - }, - "methods": [ - { - "name": "updateApnsProvider", - "namespace": "messaging", - "desc": "", - "auth": { - "Project": [], - "Key": [] - }, - "parameters": [ - "providerId", - "name", - "enabled", - "authKey", - "authKeyId", - "teamId", - "bundleId", - "sandbox" - ], - "required": [ - "providerId" - ], - "responses": [ - { - "code": 200, - "model": "#\/components\/schemas\/provider" - } - ], - "description": "Update a Apple Push Notification service provider by its unique ID.", - "demo": "messaging\/update-apns-provider.md", - "public": false, - "deprecated": { - "since": "1.8.0", - "replaceWith": "messaging.updateAPNSProvider" - } - }, - { - "name": "updateAPNSProvider", - "namespace": "messaging", - "desc": "", - "auth": { - "Project": [], - "Key": [] - }, - "parameters": [ - "providerId", - "name", - "enabled", - "authKey", - "authKeyId", - "teamId", - "bundleId", - "sandbox" - ], - "required": [ - "providerId" - ], - "responses": [ - { - "code": 200, - "model": "#\/components\/schemas\/provider" - } - ], - "description": "Update a Apple Push Notification service provider by its unique ID.", - "demo": "messaging\/update-apns-provider.md", - "public": true - } - ], + "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/messaging\/update-vonage-provider.md", "auth": { "Project": [], "Key": [] @@ -26907,35 +28717,23 @@ "x-example": false, "x-nullable": true }, - "authKey": { - "type": "string", - "description": "APNS authentication key.", - "default": "", - "x-example": "<AUTH_KEY>" - }, - "authKeyId": { + "apiKey": { "type": "string", - "description": "APNS authentication key ID.", + "description": "Vonage API key.", "default": "", - "x-example": "<AUTH_KEY_ID>" + "x-example": "<API_KEY>" }, - "teamId": { + "apiSecret": { "type": "string", - "description": "APNS team ID.", + "description": "Vonage API secret.", "default": "", - "x-example": "<TEAM_ID>" + "x-example": "<API_SECRET>" }, - "bundleId": { + "from": { "type": "string", - "description": "APNS bundle ID.", + "description": "Sender number.", "default": "", - "x-example": "<BUNDLE_ID>" - }, - "sandbox": { - "type": "boolean", - "description": "Use APNS sandbox environment.", - "x-example": false, - "x-nullable": true + "x-example": "<FROM>" } } } @@ -26944,16 +28742,16 @@ } } }, - "\/messaging\/providers\/fcm": { - "post": { - "summary": "Create FCM provider", - "operationId": "messagingCreateFcmProvider", + "\/messaging\/providers\/{providerId}": { + "get": { + "summary": "Get provider", + "operationId": "messagingGetProvider", "tags": [ "messaging" ], - "description": "Create a new Firebase Cloud Messaging provider.", + "description": "Get a provider by its unique ID.\n", "responses": { - "201": { + "200": { "description": "Provider", "content": { "application\/json": { @@ -26964,90 +28762,24 @@ } } }, - "deprecated": true, + "deprecated": false, "x-appwrite": { - "method": "createFcmProvider", + "method": "getProvider", "group": "providers", "cookies": false, "type": "", - "demo": "messaging\/create-fcm-provider.md", + "demo": "messaging\/get-provider.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "providers.write", + "scope": "providers.read", "platforms": [ "console", "server" ], "packaging": false, - "public": false, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/messaging\/create-fcm-provider.md", - "deprecated": { - "since": "1.8.0", - "replaceWith": "messaging.createFCMProvider" - }, - "methods": [ - { - "name": "createFcmProvider", - "namespace": "messaging", - "desc": "", - "auth": { - "Project": [], - "Key": [] - }, - "parameters": [ - "providerId", - "name", - "serviceAccountJSON", - "enabled" - ], - "required": [ - "providerId", - "name" - ], - "responses": [ - { - "code": 201, - "model": "#\/components\/schemas\/provider" - } - ], - "description": "Create a new Firebase Cloud Messaging provider.", - "demo": "messaging\/create-fcm-provider.md", - "public": false, - "deprecated": { - "since": "1.8.0", - "replaceWith": "messaging.createFCMProvider" - } - }, - { - "name": "createFCMProvider", - "namespace": "messaging", - "desc": "", - "auth": { - "Project": [], - "Key": [] - }, - "parameters": [ - "providerId", - "name", - "serviceAccountJSON", - "enabled" - ], - "required": [ - "providerId", - "name" - ], - "responses": [ - { - "code": 201, - "model": "#\/components\/schemas\/provider" - } - ], - "description": "Create a new Firebase Cloud Messaging provider.", - "demo": "messaging\/create-fcm-provider.md", - "public": true - } - ], + "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/messaging\/get-provider.md", "auth": { "Project": [], "Key": [] @@ -27059,76 +28791,38 @@ "Key": [] } ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "providerId": { - "type": "string", - "description": "Provider ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.", - "x-example": "<PROVIDER_ID>", - "x-appwrite": { - "idGenerator": "ID.unique" - } - }, - "name": { - "type": "string", - "description": "Provider name.", - "x-example": "<NAME>" - }, - "serviceAccountJSON": { - "type": "object", - "description": "FCM service account JSON.", - "default": {}, - "x-example": "{}", - "x-nullable": true - }, - "enabled": { - "type": "boolean", - "description": "Set as enabled.", - "x-example": false, - "x-nullable": true - } - }, - "required": [ - "providerId", - "name" - ] - } - } + "parameters": [ + { + "name": "providerId", + "description": "Provider ID.", + "required": true, + "schema": { + "type": "string", + "x-example": "<PROVIDER_ID>" + }, + "in": "path" } - } - } - }, - "\/messaging\/providers\/fcm\/{providerId}": { - "patch": { - "summary": "Update FCM provider", - "operationId": "messagingUpdateFcmProvider", + ] + }, + "delete": { + "summary": "Delete provider", + "operationId": "messagingDeleteProvider", "tags": [ "messaging" ], - "description": "Update a Firebase Cloud Messaging provider by its unique ID.", + "description": "Delete a provider by its unique ID.", "responses": { - "200": { - "description": "Provider", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/provider" - } - } - } + "204": { + "description": "No content" } }, - "deprecated": true, + "deprecated": false, "x-appwrite": { - "method": "updateFcmProvider", + "method": "deleteProvider", "group": "providers", "cookies": false, "type": "", - "demo": "messaging\/update-fcm-provider.md", + "demo": "messaging\/delete-provider.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", @@ -27138,72 +28832,8 @@ "server" ], "packaging": false, - "public": false, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/messaging\/update-fcm-provider.md", - "deprecated": { - "since": "1.8.0", - "replaceWith": "messaging.updateFCMProvider" - }, - "methods": [ - { - "name": "updateFcmProvider", - "namespace": "messaging", - "desc": "", - "auth": { - "Project": [], - "Key": [] - }, - "parameters": [ - "providerId", - "name", - "enabled", - "serviceAccountJSON" - ], - "required": [ - "providerId" - ], - "responses": [ - { - "code": 200, - "model": "#\/components\/schemas\/provider" - } - ], - "description": "Update a Firebase Cloud Messaging provider by its unique ID.", - "demo": "messaging\/update-fcm-provider.md", - "public": false, - "deprecated": { - "since": "1.8.0", - "replaceWith": "messaging.updateFCMProvider" - } - }, - { - "name": "updateFCMProvider", - "namespace": "messaging", - "desc": "", - "auth": { - "Project": [], - "Key": [] - }, - "parameters": [ - "providerId", - "name", - "enabled", - "serviceAccountJSON" - ], - "required": [ - "providerId" - ], - "responses": [ - { - "code": 200, - "model": "#\/components\/schemas\/provider" - } - ], - "description": "Update a Firebase Cloud Messaging provider by its unique ID.", - "demo": "messaging\/update-fcm-provider.md", - "public": true - } - ], + "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/messaging\/delete-provider.md", "auth": { "Project": [], "Key": [] @@ -27226,54 +28856,110 @@ }, "in": "path" } + ] + } + }, + "\/messaging\/topics": { + "get": { + "summary": "List topics", + "operationId": "messagingListTopics", + "tags": [ + "messaging" ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "name": { - "type": "string", - "description": "Provider name.", - "default": "", - "x-example": "<NAME>" - }, - "enabled": { - "type": "boolean", - "description": "Set as enabled.", - "x-example": false, - "x-nullable": true - }, - "serviceAccountJSON": { - "type": "object", - "description": "FCM service account JSON.", - "default": {}, - "x-example": "{}", - "x-nullable": true - } + "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" } } } } - } - } - }, - "\/messaging\/providers\/mailgun": { + }, + "deprecated": false, + "x-appwrite": { + "method": "listTopics", + "group": "topics", + "cookies": false, + "type": "", + "demo": "messaging\/list-topics.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "topics.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/messaging\/list-topics.md", + "auth": { + "Project": [], + "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", + "x-example": "<SEARCH>", + "default": "" + }, + "in": "query" + }, + { + "name": "total", + "description": "When set to false, the total count returned will be 0 and will not be calculated.", + "required": false, + "schema": { + "type": "boolean", + "x-example": false, + "default": true + }, + "in": "query" + } + ] + }, "post": { - "summary": "Create Mailgun provider", - "operationId": "messagingCreateMailgunProvider", + "summary": "Create topic", + "operationId": "messagingCreateTopic", "tags": [ "messaging" ], - "description": "Create a new Mailgun provider.", + "description": "Create a new topic.", "responses": { "201": { - "description": "Provider", + "description": "Topic", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/provider" + "$ref": "#\/components\/schemas\/topic" } } } @@ -27281,22 +28967,22 @@ }, "deprecated": false, "x-appwrite": { - "method": "createMailgunProvider", - "group": "providers", + "method": "createTopic", + "group": "topics", "cookies": false, "type": "", - "demo": "messaging\/create-mailgun-provider.md", + "demo": "messaging\/create-topic.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "providers.write", + "scope": "topics.write", "platforms": [ "console", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/messaging\/create-mailgun-provider.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/messaging\/create-topic.md", "auth": { "Project": [], "Key": [] @@ -27314,72 +29000,33 @@ "schema": { "type": "object", "properties": { - "providerId": { + "topicId": { "type": "string", - "description": "Provider ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.", - "x-example": "<PROVIDER_ID>", + "description": "Topic ID. Choose a custom Topic ID or a new Topic ID.", + "x-example": "<TOPIC_ID>", "x-appwrite": { "idGenerator": "ID.unique" } }, "name": { "type": "string", - "description": "Provider name.", + "description": "Topic Name.", "x-example": "<NAME>" }, - "apiKey": { - "type": "string", - "description": "Mailgun API Key.", - "default": "", - "x-example": "<API_KEY>" - }, - "domain": { - "type": "string", - "description": "Mailgun Domain.", - "default": "", - "x-example": "<DOMAIN>" - }, - "isEuRegion": { - "type": "boolean", - "description": "Set as EU region.", - "x-example": false, - "x-nullable": true - }, - "fromName": { - "type": "string", - "description": "Sender Name.", - "default": "", - "x-example": "<FROM_NAME>" - }, - "fromEmail": { - "type": "string", - "description": "Sender email address.", - "default": "", - "x-example": "email@example.com", - "format": "email" - }, - "replyToName": { - "type": "string", - "description": "Name set in the reply to field for the mail. Default value is sender name. Reply to name must have reply to email as well.", - "default": "", - "x-example": "<REPLY_TO_NAME>" - }, - "replyToEmail": { - "type": "string", - "description": "Email set in the reply to field for the mail. Default value is sender email. Reply to email must have reply to name as well.", - "default": "", - "x-example": "email@example.com", - "format": "email" - }, - "enabled": { - "type": "boolean", - "description": "Set as enabled.", - "x-example": false, - "x-nullable": true + "subscribe": { + "type": "array", + "description": "An array of role strings with subscribe permission. By default all users are granted with any subscribe permission. [learn more about roles](https:\/\/appwrite.io\/docs\/permissions#permission-roles). Maximum of 100 roles are allowed, each 64 characters long.", + "default": [ + "users" + ], + "x-example": "[\"any\"]", + "items": { + "type": "string" + } } }, "required": [ - "providerId", + "topicId", "name" ] } @@ -27388,21 +29035,21 @@ } } }, - "\/messaging\/providers\/mailgun\/{providerId}": { - "patch": { - "summary": "Update Mailgun provider", - "operationId": "messagingUpdateMailgunProvider", + "\/messaging\/topics\/{topicId}": { + "get": { + "summary": "Get topic", + "operationId": "messagingGetTopic", "tags": [ "messaging" ], - "description": "Update a Mailgun provider by its unique ID.", + "description": "Get a topic by its unique ID.\n", "responses": { "200": { - "description": "Provider", + "description": "Topic", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/provider" + "$ref": "#\/components\/schemas\/topic" } } } @@ -27410,22 +29057,22 @@ }, "deprecated": false, "x-appwrite": { - "method": "updateMailgunProvider", - "group": "providers", + "method": "getTopic", + "group": "topics", "cookies": false, "type": "", - "demo": "messaging\/update-mailgun-provider.md", + "demo": "messaging\/get-topic.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "providers.write", + "scope": "topics.read", "platforms": [ "console", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/messaging\/update-mailgun-provider.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/messaging\/get-topic.md", "auth": { "Project": [], "Key": [] @@ -27439,99 +29086,31 @@ ], "parameters": [ { - "name": "providerId", - "description": "Provider ID.", + "name": "topicId", + "description": "Topic ID.", "required": true, "schema": { "type": "string", - "x-example": "<PROVIDER_ID>" + "x-example": "<TOPIC_ID>" }, "in": "path" } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "name": { - "type": "string", - "description": "Provider name.", - "default": "", - "x-example": "<NAME>" - }, - "apiKey": { - "type": "string", - "description": "Mailgun API Key.", - "default": "", - "x-example": "<API_KEY>" - }, - "domain": { - "type": "string", - "description": "Mailgun Domain.", - "default": "", - "x-example": "<DOMAIN>" - }, - "isEuRegion": { - "type": "boolean", - "description": "Set as EU region.", - "x-example": false, - "x-nullable": true - }, - "enabled": { - "type": "boolean", - "description": "Set as enabled.", - "x-example": false, - "x-nullable": true - }, - "fromName": { - "type": "string", - "description": "Sender Name.", - "default": "", - "x-example": "<FROM_NAME>" - }, - "fromEmail": { - "type": "string", - "description": "Sender email address.", - "default": "", - "x-example": "email@example.com", - "format": "email" - }, - "replyToName": { - "type": "string", - "description": "Name set in the reply to field for the mail. Default value is sender name.", - "default": "", - "x-example": "<REPLY_TO_NAME>" - }, - "replyToEmail": { - "type": "string", - "description": "Email set in the reply to field for the mail. Default value is sender email.", - "default": "", - "x-example": "<REPLY_TO_EMAIL>" - } - } - } - } - } - } - } - }, - "\/messaging\/providers\/msg91": { - "post": { - "summary": "Create Msg91 provider", - "operationId": "messagingCreateMsg91Provider", + ] + }, + "patch": { + "summary": "Update topic", + "operationId": "messagingUpdateTopic", "tags": [ "messaging" ], - "description": "Create a new MSG91 provider.", + "description": "Update a topic by its unique ID.\n", "responses": { - "201": { - "description": "Provider", + "200": { + "description": "Topic", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/provider" + "$ref": "#\/components\/schemas\/topic" } } } @@ -27539,125 +29118,22 @@ }, "deprecated": false, "x-appwrite": { - "method": "createMsg91Provider", - "group": "providers", + "method": "updateTopic", + "group": "topics", "cookies": false, "type": "", - "demo": "messaging\/create-msg-91-provider.md", + "demo": "messaging\/update-topic.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "providers.write", + "scope": "topics.write", "platforms": [ "console", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/messaging\/create-msg91-provider.md", - "auth": { - "Project": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "providerId": { - "type": "string", - "description": "Provider ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.", - "x-example": "<PROVIDER_ID>", - "x-appwrite": { - "idGenerator": "ID.unique" - } - }, - "name": { - "type": "string", - "description": "Provider name.", - "x-example": "<NAME>" - }, - "templateId": { - "type": "string", - "description": "Msg91 template ID", - "default": "", - "x-example": "<TEMPLATE_ID>" - }, - "senderId": { - "type": "string", - "description": "Msg91 sender ID.", - "default": "", - "x-example": "<SENDER_ID>" - }, - "authKey": { - "type": "string", - "description": "Msg91 auth key.", - "default": "", - "x-example": "<AUTH_KEY>" - }, - "enabled": { - "type": "boolean", - "description": "Set as enabled.", - "x-example": false, - "x-nullable": true - } - }, - "required": [ - "providerId", - "name" - ] - } - } - } - } - } - }, - "\/messaging\/providers\/msg91\/{providerId}": { - "patch": { - "summary": "Update Msg91 provider", - "operationId": "messagingUpdateMsg91Provider", - "tags": [ - "messaging" - ], - "description": "Update a MSG91 provider by its unique ID.", - "responses": { - "200": { - "description": "Provider", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/provider" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "method": "updateMsg91Provider", - "group": "providers", - "cookies": false, - "type": "", - "demo": "messaging\/update-msg-91-provider.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "providers.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/messaging\/update-msg91-provider.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/messaging\/update-topic.md", "auth": { "Project": [], "Key": [] @@ -27671,12 +29147,12 @@ ], "parameters": [ { - "name": "providerId", - "description": "Provider ID.", + "name": "topicId", + "description": "Topic ID.", "required": true, "schema": { "type": "string", - "x-example": "<PROVIDER_ID>" + "x-example": "<TOPIC_ID>" }, "in": "path" } @@ -27689,79 +29165,55 @@ "properties": { "name": { "type": "string", - "description": "Provider name.", - "default": "", - "x-example": "<NAME>" - }, - "enabled": { - "type": "boolean", - "description": "Set as enabled.", - "x-example": false, + "description": "Topic Name.", + "x-example": "<NAME>", "x-nullable": true }, - "templateId": { - "type": "string", - "description": "Msg91 template ID.", - "default": "", - "x-example": "<TEMPLATE_ID>" - }, - "senderId": { - "type": "string", - "description": "Msg91 sender ID.", - "default": "", - "x-example": "<SENDER_ID>" - }, - "authKey": { - "type": "string", - "description": "Msg91 auth key.", - "default": "", - "x-example": "<AUTH_KEY>" + "subscribe": { + "type": "array", + "description": "An array of role strings with subscribe permission. By default all users are granted with any subscribe permission. [learn more about roles](https:\/\/appwrite.io\/docs\/permissions#permission-roles). Maximum of 100 roles are allowed, each 64 characters long.", + "x-example": "[\"any\"]", + "items": { + "type": "string" + }, + "x-nullable": true } } } } } } - } - }, - "\/messaging\/providers\/resend": { - "post": { - "summary": "Create Resend provider", - "operationId": "messagingCreateResendProvider", + }, + "delete": { + "summary": "Delete topic", + "operationId": "messagingDeleteTopic", "tags": [ "messaging" ], - "description": "Create a new Resend provider.", + "description": "Delete a topic by its unique ID.", "responses": { - "201": { - "description": "Provider", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/provider" - } - } - } + "204": { + "description": "No content" } }, "deprecated": false, "x-appwrite": { - "method": "createResendProvider", - "group": "providers", + "method": "deleteTopic", + "group": "topics", "cookies": false, "type": "", - "demo": "messaging\/create-resend-provider.md", + "demo": "messaging\/delete-topic.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "providers.write", + "scope": "topics.write", "platforms": [ "console", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/messaging\/create-resend-provider.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/messaging\/delete-topic.md", "auth": { "Project": [], "Key": [] @@ -27773,89 +29225,35 @@ "Key": [] } ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "providerId": { - "type": "string", - "description": "Provider ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.", - "x-example": "<PROVIDER_ID>", - "x-appwrite": { - "idGenerator": "ID.unique" - } - }, - "name": { - "type": "string", - "description": "Provider name.", - "x-example": "<NAME>" - }, - "apiKey": { - "type": "string", - "description": "Resend API key.", - "default": "", - "x-example": "<API_KEY>" - }, - "fromName": { - "type": "string", - "description": "Sender Name.", - "default": "", - "x-example": "<FROM_NAME>" - }, - "fromEmail": { - "type": "string", - "description": "Sender email address.", - "default": "", - "x-example": "email@example.com", - "format": "email" - }, - "replyToName": { - "type": "string", - "description": "Name set in the reply to field for the mail. Default value is sender name.", - "default": "", - "x-example": "<REPLY_TO_NAME>" - }, - "replyToEmail": { - "type": "string", - "description": "Email set in the reply to field for the mail. Default value is sender email.", - "default": "", - "x-example": "email@example.com", - "format": "email" - }, - "enabled": { - "type": "boolean", - "description": "Set as enabled.", - "x-example": false, - "x-nullable": true - } - }, - "required": [ - "providerId", - "name" - ] - } - } + "parameters": [ + { + "name": "topicId", + "description": "Topic ID.", + "required": true, + "schema": { + "type": "string", + "x-example": "<TOPIC_ID>" + }, + "in": "path" } - } + ] } }, - "\/messaging\/providers\/resend\/{providerId}": { - "patch": { - "summary": "Update Resend provider", - "operationId": "messagingUpdateResendProvider", + "\/messaging\/topics\/{topicId}\/subscribers": { + "get": { + "summary": "List subscribers", + "operationId": "messagingListSubscribers", "tags": [ "messaging" ], - "description": "Update a Resend provider by its unique ID.", + "description": "Get a list of all subscribers from the current Appwrite project.", "responses": { "200": { - "description": "Provider", + "description": "Subscriber list", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/provider" + "$ref": "#\/components\/schemas\/subscriberList" } } } @@ -27863,22 +29261,22 @@ }, "deprecated": false, "x-appwrite": { - "method": "updateResendProvider", - "group": "providers", + "method": "listSubscribers", + "group": "subscribers", "cookies": false, "type": "", - "demo": "messaging\/update-resend-provider.md", + "demo": "messaging\/list-subscribers.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "providers.write", + "scope": "subscribers.read", "platforms": [ "console", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/messaging\/update-resend-provider.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/messaging\/list-subscribers.md", "auth": { "Project": [], "Key": [] @@ -27892,87 +29290,66 @@ ], "parameters": [ { - "name": "providerId", - "description": "Provider ID.", + "name": "topicId", + "description": "Topic ID. The topic ID subscribed to.", "required": true, "schema": { "type": "string", - "x-example": "<PROVIDER_ID>" + "x-example": "<TOPIC_ID>" }, "in": "path" + }, + { + "name": "queries", + "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/queries). Maximum of 100 queries are allowed, each 4096 characters long. You may filter on the following attributes: targetId, topicId, userId, providerType", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string" + }, + "default": [] + }, + "in": "query" + }, + { + "name": "search", + "description": "Search term to filter your list results. Max length: 256 chars.", + "required": false, + "schema": { + "type": "string", + "x-example": "<SEARCH>", + "default": "" + }, + "in": "query" + }, + { + "name": "total", + "description": "When set to false, the total count returned will be 0 and will not be calculated.", + "required": false, + "schema": { + "type": "boolean", + "x-example": false, + "default": true + }, + "in": "query" } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "name": { - "type": "string", - "description": "Provider name.", - "default": "", - "x-example": "<NAME>" - }, - "enabled": { - "type": "boolean", - "description": "Set as enabled.", - "x-example": false, - "x-nullable": true - }, - "apiKey": { - "type": "string", - "description": "Resend API key.", - "default": "", - "x-example": "<API_KEY>" - }, - "fromName": { - "type": "string", - "description": "Sender Name.", - "default": "", - "x-example": "<FROM_NAME>" - }, - "fromEmail": { - "type": "string", - "description": "Sender email address.", - "default": "", - "x-example": "email@example.com", - "format": "email" - }, - "replyToName": { - "type": "string", - "description": "Name set in the Reply To field for the mail. Default value is Sender Name.", - "default": "", - "x-example": "<REPLY_TO_NAME>" - }, - "replyToEmail": { - "type": "string", - "description": "Email set in the Reply To field for the mail. Default value is Sender Email.", - "default": "", - "x-example": "<REPLY_TO_EMAIL>" - } - } - } - } - } - } - } - }, - "\/messaging\/providers\/sendgrid": { + ] + }, "post": { - "summary": "Create Sendgrid provider", - "operationId": "messagingCreateSendgridProvider", + "summary": "Create subscriber", + "operationId": "messagingCreateSubscriber", "tags": [ "messaging" ], - "description": "Create a new Sendgrid provider.", + "description": "Create a new subscriber.", "responses": { "201": { - "description": "Provider", + "description": "Subscriber", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/provider" + "$ref": "#\/components\/schemas\/subscriber" } } } @@ -27980,94 +29357,71 @@ }, "deprecated": false, "x-appwrite": { - "method": "createSendgridProvider", - "group": "providers", + "method": "createSubscriber", + "group": "subscribers", "cookies": false, "type": "", - "demo": "messaging\/create-sendgrid-provider.md", + "demo": "messaging\/create-subscriber.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "providers.write", + "scope": "subscribers.write", "platforms": [ - "console", - "server" + "server", + "client", + "console" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/messaging\/create-sendgrid-provider.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/messaging\/create-subscriber.md", "auth": { "Project": [], - "Key": [] + "JWT": [] } }, "security": [ { "Project": [], + "JWT": [], + "Session": [], "Key": [] } ], + "parameters": [ + { + "name": "topicId", + "description": "Topic ID. The topic ID to subscribe to.", + "required": true, + "schema": { + "type": "string", + "x-example": "<TOPIC_ID>" + }, + "in": "path" + } + ], "requestBody": { "content": { "application\/json": { "schema": { "type": "object", "properties": { - "providerId": { + "subscriberId": { "type": "string", - "description": "Provider ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.", - "x-example": "<PROVIDER_ID>", + "description": "Subscriber ID. Choose a custom Subscriber ID or a new Subscriber ID.", + "x-example": "<SUBSCRIBER_ID>", "x-appwrite": { "idGenerator": "ID.unique" } }, - "name": { - "type": "string", - "description": "Provider name.", - "x-example": "<NAME>" - }, - "apiKey": { - "type": "string", - "description": "Sendgrid API key.", - "default": "", - "x-example": "<API_KEY>" - }, - "fromName": { - "type": "string", - "description": "Sender Name.", - "default": "", - "x-example": "<FROM_NAME>" - }, - "fromEmail": { - "type": "string", - "description": "Sender email address.", - "default": "", - "x-example": "email@example.com", - "format": "email" - }, - "replyToName": { - "type": "string", - "description": "Name set in the reply to field for the mail. Default value is sender name.", - "default": "", - "x-example": "<REPLY_TO_NAME>" - }, - "replyToEmail": { + "targetId": { "type": "string", - "description": "Email set in the reply to field for the mail. Default value is sender email.", - "default": "", - "x-example": "email@example.com", - "format": "email" - }, - "enabled": { - "type": "boolean", - "description": "Set as enabled.", - "x-example": false, - "x-nullable": true + "description": "Target ID. The target ID to link to the specified Topic ID.", + "x-example": "<TARGET_ID>" } }, "required": [ - "providerId", - "name" + "subscriberId", + "targetId" ] } } @@ -28075,21 +29429,21 @@ } } }, - "\/messaging\/providers\/sendgrid\/{providerId}": { - "patch": { - "summary": "Update Sendgrid provider", - "operationId": "messagingUpdateSendgridProvider", + "\/messaging\/topics\/{topicId}\/subscribers\/{subscriberId}": { + "get": { + "summary": "Get subscriber", + "operationId": "messagingGetSubscriber", "tags": [ "messaging" ], - "description": "Update a Sendgrid provider by its unique ID.", + "description": "Get a subscriber by its unique ID.\n", "responses": { "200": { - "description": "Provider", + "description": "Subscriber", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/provider" + "$ref": "#\/components\/schemas\/subscriber" } } } @@ -28097,22 +29451,22 @@ }, "deprecated": false, "x-appwrite": { - "method": "updateSendgridProvider", - "group": "providers", + "method": "getSubscriber", + "group": "subscribers", "cookies": false, "type": "", - "demo": "messaging\/update-sendgrid-provider.md", + "demo": "messaging\/get-subscriber.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "providers.write", + "scope": "subscribers.read", "platforms": [ "console", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/messaging\/update-sendgrid-provider.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/messaging\/get-subscriber.md", "auth": { "Project": [], "Key": [] @@ -28126,87 +29480,173 @@ ], "parameters": [ { - "name": "providerId", - "description": "Provider ID.", + "name": "topicId", + "description": "Topic ID. The topic ID subscribed to.", "required": true, "schema": { "type": "string", - "x-example": "<PROVIDER_ID>" + "x-example": "<TOPIC_ID>" + }, + "in": "path" + }, + { + "name": "subscriberId", + "description": "Subscriber ID.", + "required": true, + "schema": { + "type": "string", + "x-example": "<SUBSCRIBER_ID>" }, "in": "path" } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "name": { - "type": "string", - "description": "Provider name.", - "default": "", - "x-example": "<NAME>" - }, - "enabled": { - "type": "boolean", - "description": "Set as enabled.", - "x-example": false, - "x-nullable": true - }, - "apiKey": { - "type": "string", - "description": "Sendgrid API key.", - "default": "", - "x-example": "<API_KEY>" - }, - "fromName": { - "type": "string", - "description": "Sender Name.", - "default": "", - "x-example": "<FROM_NAME>" - }, - "fromEmail": { - "type": "string", - "description": "Sender email address.", - "default": "", - "x-example": "email@example.com", - "format": "email" - }, - "replyToName": { - "type": "string", - "description": "Name set in the Reply To field for the mail. Default value is Sender Name.", - "default": "", - "x-example": "<REPLY_TO_NAME>" - }, - "replyToEmail": { - "type": "string", - "description": "Email set in the Reply To field for the mail. Default value is Sender Email.", - "default": "", - "x-example": "<REPLY_TO_EMAIL>" - } + ] + }, + "delete": { + "summary": "Delete subscriber", + "operationId": "messagingDeleteSubscriber", + "tags": [ + "messaging" + ], + "description": "Delete a subscriber by its unique ID.", + "responses": { + "204": { + "description": "No content" + } + }, + "deprecated": false, + "x-appwrite": { + "method": "deleteSubscriber", + "group": "subscribers", + "cookies": false, + "type": "", + "demo": "messaging\/delete-subscriber.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "subscribers.write", + "platforms": [ + "server", + "client", + "console" + ], + "packaging": false, + "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/messaging\/delete-subscriber.md", + "auth": { + "Project": [], + "JWT": [] + } + }, + "security": [ + { + "Project": [], + "JWT": [], + "Session": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "topicId", + "description": "Topic ID. The topic ID subscribed to.", + "required": true, + "schema": { + "type": "string", + "x-example": "<TOPIC_ID>" + }, + "in": "path" + }, + { + "name": "subscriberId", + "description": "Subscriber ID.", + "required": true, + "schema": { + "type": "string", + "x-example": "<SUBSCRIBER_ID>" + }, + "in": "path" + } + ] + } + }, + "\/mongo": { + "get": { + "summary": "List dedicated 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" } } } } - } - } - }, - "\/messaging\/providers\/ses": { + }, + "deprecated": false, + "x-appwrite": { + "method": "list", + "group": "databases", + "cookies": false, + "type": "", + "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 Amazon SES provider", - "operationId": "messagingCreateSesProvider", + "summary": "Create a dedicated database.", + "operationId": "mongoCreate", "tags": [ - "messaging" + "mongo" ], - "description": "Create a new Amazon SES provider.", + "description": "Create a new dedicated database with the chosen engine and configuration. Status will be 'provisioning' until the database is ready.", "responses": { "201": { - "description": "Provider", + "description": "DedicatedDatabase", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/provider" + "$ref": "#\/components\/schemas\/dedicatedDatabase" } } } @@ -28214,22 +29654,21 @@ }, "deprecated": false, "x-appwrite": { - "method": "createSesProvider", - "group": "providers", + "method": "create", + "group": "databases", "cookies": false, "type": "", - "demo": "messaging\/create-ses-provider.md", + "demo": "mongo\/create.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "providers.write", + "scope": "databases.write", "platforms": [ "console", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/messaging\/create-ses-provider.md", "auth": { "Project": [], "Key": [] @@ -28247,72 +29686,114 @@ "schema": { "type": "object", "properties": { - "providerId": { + "databaseId": { "type": "string", - "description": "Provider ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.", - "x-example": "<PROVIDER_ID>", + "description": "Database ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.", + "x-example": "<DATABASE_ID>", "x-appwrite": { "idGenerator": "ID.unique" } }, "name": { "type": "string", - "description": "Provider name.", + "description": "Database display name. Max length: 128 chars.", "x-example": "<NAME>" }, - "accessKey": { + "version": { "type": "string", - "description": "AWS access key ID.", - "default": "", - "x-example": "<ACCESS_KEY>" + "description": "Database engine version. Defaults to latest for selected engine.", + "x-example": "17", + "x-nullable": true }, - "secretKey": { + "specification": { "type": "string", - "description": "AWS secret access key.", - "default": "", - "x-example": "<SECRET_KEY>" + "description": "Specification identifier. Drives the allocated CPU, memory, storage, storage class, and connection ceiling.", + "default": "s-1vcpu-1gb", + "x-example": "<SPECIFICATION>" }, - "region": { - "type": "string", - "description": "AWS region, for example us-east-1.", - "default": "", - "x-example": "<REGION>" + "replicas": { + "type": "integer", + "description": "Number of high availability replicas (0-5). High availability is enabled when greater than 0.", + "default": 0, + "x-example": 0, + "format": "int32" }, - "fromName": { + "syncMode": { "type": "string", - "description": "Sender Name.", - "default": "", - "x-example": "<FROM_NAME>" + "description": "Replication sync mode preference. Allowed values: async, sync, quorum.", + "x-example": "async", + "x-nullable": true }, - "fromEmail": { + "standbyRegion": { "type": "string", - "description": "Sender email address.", - "default": "", - "x-example": "email@example.com", - "format": "email" + "description": "Standby region for a cross-region replica. When set, a replica is provisioned in this region for cross-region high availability. Must differ from the database region.", + "x-example": "<STANDBY_REGION>", + "x-nullable": true }, - "replyToName": { - "type": "string", - "description": "Name set in the reply to field for the mail. Default value is sender name.", - "default": "", - "x-example": "<REPLY_TO_NAME>" + "networkIdleTimeoutSeconds": { + "type": "integer", + "description": "Connection idle timeout in seconds.", + "default": 900, + "x-example": 60, + "format": "int32" }, - "replyToEmail": { - "type": "string", - "description": "Email set in the reply to field for the mail. Default value is sender email.", - "default": "", - "x-example": "email@example.com", - "format": "email" + "networkIPAllowlist": { + "type": "array", + "description": "IP addresses\/CIDR ranges allowed to connect.", + "x-example": null, + "items": { + "type": "string" + }, + "x-nullable": true }, - "enabled": { + "idleTimeoutMinutes": { + "type": "integer", + "description": "Minutes of inactivity before container scales to zero.", + "default": 15, + "x-example": 5, + "format": "int32" + }, + "pitr": { "type": "boolean", - "description": "Set as enabled.", - "x-example": false, - "x-nullable": true + "description": "Enable point-in-time recovery (PITR). Continuously archives changes so the database can be restored to any moment within the retention window.", + "default": true, + "x-example": false + }, + "pitrRetentionDays": { + "type": "integer", + "description": "Number of days to retain PITR data.", + "default": 7, + "x-example": 1, + "format": "int32" + }, + "storageAutoscaling": { + "type": "boolean", + "description": "Enable automatic storage expansion when usage exceeds threshold.", + "default": false, + "x-example": false + }, + "storageAutoscalingThresholdPercent": { + "type": "integer", + "description": "Storage usage percentage (50-95) that triggers automatic expansion.", + "default": 85, + "x-example": 50, + "format": "int32" + }, + "storageAutoscalingMaxGb": { + "type": "integer", + "description": "Maximum storage size in GB for autoscaling. 0 means no limit.", + "default": 0, + "x-example": 0, + "format": "int32" + }, + "api": { + "type": "string", + "description": "Product API that owns this database: tablesdb, documentsdb, or vectorsdb. Omit for a raw database reached directly; its api is its engine. tablesdb\/documentsdb\/vectorsdb databases are reached only through their product APIs.", + "x-example": "tablesdb" } }, "required": [ - "providerId", + "databaseId", "name" ] } @@ -28321,21 +29802,21 @@ } } }, - "\/messaging\/providers\/ses\/{providerId}": { - "patch": { - "summary": "Update Amazon SES provider", - "operationId": "messagingUpdateSesProvider", + "\/mongo\/specifications": { + "get": { + "summary": "List dedicated database specifications.", + "operationId": "mongoListSpecifications", "tags": [ - "messaging" + "mongo" ], - "description": "Update an Amazon SES provider by its unique ID.", + "description": "List the dedicated database specifications available on the current plan. Each specification reports its resource limits, pricing, and whether it is enabled for the organization.", "responses": { "200": { - "description": "Provider", + "description": "SpecificationList", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/provider" + "$ref": "#\/components\/schemas\/dedicatedDatabaseSpecificationList" } } } @@ -28343,22 +29824,21 @@ }, "deprecated": false, "x-appwrite": { - "method": "updateSesProvider", - "group": "providers", + "method": "listSpecifications", + "group": "databases", "cookies": false, "type": "", - "demo": "messaging\/update-ses-provider.md", + "demo": "mongo\/list-specifications.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "providers.write", + "scope": "databases.read", "platforms": [ "console", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/messaging\/update-ses-provider.md", "auth": { "Project": [], "Key": [] @@ -28369,213 +29849,46 @@ "Project": [], "Key": [] } - ], - "parameters": [ - { - "name": "providerId", - "description": "Provider ID.", - "required": true, - "schema": { - "type": "string", - "x-example": "<PROVIDER_ID>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "name": { - "type": "string", - "description": "Provider name.", - "default": "", - "x-example": "<NAME>" - }, - "enabled": { - "type": "boolean", - "description": "Set as enabled.", - "x-example": false, - "x-nullable": true - }, - "accessKey": { - "type": "string", - "description": "AWS access key ID.", - "default": "", - "x-example": "<ACCESS_KEY>" - }, - "secretKey": { - "type": "string", - "description": "AWS secret access key.", - "default": "", - "x-example": "<SECRET_KEY>" - }, - "region": { - "type": "string", - "description": "AWS region, for example us-east-1.", - "default": "", - "x-example": "<REGION>" - }, - "fromName": { - "type": "string", - "description": "Sender Name.", - "default": "", - "x-example": "<FROM_NAME>" - }, - "fromEmail": { - "type": "string", - "description": "Sender email address.", - "default": "", - "x-example": "email@example.com", - "format": "email" - }, - "replyToName": { - "type": "string", - "description": "Name set in the Reply To field for the mail. Default value is Sender Name.", - "default": "", - "x-example": "<REPLY_TO_NAME>" - }, - "replyToEmail": { - "type": "string", - "description": "Email set in the Reply To field for the mail. Default value is Sender Email.", - "default": "", - "x-example": "<REPLY_TO_EMAIL>" - } - } - } - } - } - } + ] } }, - "\/messaging\/providers\/smtp": { - "post": { - "summary": "Create SMTP provider", - "operationId": "messagingCreateSmtpProvider", + "\/mongo\/{databaseId}": { + "get": { + "summary": "Get dedicated database.", + "operationId": "mongoGet", "tags": [ - "messaging" + "mongo" ], - "description": "Create a new SMTP provider.", + "description": "Get a dedicated database by its unique ID. Returns the database configuration and current status.", "responses": { - "201": { - "description": "Provider", + "200": { + "description": "DedicatedDatabase", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/provider" + "$ref": "#\/components\/schemas\/dedicatedDatabase" } } } } }, - "deprecated": true, + "deprecated": false, "x-appwrite": { - "method": "createSmtpProvider", - "group": "providers", + "method": "get", + "group": "databases", "cookies": false, "type": "", - "demo": "messaging\/create-smtp-provider.md", + "demo": "mongo\/get.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "providers.write", + "scope": "databases.read", "platforms": [ "console", "server" ], "packaging": false, - "public": false, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/messaging\/create-smtp-provider.md", - "deprecated": { - "since": "1.8.0", - "replaceWith": "messaging.createSMTPProvider" - }, - "methods": [ - { - "name": "createSmtpProvider", - "namespace": "messaging", - "desc": "", - "auth": { - "Project": [], - "Key": [] - }, - "parameters": [ - "providerId", - "name", - "host", - "port", - "username", - "password", - "encryption", - "autoTLS", - "mailer", - "fromName", - "fromEmail", - "replyToName", - "replyToEmail", - "enabled" - ], - "required": [ - "providerId", - "name", - "host" - ], - "responses": [ - { - "code": 201, - "model": "#\/components\/schemas\/provider" - } - ], - "description": "Create a new SMTP provider.", - "demo": "messaging\/create-smtp-provider.md", - "public": false, - "deprecated": { - "since": "1.8.0", - "replaceWith": "messaging.createSMTPProvider" - } - }, - { - "name": "createSMTPProvider", - "namespace": "messaging", - "desc": "", - "auth": { - "Project": [], - "Key": [] - }, - "parameters": [ - "providerId", - "name", - "host", - "port", - "username", - "password", - "encryption", - "autoTLS", - "mailer", - "fromName", - "fromEmail", - "replyToName", - "replyToEmail", - "enabled" - ], - "required": [ - "providerId", - "name", - "host" - ], - "responses": [ - { - "code": 201, - "model": "#\/components\/schemas\/provider" - } - ], - "description": "Create a new SMTP provider.", - "demo": "messaging\/create-smtp-provider.md", - "public": true - } - ], + "public": true, "auth": { "Project": [], "Key": [] @@ -28587,244 +29900,55 @@ "Key": [] } ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "providerId": { - "type": "string", - "description": "Provider ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.", - "x-example": "<PROVIDER_ID>", - "x-appwrite": { - "idGenerator": "ID.unique" - } - }, - "name": { - "type": "string", - "description": "Provider name.", - "x-example": "<NAME>" - }, - "host": { - "type": "string", - "description": "SMTP hosts. Either a single hostname or multiple semicolon-delimited hostnames. You can also specify a different port for each host such as `smtp1.example.com:25;smtp2.example.com`. You can also specify encryption type, for example: `tls:\/\/smtp1.example.com:587;ssl:\/\/smtp2.example.com:465\"`. Hosts will be tried in order.", - "x-example": "<HOST>" - }, - "port": { - "type": "integer", - "description": "The default SMTP server port.", - "default": 587, - "x-example": 1, - "format": "int32" - }, - "username": { - "type": "string", - "description": "Authentication username.", - "default": "", - "x-example": "<USERNAME>" - }, - "password": { - "type": "string", - "description": "Authentication password.", - "default": "", - "x-example": "password", - "format": "password" - }, - "encryption": { - "type": "string", - "description": "Encryption type. Can be omitted, 'ssl', or 'tls'", - "x-example": "none", - "enum": [ - "none", - "ssl", - "tls" - ], - "x-enum-name": "SmtpEncryption", - "x-enum-keys": [ - "none", - "ssl", - "tls" - ] - }, - "autoTLS": { - "type": "boolean", - "description": "Enable SMTP AutoTLS feature.", - "default": true, - "x-example": false - }, - "mailer": { - "type": "string", - "description": "The value to use for the X-Mailer header.", - "default": "", - "x-example": "<MAILER>" - }, - "fromName": { - "type": "string", - "description": "Sender Name.", - "default": "", - "x-example": "<FROM_NAME>" - }, - "fromEmail": { - "type": "string", - "description": "Sender email address.", - "default": "", - "x-example": "email@example.com", - "format": "email" - }, - "replyToName": { - "type": "string", - "description": "Name set in the reply to field for the mail. Default value is sender name.", - "default": "", - "x-example": "<REPLY_TO_NAME>" - }, - "replyToEmail": { - "type": "string", - "description": "Email set in the reply to field for the mail. Default value is sender email.", - "default": "", - "x-example": "email@example.com", - "format": "email" - }, - "enabled": { - "type": "boolean", - "description": "Set as enabled.", - "x-example": false, - "x-nullable": true - } - }, - "required": [ - "providerId", - "name", - "host" - ] - } - } + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "x-example": "<DATABASE_ID>" + }, + "in": "path" } - } - } - }, - "\/messaging\/providers\/smtp\/{providerId}": { + ] + }, "patch": { - "summary": "Update SMTP provider", - "operationId": "messagingUpdateSmtpProvider", + "summary": "Update dedicated database.", + "operationId": "mongoUpdate", "tags": [ - "messaging" + "mongo" ], - "description": "Update a SMTP provider by its unique ID.", + "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": "Provider", + "description": "DedicatedDatabase", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/provider" + "$ref": "#\/components\/schemas\/dedicatedDatabase" } } } } }, - "deprecated": true, + "deprecated": false, "x-appwrite": { - "method": "updateSmtpProvider", - "group": "providers", + "method": "update", + "group": "databases", "cookies": false, "type": "", - "demo": "messaging\/update-smtp-provider.md", + "demo": "mongo\/update.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "providers.write", + "scope": "databases.write", "platforms": [ "console", "server" ], "packaging": false, - "public": false, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/messaging\/update-smtp-provider.md", - "deprecated": { - "since": "1.8.0", - "replaceWith": "messaging.updateSMTPProvider" - }, - "methods": [ - { - "name": "updateSmtpProvider", - "namespace": "messaging", - "desc": "", - "auth": { - "Project": [], - "Key": [] - }, - "parameters": [ - "providerId", - "name", - "host", - "port", - "username", - "password", - "encryption", - "autoTLS", - "mailer", - "fromName", - "fromEmail", - "replyToName", - "replyToEmail", - "enabled" - ], - "required": [ - "providerId" - ], - "responses": [ - { - "code": 200, - "model": "#\/components\/schemas\/provider" - } - ], - "description": "Update a SMTP provider by its unique ID.", - "demo": "messaging\/update-smtp-provider.md", - "public": false, - "deprecated": { - "since": "1.8.0", - "replaceWith": "messaging.updateSMTPProvider" - } - }, - { - "name": "updateSMTPProvider", - "namespace": "messaging", - "desc": "", - "auth": { - "Project": [], - "Key": [] - }, - "parameters": [ - "providerId", - "name", - "host", - "port", - "username", - "password", - "encryption", - "autoTLS", - "mailer", - "fromName", - "fromEmail", - "replyToName", - "replyToEmail", - "enabled" - ], - "required": [ - "providerId" - ], - "responses": [ - { - "code": 200, - "model": "#\/components\/schemas\/provider" - } - ], - "description": "Update a SMTP provider by its unique ID.", - "demo": "messaging\/update-smtp-provider.md", - "public": true - } - ], + "public": true, "auth": { "Project": [], "Key": [] @@ -28838,12 +29962,12 @@ ], "parameters": [ { - "name": "providerId", - "description": "Provider ID.", + "name": "databaseId", + "description": "Database ID.", "required": true, "schema": { "type": "string", - "x-example": "<PROVIDER_ID>" + "x-example": "<DATABASE_ID>" }, "in": "path" } @@ -28856,140 +29980,192 @@ "properties": { "name": { "type": "string", - "description": "Provider name.", - "default": "", - "x-example": "<NAME>" + "description": "Database display name.", + "x-example": "<NAME>", + "x-nullable": true }, - "host": { + "status": { "type": "string", - "description": "SMTP hosts. Either a single hostname or multiple semicolon-delimited hostnames. You can also specify a different port for each host such as `smtp1.example.com:25;smtp2.example.com`. You can also specify encryption type, for example: `tls:\/\/smtp1.example.com:587;ssl:\/\/smtp2.example.com:465\"`. Hosts will be tried in order.", - "default": "", - "x-example": "<HOST>" + "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.", + "x-example": "ready", + "x-nullable": true }, - "port": { + "specification": { + "type": "string", + "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.", + "x-example": "<SPECIFICATION>", + "x-nullable": true + }, + "replicas": { "type": "integer", - "description": "SMTP port.", - "x-example": 1, + "description": "Number of high availability replicas (0-5). High availability is enabled when greater than 0.", + "x-example": 0, "format": "int32", "x-nullable": true }, - "username": { + "syncMode": { "type": "string", - "description": "Authentication username.", - "default": "", - "x-example": "<USERNAME>" + "description": "Replication sync mode preference. Allowed values: async, sync, quorum.", + "x-example": "async", + "x-nullable": true }, - "password": { - "type": "string", - "description": "Authentication password.", - "default": "", - "x-example": "password", - "format": "password" + "crossRegionReplicas": { + "type": "integer", + "description": "Number of cross-region standby replicas (0-1). Cross-region replication is enabled when greater than 0.", + "x-example": 0, + "format": "int32", + "x-nullable": true }, - "encryption": { + "standbyRegion": { "type": "string", - "description": "Encryption type. Can be 'ssl' or 'tls'", - "x-example": "none", - "enum": [ - "none", - "ssl", - "tls" - ], - "x-enum-name": "SmtpEncryption", - "x-enum-keys": [ - "none", - "ssl", - "tls" - ] + "description": "Standby region for the cross-region replica. Required when enabling cross-region replication and no standby region is already configured. Must differ from the database region.", + "x-example": "<STANDBY_REGION>", + "x-nullable": true }, - "autoTLS": { + "networkIdleTimeoutSeconds": { + "type": "integer", + "description": "Connection idle timeout in seconds (60-86400).", + "x-example": 60, + "format": "int32", + "x-nullable": true + }, + "networkIPAllowlist": { + "type": "array", + "description": "IP addresses\/CIDR ranges allowed to connect.", + "x-example": null, + "items": { + "type": "string" + }, + "x-nullable": true + }, + "idleTimeoutMinutes": { + "type": "integer", + "description": "Minutes before container scales to zero.", + "x-example": 5, + "format": "int32", + "x-nullable": true + }, + "pitr": { "type": "boolean", - "description": "Enable SMTP AutoTLS feature.", + "description": "Enable or disable point-in-time recovery (PITR).", "x-example": false, "x-nullable": true }, - "mailer": { - "type": "string", - "description": "The value to use for the X-Mailer header.", - "default": "", - "x-example": "<MAILER>" + "pitrRetentionDays": { + "type": "integer", + "description": "Days to retain PITR data.", + "x-example": 1, + "format": "int32", + "x-nullable": true }, - "fromName": { - "type": "string", - "description": "Sender Name.", - "default": "", - "x-example": "<FROM_NAME>" + "storageAutoscaling": { + "type": "boolean", + "description": "Enable automatic storage expansion when usage exceeds threshold.", + "x-example": false, + "x-nullable": true }, - "fromEmail": { - "type": "string", - "description": "Sender email address.", - "default": "", - "x-example": "email@example.com", - "format": "email" + "storageAutoscalingThresholdPercent": { + "type": "integer", + "description": "Storage usage percentage (50-95) that triggers automatic expansion.", + "x-example": 50, + "format": "int32", + "x-nullable": true }, - "replyToName": { - "type": "string", - "description": "Name set in the Reply To field for the mail. Default value is Sender Name.", - "default": "", - "x-example": "<REPLY_TO_NAME>" + "storageAutoscalingMaxGb": { + "type": "integer", + "description": "Maximum storage size in GB for autoscaling. 0 means no limit.", + "x-example": 0, + "format": "int32", + "x-nullable": true }, - "replyToEmail": { - "type": "string", - "description": "Email set in the Reply To field for the mail. Default value is Sender Email.", - "default": "", - "x-example": "<REPLY_TO_EMAIL>" + "metricsTraceSampleRate": { + "type": "number", + "description": "Fraction of queries to trace (0.0\u20131.0). Forwarded to the sidecar.", + "x-example": null, + "format": "float", + "x-nullable": true }, - "enabled": { + "metricsSlowQueryLogThresholdMs": { + "type": "integer", + "description": "Threshold in ms above which queries are logged as slow. Forwarded to the sidecar.", + "x-example": 0, + "format": "int32", + "x-nullable": true + }, + "sqlApiEnabled": { "type": "boolean", - "description": "Set as enabled.", + "description": "Enable the SQL API sidecar for this database.", "x-example": false, "x-nullable": true + }, + "sqlApiAllowedStatements": { + "type": "array", + "description": "Statement types the SQL API accepts. Allowed values: SELECT, INSERT, UPDATE, DELETE, CREATE, ALTER, DROP, TRUNCATE, GRANT, REVOKE.", + "x-example": null, + "items": { + "type": "string" + }, + "x-nullable": true + }, + "sqlApiMaxRows": { + "type": "integer", + "description": "Maximum rows returned per SQL API execution (1-1000000).", + "x-example": 1, + "format": "int32", + "x-nullable": true + }, + "sqlApiMaxBytes": { + "type": "integer", + "description": "Maximum serialised SQL API result payload in bytes (1024-104857600).", + "x-example": 1024, + "format": "int32", + "x-nullable": true + }, + "sqlApiTimeoutSeconds": { + "type": "integer", + "description": "Per-call SQL API execution timeout in seconds (1-300).", + "x-example": 1, + "format": "int32", + "x-nullable": true } } } } } } - } - }, - "\/messaging\/providers\/telesign": { - "post": { - "summary": "Create Telesign provider", - "operationId": "messagingCreateTelesignProvider", + }, + "delete": { + "summary": "Delete dedicated database.", + "operationId": "mongoDelete", "tags": [ - "messaging" + "mongo" ], - "description": "Create a new Telesign provider.", + "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": { - "201": { - "description": "Provider", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/provider" - } - } - } + "204": { + "description": "No content" } }, "deprecated": false, "x-appwrite": { - "method": "createTelesignProvider", - "group": "providers", + "method": "delete", + "group": "databases", "cookies": false, "type": "", - "demo": "messaging\/create-telesign-provider.md", + "demo": "mongo\/delete.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "providers.write", + "scope": "databases.write", "platforms": [ "console", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/messaging\/create-telesign-provider.md", + "produces": [ + "application\/json" + ], "auth": { "Project": [], "Key": [] @@ -29001,76 +30177,35 @@ "Key": [] } ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "providerId": { - "type": "string", - "description": "Provider ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.", - "x-example": "<PROVIDER_ID>", - "x-appwrite": { - "idGenerator": "ID.unique" - } - }, - "name": { - "type": "string", - "description": "Provider name.", - "x-example": "<NAME>" - }, - "from": { - "type": "string", - "description": "Sender Phone number. Format this number with a leading '+' and a country code, e.g., +16175551212.", - "default": "", - "x-example": "+12065550100", - "format": "phone" - }, - "customerId": { - "type": "string", - "description": "Telesign customer ID.", - "default": "", - "x-example": "<CUSTOMER_ID>" - }, - "apiKey": { - "type": "string", - "description": "Telesign API key.", - "default": "", - "x-example": "<API_KEY>" - }, - "enabled": { - "type": "boolean", - "description": "Set as enabled.", - "x-example": false, - "x-nullable": true - } - }, - "required": [ - "providerId", - "name" - ] - } - } + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "x-example": "<DATABASE_ID>" + }, + "in": "path" } - } + ] } }, - "\/messaging\/providers\/telesign\/{providerId}": { - "patch": { - "summary": "Update Telesign provider", - "operationId": "messagingUpdateTelesignProvider", + "\/mongo\/{databaseId}\/backups": { + "get": { + "summary": "List database backups.", + "operationId": "mongoListBackups", "tags": [ - "messaging" + "mongo" ], - "description": "Update a Telesign provider by its unique ID.", + "description": "List all backups for a dedicated database. Results can be filtered by status and type.", "responses": { "200": { - "description": "Provider", + "description": "BackupList", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/provider" + "$ref": "#\/components\/schemas\/dedicatedDatabaseBackupList" } } } @@ -29078,22 +30213,21 @@ }, "deprecated": false, "x-appwrite": { - "method": "updateTelesignProvider", - "group": "providers", + "method": "listBackups", + "group": "databases", "cookies": false, "type": "", - "demo": "messaging\/update-telesign-provider.md", + "demo": "mongo\/list-backups.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "providers.write", + "scope": "databases.read", "platforms": [ "console", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/messaging\/update-telesign-provider.md", "auth": { "Project": [], "Key": [] @@ -29107,74 +30241,44 @@ ], "parameters": [ { - "name": "providerId", - "description": "Provider ID.", + "name": "databaseId", + "description": "Database ID.", "required": true, "schema": { "type": "string", - "x-example": "<PROVIDER_ID>" + "x-example": "<DATABASE_ID>" }, "in": "path" + }, + { + "name": "queries", + "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/queries). Maximum of 100 queries are allowed, each 4096 characters long. You may filter on the following attributes: status, type, databaseId", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string" + }, + "default": [] + }, + "in": "query" } + ] + }, + "post": { + "summary": "Create a database backup.", + "operationId": "mongoCreateBackup", + "tags": [ + "mongo" ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "name": { - "type": "string", - "description": "Provider name.", - "default": "", - "x-example": "<NAME>" - }, - "enabled": { - "type": "boolean", - "description": "Set as enabled.", - "x-example": false, - "x-nullable": true - }, - "customerId": { - "type": "string", - "description": "Telesign customer ID.", - "default": "", - "x-example": "<CUSTOMER_ID>" - }, - "apiKey": { - "type": "string", - "description": "Telesign API key.", - "default": "", - "x-example": "<API_KEY>" - }, - "from": { - "type": "string", - "description": "Sender number.", - "default": "", - "x-example": "<FROM>" - } - } - } - } - } - } - } - }, - "\/messaging\/providers\/textmagic": { - "post": { - "summary": "Create Textmagic provider", - "operationId": "messagingCreateTextmagicProvider", - "tags": [ - "messaging" - ], - "description": "Create a new Textmagic provider.", + "description": "Create a manual backup of a dedicated database. The backup will be created asynchronously and its status can be checked via the get backup endpoint.", "responses": { - "201": { - "description": "Provider", + "202": { + "description": "Backup", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/provider" + "$ref": "#\/components\/schemas\/dedicatedDatabaseBackup" } } } @@ -29182,22 +30286,21 @@ }, "deprecated": false, "x-appwrite": { - "method": "createTextmagicProvider", - "group": "providers", + "method": "createBackup", + "group": "databases", "cookies": false, "type": "", - "demo": "messaging\/create-textmagic-provider.md", + "demo": "mongo\/create-backup.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "providers.write", + "scope": "databases.write", "platforms": [ "console", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/messaging\/create-textmagic-provider.md", "auth": { "Project": [], "Key": [] @@ -29209,76 +30312,52 @@ "Key": [] } ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "x-example": "<DATABASE_ID>" + }, + "in": "path" + } + ], "requestBody": { "content": { "application\/json": { "schema": { "type": "object", "properties": { - "providerId": { - "type": "string", - "description": "Provider ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.", - "x-example": "<PROVIDER_ID>", - "x-appwrite": { - "idGenerator": "ID.unique" - } - }, - "name": { - "type": "string", - "description": "Provider name.", - "x-example": "<NAME>" - }, - "from": { - "type": "string", - "description": "Sender Phone number. Format this number with a leading '+' and a country code, e.g., +16175551212.", - "default": "", - "x-example": "+12065550100", - "format": "phone" - }, - "username": { - "type": "string", - "description": "Textmagic username.", - "default": "", - "x-example": "<USERNAME>" - }, - "apiKey": { + "type": { "type": "string", - "description": "Textmagic apiKey.", - "default": "", - "x-example": "<API_KEY>" - }, - "enabled": { - "type": "boolean", - "description": "Set as enabled.", - "x-example": false, - "x-nullable": true + "description": "Backup type: full or incremental.", + "default": "full", + "x-example": "full" } - }, - "required": [ - "providerId", - "name" - ] + } } } } } } }, - "\/messaging\/providers\/textmagic\/{providerId}": { - "patch": { - "summary": "Update Textmagic provider", - "operationId": "messagingUpdateTextmagicProvider", + "\/mongo\/{databaseId}\/backups\/policies": { + "get": { + "summary": "List database backup policies.", + "operationId": "mongoListBackupPolicies", "tags": [ - "messaging" + "mongo" ], - "description": "Update a Textmagic provider by its unique ID.", + "description": "List scheduled backup policies for a dedicated database.", "responses": { "200": { - "description": "Provider", + "description": "Backup policy list", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/provider" + "$ref": "#\/components\/schemas\/backupPolicyList" } } } @@ -29286,22 +30365,21 @@ }, "deprecated": false, "x-appwrite": { - "method": "updateTextmagicProvider", - "group": "providers", + "method": "listBackupPolicies", + "group": "databases", "cookies": false, "type": "", - "demo": "messaging\/update-textmagic-provider.md", + "demo": "mongo\/list-backup-policies.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "providers.write", + "scope": "databases.read", "platforms": [ "console", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/messaging\/update-textmagic-provider.md", "auth": { "Project": [], "Key": [] @@ -29315,74 +30393,44 @@ ], "parameters": [ { - "name": "providerId", - "description": "Provider ID.", + "name": "databaseId", + "description": "Database ID.", "required": true, "schema": { "type": "string", - "x-example": "<PROVIDER_ID>" + "x-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" } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "name": { - "type": "string", - "description": "Provider name.", - "default": "", - "x-example": "<NAME>" - }, - "enabled": { - "type": "boolean", - "description": "Set as enabled.", - "x-example": false, - "x-nullable": true - }, - "username": { - "type": "string", - "description": "Textmagic username.", - "default": "", - "x-example": "<USERNAME>" - }, - "apiKey": { - "type": "string", - "description": "Textmagic apiKey.", - "default": "", - "x-example": "<API_KEY>" - }, - "from": { - "type": "string", - "description": "Sender number.", - "default": "", - "x-example": "<FROM>" - } - } - } - } - } - } - } - }, - "\/messaging\/providers\/twilio": { + ] + }, "post": { - "summary": "Create Twilio provider", - "operationId": "messagingCreateTwilioProvider", + "summary": "Create a database backup policy.", + "operationId": "mongoCreateBackupPolicy", "tags": [ - "messaging" + "mongo" ], - "description": "Create a new Twilio provider.", + "description": "Create a scheduled backup policy for a dedicated database.", "responses": { "201": { - "description": "Provider", + "description": "backup", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/provider" + "$ref": "#\/components\/schemas\/backupPolicy" } } } @@ -29390,22 +30438,21 @@ }, "deprecated": false, "x-appwrite": { - "method": "createTwilioProvider", - "group": "providers", + "method": "createBackupPolicy", + "group": "databases", "cookies": false, "type": "", - "demo": "messaging\/create-twilio-provider.md", + "demo": "mongo\/create-backup-policy.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "providers.write", + "scope": "databases.write", "platforms": [ "console", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/messaging\/create-twilio-provider.md", "auth": { "Project": [], "Key": [] @@ -29417,54 +30464,66 @@ "Key": [] } ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "x-example": "<DATABASE_ID>" + }, + "in": "path" + } + ], "requestBody": { "content": { "application\/json": { "schema": { "type": "object", "properties": { - "providerId": { + "policyId": { "type": "string", - "description": "Provider ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.", - "x-example": "<PROVIDER_ID>", + "description": "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.", + "x-example": "<POLICY_ID>", "x-appwrite": { "idGenerator": "ID.unique" } }, "name": { "type": "string", - "description": "Provider name.", + "description": "Policy name. Max length: 128 chars.", "x-example": "<NAME>" }, - "from": { + "schedule": { "type": "string", - "description": "Sender Phone number. Format this number with a leading '+' and a country code, e.g., +16175551212.", - "default": "", - "x-example": "+12065550100", - "format": "phone" + "description": "Schedule CRON syntax.", + "x-example": null }, - "accountSid": { - "type": "string", - "description": "Twilio account secret ID.", - "default": "", - "x-example": "<ACCOUNT_SID>" + "retention": { + "type": "integer", + "description": "Days to keep backups before deletion.", + "x-example": 1, + "format": "int32" }, - "authToken": { + "type": { "type": "string", - "description": "Twilio authentication token.", - "default": "", - "x-example": "<AUTH_TOKEN>" + "description": "Backup type: full or incremental.", + "default": "full", + "x-example": "full" }, "enabled": { "type": "boolean", - "description": "Set as enabled.", - "x-example": false, - "x-nullable": true + "description": "Is policy enabled? When disabled, no backups will be taken.", + "default": true, + "x-example": false } }, "required": [ - "providerId", - "name" + "policyId", + "name", + "schedule", + "retention" ] } } @@ -29472,21 +30531,21 @@ } } }, - "\/messaging\/providers\/twilio\/{providerId}": { - "patch": { - "summary": "Update Twilio provider", - "operationId": "messagingUpdateTwilioProvider", + "\/mongo\/{databaseId}\/backups\/policies\/{policyId}": { + "get": { + "summary": "Get a database backup policy.", + "operationId": "mongoGetBackupPolicy", "tags": [ - "messaging" + "mongo" ], - "description": "Update a Twilio provider by its unique ID.", + "description": "Get a scheduled backup policy for a dedicated database.", "responses": { "200": { - "description": "Provider", + "description": "backup", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/provider" + "$ref": "#\/components\/schemas\/backupPolicy" } } } @@ -29494,22 +30553,21 @@ }, "deprecated": false, "x-appwrite": { - "method": "updateTwilioProvider", - "group": "providers", + "method": "getBackupPolicy", + "group": "databases", "cookies": false, "type": "", - "demo": "messaging\/update-twilio-provider.md", + "demo": "mongo\/get-backup-policy.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "providers.write", + "scope": "databases.read", "platforms": [ "console", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/messaging\/update-twilio-provider.md", "auth": { "Project": [], "Key": [] @@ -29523,74 +30581,41 @@ ], "parameters": [ { - "name": "providerId", - "description": "Provider ID.", + "name": "databaseId", + "description": "Database ID.", "required": true, "schema": { "type": "string", - "x-example": "<PROVIDER_ID>" + "x-example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "policyId", + "description": "Policy ID.", + "required": true, + "schema": { + "type": "string", + "x-example": "<POLICY_ID>" }, "in": "path" } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "name": { - "type": "string", - "description": "Provider name.", - "default": "", - "x-example": "<NAME>" - }, - "enabled": { - "type": "boolean", - "description": "Set as enabled.", - "x-example": false, - "x-nullable": true - }, - "accountSid": { - "type": "string", - "description": "Twilio account secret ID.", - "default": "", - "x-example": "<ACCOUNT_SID>" - }, - "authToken": { - "type": "string", - "description": "Twilio authentication token.", - "default": "", - "x-example": "<AUTH_TOKEN>" - }, - "from": { - "type": "string", - "description": "Sender number.", - "default": "", - "x-example": "<FROM>" - } - } - } - } - } - } - } - }, - "\/messaging\/providers\/vonage": { - "post": { - "summary": "Create Vonage provider", - "operationId": "messagingCreateVonageProvider", + ] + }, + "patch": { + "summary": "Update a database backup policy.", + "operationId": "mongoUpdateBackupPolicy", "tags": [ - "messaging" + "mongo" ], - "description": "Create a new Vonage provider.", + "description": "Update a scheduled backup policy for a dedicated database.", "responses": { - "201": { - "description": "Provider", + "200": { + "description": "backup", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/provider" + "$ref": "#\/components\/schemas\/backupPolicy" } } } @@ -29598,22 +30623,21 @@ }, "deprecated": false, "x-appwrite": { - "method": "createVonageProvider", - "group": "providers", + "method": "updateBackupPolicy", + "group": "databases", "cookies": false, "type": "", - "demo": "messaging\/create-vonage-provider.md", + "demo": "mongo\/update-backup-policy.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "providers.write", + "scope": "databases.write", "platforms": [ "console", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/messaging\/create-vonage-provider.md", "auth": { "Project": [], "Key": [] @@ -29625,99 +30649,96 @@ "Key": [] } ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "x-example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "policyId", + "description": "Policy ID.", + "required": true, + "schema": { + "type": "string", + "x-example": "<POLICY_ID>" + }, + "in": "path" + } + ], "requestBody": { "content": { "application\/json": { "schema": { "type": "object", "properties": { - "providerId": { - "type": "string", - "description": "Provider ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.", - "x-example": "<PROVIDER_ID>", - "x-appwrite": { - "idGenerator": "ID.unique" - } - }, "name": { "type": "string", - "description": "Provider name.", - "x-example": "<NAME>" - }, - "from": { - "type": "string", - "description": "Sender Phone number. Format this number with a leading '+' and a country code, e.g., +16175551212.", - "default": "", - "x-example": "+12065550100", - "format": "phone" + "description": "Policy name. Max length: 128 chars.", + "x-example": "<NAME>", + "x-nullable": true }, - "apiKey": { + "schedule": { "type": "string", - "description": "Vonage API key.", - "default": "", - "x-example": "<API_KEY>" + "description": "Schedule CRON syntax.", + "x-example": null }, - "apiSecret": { - "type": "string", - "description": "Vonage API secret.", - "default": "", - "x-example": "<API_SECRET>" + "retention": { + "type": "integer", + "description": "Days to keep backups before deletion.", + "x-example": 1, + "format": "int32", + "x-nullable": true }, "enabled": { "type": "boolean", - "description": "Set as enabled.", + "description": "Is policy enabled? When disabled, no backups will be taken.", "x-example": false, "x-nullable": true } - }, - "required": [ - "providerId", - "name" - ] + } } } } } - } - }, - "\/messaging\/providers\/vonage\/{providerId}": { - "patch": { - "summary": "Update Vonage provider", - "operationId": "messagingUpdateVonageProvider", + }, + "delete": { + "summary": "Delete a database backup policy.", + "operationId": "mongoDeleteBackupPolicy", "tags": [ - "messaging" + "mongo" ], - "description": "Update a Vonage provider by its unique ID.", + "description": "Delete a scheduled backup policy for a dedicated database. Backups already taken by the policy are kept until their retention expires.", "responses": { - "200": { - "description": "Provider", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/provider" - } - } - } + "204": { + "description": "No content" } }, "deprecated": false, "x-appwrite": { - "method": "updateVonageProvider", - "group": "providers", + "method": "deleteBackupPolicy", + "group": "databases", "cookies": false, "type": "", - "demo": "messaging\/update-vonage-provider.md", + "demo": "mongo\/delete-backup-policy.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "providers.write", + "scope": "databases.write", "platforms": [ "console", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/messaging\/update-vonage-provider.md", + "produces": [ + "application\/json" + ], "auth": { "Project": [], "Key": [] @@ -29731,74 +30752,43 @@ ], "parameters": [ { - "name": "providerId", - "description": "Provider ID.", + "name": "databaseId", + "description": "Database ID.", "required": true, "schema": { "type": "string", - "x-example": "<PROVIDER_ID>" + "x-example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "policyId", + "description": "Policy ID.", + "required": true, + "schema": { + "type": "string", + "x-example": "<POLICY_ID>" }, "in": "path" } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "name": { - "type": "string", - "description": "Provider name.", - "default": "", - "x-example": "<NAME>" - }, - "enabled": { - "type": "boolean", - "description": "Set as enabled.", - "x-example": false, - "x-nullable": true - }, - "apiKey": { - "type": "string", - "description": "Vonage API key.", - "default": "", - "x-example": "<API_KEY>" - }, - "apiSecret": { - "type": "string", - "description": "Vonage API secret.", - "default": "", - "x-example": "<API_SECRET>" - }, - "from": { - "type": "string", - "description": "Sender number.", - "default": "", - "x-example": "<FROM>" - } - } - } - } - } - } + ] } }, - "\/messaging\/providers\/{providerId}": { - "get": { - "summary": "Get provider", - "operationId": "messagingGetProvider", + "\/mongo\/{databaseId}\/backups\/storage": { + "put": { + "summary": "Update database backup storage.", + "operationId": "mongoUpdateBackupStorage", "tags": [ - "messaging" + "mongo" ], - "description": "Get a provider by its unique ID.\n", + "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": "Provider", + "description": "BackupStorageConfig", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/provider" + "$ref": "#\/components\/schemas\/dedicatedDatabaseBackupStorage" } } } @@ -29806,22 +30796,21 @@ }, "deprecated": false, "x-appwrite": { - "method": "getProvider", - "group": "providers", + "method": "updateBackupStorage", + "group": "databases", "cookies": false, "type": "", - "demo": "messaging\/get-provider.md", + "demo": "mongo\/update-backup-storage.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "providers.read", + "scope": "databases.write", "platforms": [ "console", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/messaging\/get-provider.md", "auth": { "Project": [], "Key": [] @@ -29835,24 +30824,151 @@ ], "parameters": [ { - "name": "providerId", - "description": "Provider ID.", + "name": "databaseId", + "description": "Database ID.", "required": true, "schema": { "type": "string", - "x-example": "<PROVIDER_ID>" + "x-example": "<DATABASE_ID>" }, "in": "path" } - ] + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "provider": { + "type": "string", + "description": "Storage provider for off-cluster backups. Allowed values: s3 (Amazon S3 or S3-compatible), gcs (Google Cloud Storage), azure (Azure Blob Storage).", + "x-example": "s3" + }, + "bucket": { + "type": "string", + "description": "Storage bucket or container name.", + "x-example": "<BUCKET>" + }, + "region": { + "type": "string", + "description": "Storage region.", + "default": "", + "x-example": "<REGION>" + }, + "prefix": { + "type": "string", + "description": "Object key prefix for backups.", + "default": "backups\/", + "x-example": "<PREFIX>" + }, + "endpoint": { + "type": "string", + "description": "Custom endpoint for S3-compatible storage (e.g. MinIO).", + "default": "", + "x-example": "<ENDPOINT>" + }, + "accessKey": { + "type": "string", + "description": "Access key or client ID for authentication.", + "x-example": "<ACCESS_KEY>" + }, + "secretKey": { + "type": "string", + "description": "Secret key or service account JSON for authentication.", + "x-example": "<SECRET_KEY>" + } + }, + "required": [ + "provider", + "bucket", + "accessKey", + "secretKey" + ] + } + } + } + } + } + }, + "\/mongo\/{databaseId}\/backups\/{backupId}": { + "get": { + "summary": "Get a database 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": { + "method": "getBackup", + "group": "databases", + "cookies": false, + "type": "", + "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", + "x-example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "backupId", + "description": "Backup ID.", + "required": true, + "schema": { + "type": "string", + "x-example": "<BACKUP_ID>" + }, + "in": "path" + } + ] }, "delete": { - "summary": "Delete provider", - "operationId": "messagingDeleteProvider", + "summary": "Delete a database backup.", + "operationId": "mongoDeleteBackup", "tags": [ - "messaging" + "mongo" ], - "description": "Delete a provider by its unique ID.", + "description": "Delete a database backup. This will permanently remove the backup from storage and cannot be undone.", "responses": { "204": { "description": "No content" @@ -29860,22 +30976,24 @@ }, "deprecated": false, "x-appwrite": { - "method": "deleteProvider", - "group": "providers", + "method": "deleteBackup", + "group": "databases", "cookies": false, "type": "", - "demo": "messaging\/delete-provider.md", + "demo": "mongo\/delete-backup.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "providers.write", + "scope": "databases.write", "platforms": [ "console", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/messaging\/delete-provider.md", + "produces": [ + "application\/json" + ], "auth": { "Project": [], "Key": [] @@ -29889,33 +31007,43 @@ ], "parameters": [ { - "name": "providerId", - "description": "Provider ID.", + "name": "databaseId", + "description": "Database ID.", "required": true, "schema": { "type": "string", - "x-example": "<PROVIDER_ID>" + "x-example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "backupId", + "description": "Backup ID.", + "required": true, + "schema": { + "type": "string", + "x-example": "<BACKUP_ID>" }, "in": "path" } ] } }, - "\/messaging\/topics": { + "\/mongo\/{databaseId}\/branches": { "get": { - "summary": "List topics", - "operationId": "messagingListTopics", + "summary": "List database branches.", + "operationId": "mongoListBranches", "tags": [ - "messaging" + "mongo" ], - "description": "Get a list of all topics from the current Appwrite project.", + "description": "List all ephemeral branches for a dedicated database. Returns branch metadata including ID, name, namespace, and expiration time.", "responses": { "200": { - "description": "Topic list", + "description": "BranchList", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/topicList" + "$ref": "#\/components\/schemas\/dedicatedDatabaseBranchList" } } } @@ -29923,22 +31051,21 @@ }, "deprecated": false, "x-appwrite": { - "method": "listTopics", - "group": "topics", + "method": "listBranches", + "group": "databases", "cookies": false, "type": "", - "demo": "messaging\/list-topics.md", + "demo": "mongo\/list-branches.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "topics.read", + "scope": "databases.read", "platforms": [ "console", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/messaging\/list-topics.md", "auth": { "Project": [], "Key": [] @@ -29952,56 +31079,31 @@ ], "parameters": [ { - "name": "queries", - "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/queries). Maximum of 100 queries are allowed, each 4096 characters long. You may filter on the following attributes: name, description, emailTotal, smsTotal, pushTotal", - "required": false, - "schema": { - "type": "array", - "items": { - "type": "string" - }, - "default": [] - }, - "in": "query" - }, - { - "name": "search", - "description": "Search term to filter your list results. Max length: 256 chars.", - "required": false, + "name": "databaseId", + "description": "Database ID.", + "required": true, "schema": { "type": "string", - "x-example": "<SEARCH>", - "default": "" - }, - "in": "query" - }, - { - "name": "total", - "description": "When set to false, the total count returned will be 0 and will not be calculated.", - "required": false, - "schema": { - "type": "boolean", - "x-example": false, - "default": true + "x-example": "<DATABASE_ID>" }, - "in": "query" + "in": "path" } ] }, "post": { - "summary": "Create topic", - "operationId": "messagingCreateTopic", + "summary": "Create a database branch.", + "operationId": "mongoCreateBranch", "tags": [ - "messaging" + "mongo" ], - "description": "Create a new topic.", + "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": { - "201": { - "description": "Topic", + "202": { + "description": "DedicatedDatabase", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/topic" + "$ref": "#\/components\/schemas\/dedicatedDatabase" } } } @@ -30009,22 +31111,21 @@ }, "deprecated": false, "x-appwrite": { - "method": "createTopic", - "group": "topics", + "method": "createBranch", + "group": "databases", "cookies": false, "type": "", - "demo": "messaging\/create-topic.md", + "demo": "mongo\/create-branch.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "topics.write", + "scope": "databases.write", "platforms": [ "console", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/messaging\/create-topic.md", "auth": { "Project": [], "Key": [] @@ -30036,62 +31137,62 @@ "Key": [] } ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "x-example": "<DATABASE_ID>" + }, + "in": "path" + } + ], "requestBody": { "content": { "application\/json": { "schema": { "type": "object", "properties": { - "topicId": { + "branchId": { "type": "string", - "description": "Topic ID. Choose a custom Topic ID or a new Topic ID.", - "x-example": "<TOPIC_ID>", + "description": "Branch ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.", + "default": "", + "x-example": "<BRANCH_ID>", "x-appwrite": { "idGenerator": "ID.unique" } }, - "name": { - "type": "string", - "description": "Topic Name.", - "x-example": "<NAME>" - }, - "subscribe": { - "type": "array", - "description": "An array of role strings with subscribe permission. By default all users are granted with any subscribe permission. [learn more about roles](https:\/\/appwrite.io\/docs\/permissions#permission-roles). Maximum of 100 roles are allowed, each 64 characters long.", - "default": [ - "users" - ], - "x-example": "[\"any\"]", - "items": { - "type": "string" - } + "ttl": { + "type": "integer", + "description": "Time-to-live in seconds before the branch expires. Min 300 (5 min), max 604800 (7 days). Default: 86400 (24h).", + "default": 86400, + "x-example": 300, + "format": "int32" } - }, - "required": [ - "topicId", - "name" - ] + } } } } } } }, - "\/messaging\/topics\/{topicId}": { - "get": { - "summary": "Get topic", - "operationId": "messagingGetTopic", + "\/mongo\/{databaseId}\/branches\/{branchId}": { + "delete": { + "summary": "Delete a database branch.", + "operationId": "mongoDeleteBranch", "tags": [ - "messaging" + "mongo" ], - "description": "Get a topic by its unique ID.\n", + "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": { - "200": { - "description": "Topic", + "202": { + "description": "DedicatedDatabase", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/topic" + "$ref": "#\/components\/schemas\/dedicatedDatabase" } } } @@ -30099,22 +31200,21 @@ }, "deprecated": false, "x-appwrite": { - "method": "getTopic", - "group": "topics", + "method": "deleteBranch", + "group": "databases", "cookies": false, "type": "", - "demo": "messaging\/get-topic.md", + "demo": "mongo\/delete-branch.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "topics.read", + "scope": "databases.write", "platforms": [ "console", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/messaging\/get-topic.md", "auth": { "Project": [], "Key": [] @@ -30128,31 +31228,43 @@ ], "parameters": [ { - "name": "topicId", - "description": "Topic ID.", + "name": "databaseId", + "description": "Database ID.", "required": true, "schema": { "type": "string", - "x-example": "<TOPIC_ID>" + "x-example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "branchId", + "description": "Branch ID.", + "required": true, + "schema": { + "type": "string", + "x-example": "<BRANCH_ID>" }, "in": "path" } ] - }, + } + }, + "\/mongo\/{databaseId}\/credentials": { "patch": { - "summary": "Update topic", - "operationId": "messagingUpdateTopic", + "summary": "Rotate database credentials.", + "operationId": "mongoUpdateCredentials", "tags": [ - "messaging" + "mongo" ], - "description": "Update a topic by its unique ID.\n", + "description": "Rotate the primary connection credentials for a dedicated database. Generates a new password and updates the database atomically. Previous credentials stop working immediately. Returns the database with a refreshed connection string carrying the new password.", "responses": { "200": { - "description": "Topic", + "description": "DedicatedDatabase", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/topic" + "$ref": "#\/components\/schemas\/dedicatedDatabase" } } } @@ -30160,22 +31272,21 @@ }, "deprecated": false, "x-appwrite": { - "method": "updateTopic", - "group": "topics", + "method": "updateCredentials", + "group": "databases", "cookies": false, "type": "", - "demo": "messaging\/update-topic.md", + "demo": "mongo\/update-credentials.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "topics.write", + "scope": "databases.write", "platforms": [ "console", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/messaging\/update-topic.md", "auth": { "Project": [], "Key": [] @@ -30189,73 +31300,55 @@ ], "parameters": [ { - "name": "topicId", - "description": "Topic ID.", + "name": "databaseId", + "description": "Database ID.", "required": true, "schema": { "type": "string", - "x-example": "<TOPIC_ID>" + "x-example": "<DATABASE_ID>" }, "in": "path" } + ] + } + }, + "\/mongo\/{databaseId}\/failovers": { + "post": { + "summary": "Trigger manual failover.", + "operationId": "mongoCreateFailover", + "tags": [ + "mongo" ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "name": { - "type": "string", - "description": "Topic Name.", - "x-example": "<NAME>", - "x-nullable": true - }, - "subscribe": { - "type": "array", - "description": "An array of role strings with subscribe permission. By default all users are granted with any subscribe permission. [learn more about roles](https:\/\/appwrite.io\/docs\/permissions#permission-roles). Maximum of 100 roles are allowed, each 64 characters long.", - "x-example": "[\"any\"]", - "items": { - "type": "string" - }, - "x-nullable": true - } + "description": "Trigger a manual failover for a dedicated database with high availability enabled. Promotes a replica to primary. The failover runs asynchronously; poll the database document for status updates.", + "responses": { + "202": { + "description": "DedicatedDatabase", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/dedicatedDatabase" } } } } - } - }, - "delete": { - "summary": "Delete topic", - "operationId": "messagingDeleteTopic", - "tags": [ - "messaging" - ], - "description": "Delete a topic by its unique ID.", - "responses": { - "204": { - "description": "No content" - } }, "deprecated": false, "x-appwrite": { - "method": "deleteTopic", - "group": "topics", + "method": "createFailover", + "group": "databases", "cookies": false, "type": "", - "demo": "messaging\/delete-topic.md", + "demo": "mongo\/create-failover.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "topics.write", + "scope": "databases.write", "platforms": [ "console", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/messaging\/delete-topic.md", "auth": { "Project": [], "Key": [] @@ -30269,33 +31362,50 @@ ], "parameters": [ { - "name": "topicId", - "description": "Topic ID.", + "name": "databaseId", + "description": "Database ID.", "required": true, "schema": { "type": "string", - "x-example": "<TOPIC_ID>" + "x-example": "<DATABASE_ID>" }, "in": "path" } - ] + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "targetReplicaId": { + "type": "string", + "description": "Target replica ID to promote. If not specified, the healthiest replica is selected.", + "x-example": "<TARGET_REPLICA_ID>", + "x-nullable": true + } + } + } + } + } + } } }, - "\/messaging\/topics\/{topicId}\/subscribers": { - "get": { - "summary": "List subscribers", - "operationId": "messagingListSubscribers", + "\/mongo\/{databaseId}\/maintenance": { + "patch": { + "summary": "Update database maintenance window.", + "operationId": "mongoUpdateMaintenance", "tags": [ - "messaging" + "mongo" ], - "description": "Get a list of all subscribers from the current Appwrite project.", + "description": "Update the maintenance window for a dedicated database. Maintenance operations like minor version upgrades will be performed during this window.", "responses": { "200": { - "description": "Subscriber list", + "description": "DedicatedDatabase", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/subscriberList" + "$ref": "#\/components\/schemas\/dedicatedDatabase" } } } @@ -30303,22 +31413,21 @@ }, "deprecated": false, "x-appwrite": { - "method": "listSubscribers", - "group": "subscribers", + "method": "updateMaintenance", + "group": "databases", "cookies": false, "type": "", - "demo": "messaging\/list-subscribers.md", + "demo": "mongo\/update-maintenance.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "subscribers.read", + "scope": "databases.write", "platforms": [ "console", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/messaging\/list-subscribers.md", "auth": { "Project": [], "Key": [] @@ -30332,66 +31441,59 @@ ], "parameters": [ { - "name": "topicId", - "description": "Topic ID. The topic ID subscribed to.", + "name": "databaseId", + "description": "Database ID.", "required": true, "schema": { "type": "string", - "x-example": "<TOPIC_ID>" + "x-example": "<DATABASE_ID>" }, "in": "path" - }, - { - "name": "queries", - "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/queries). Maximum of 100 queries are allowed, each 4096 characters long. You may filter on the following attributes: targetId, topicId, userId, providerType", - "required": false, - "schema": { - "type": "array", - "items": { - "type": "string" - }, - "default": [] - }, - "in": "query" - }, - { - "name": "search", - "description": "Search term to filter your list results. Max length: 256 chars.", - "required": false, - "schema": { - "type": "string", - "x-example": "<SEARCH>", - "default": "" - }, - "in": "query" - }, - { - "name": "total", - "description": "When set to false, the total count returned will be 0 and will not be calculated.", - "required": false, - "schema": { - "type": "boolean", - "x-example": false, - "default": true - }, - "in": "query" } - ] - }, + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "day": { + "type": "string", + "description": "Day of the week for the maintenance window. Allowed values: sun, mon, tue, wed, thu, fri, sat.", + "x-example": "sun" + }, + "hourUtc": { + "type": "integer", + "description": "Hour in UTC (0-23) for maintenance window start.", + "x-example": 0, + "format": "int32" + } + }, + "required": [ + "day", + "hourUtc" + ] + } + } + } + } + } + }, + "\/mongo\/{databaseId}\/migrations": { "post": { - "summary": "Create subscriber", - "operationId": "messagingCreateSubscriber", + "summary": "Migrate database between shared and dedicated.", + "operationId": "mongoCreateMigration", "tags": [ - "messaging" + "mongo" ], - "description": "Create a new subscriber.", + "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": { - "201": { - "description": "Subscriber", + "200": { + "description": "DedicatedDatabase", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/subscriber" + "$ref": "#\/components\/schemas\/dedicatedDatabase" } } } @@ -30399,44 +31501,40 @@ }, "deprecated": false, "x-appwrite": { - "method": "createSubscriber", - "group": "subscribers", + "method": "createMigration", + "group": "databases", "cookies": false, "type": "", - "demo": "messaging\/create-subscriber.md", + "demo": "mongo\/create-migration.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "subscribers.write", + "scope": "databases.write", "platforms": [ - "server", - "client", - "console" + "console", + "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/messaging\/create-subscriber.md", "auth": { "Project": [], - "JWT": [] + "Key": [] } }, "security": [ { "Project": [], - "JWT": [], - "Session": [], "Key": [] } ], "parameters": [ { - "name": "topicId", - "description": "Topic ID. The topic ID to subscribe to.", + "name": "databaseId", + "description": "Database ID.", "required": true, "schema": { "type": "string", - "x-example": "<TOPIC_ID>" + "x-example": "<DATABASE_ID>" }, "in": "path" } @@ -30447,23 +31545,20 @@ "schema": { "type": "object", "properties": { - "subscriberId": { + "targetType": { "type": "string", - "description": "Subscriber ID. Choose a custom Subscriber ID or a new Subscriber ID.", - "x-example": "<SUBSCRIBER_ID>", - "x-appwrite": { - "idGenerator": "ID.unique" - } + "description": "Target database type to migrate to. Allowed values: shared (serverless, scales to zero when idle), dedicated (always-on with persistent resources).", + "x-example": "shared" }, - "targetId": { + "specification": { "type": "string", - "description": "Target ID. The target ID to link to the specified Topic ID.", - "x-example": "<TARGET_ID>" + "description": "Target specification to provision when migrating to dedicated. Ignored for shared. Defaults to the database's current specification.", + "x-example": "<SPECIFICATION>", + "x-nullable": true } }, "required": [ - "subscriberId", - "targetId" + "targetType" ] } } @@ -30471,21 +31566,21 @@ } } }, - "\/messaging\/topics\/{topicId}\/subscribers\/{subscriberId}": { + "\/mongo\/{databaseId}\/pitr": { "get": { - "summary": "Get subscriber", - "operationId": "messagingGetSubscriber", + "summary": "Get PITR recovery windows.", + "operationId": "mongoGetPitr", "tags": [ - "messaging" + "mongo" ], - "description": "Get a subscriber by its unique ID.\n", + "description": "Get available point-in-time recovery windows for a dedicated database. Returns the earliest and latest recovery points.", "responses": { "200": { - "description": "Subscriber", + "description": "PITRWindows", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/subscriber" + "$ref": "#\/components\/schemas\/dedicatedDatabasePITRWindows" } } } @@ -30493,22 +31588,21 @@ }, "deprecated": false, "x-appwrite": { - "method": "getSubscriber", - "group": "subscribers", + "method": "getPitr", + "group": "databases", "cookies": false, "type": "", - "demo": "messaging\/get-subscriber.md", + "demo": "mongo\/get-pitr.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "subscribers.read", + "scope": "databases.read", "platforms": [ "console", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/messaging\/get-subscriber.md", "auth": { "Project": [], "Key": [] @@ -30522,110 +31616,33 @@ ], "parameters": [ { - "name": "topicId", - "description": "Topic ID. The topic ID subscribed to.", - "required": true, - "schema": { - "type": "string", - "x-example": "<TOPIC_ID>" - }, - "in": "path" - }, - { - "name": "subscriberId", - "description": "Subscriber ID.", + "name": "databaseId", + "description": "Database ID.", "required": true, "schema": { "type": "string", - "x-example": "<SUBSCRIBER_ID>" - }, - "in": "path" - } - ] - }, - "delete": { - "summary": "Delete subscriber", - "operationId": "messagingDeleteSubscriber", - "tags": [ - "messaging" - ], - "description": "Delete a subscriber by its unique ID.", - "responses": { - "204": { - "description": "No content" - } - }, - "deprecated": false, - "x-appwrite": { - "method": "deleteSubscriber", - "group": "subscribers", - "cookies": false, - "type": "", - "demo": "messaging\/delete-subscriber.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "subscribers.write", - "platforms": [ - "server", - "client", - "console" - ], - "packaging": false, - "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/messaging\/delete-subscriber.md", - "auth": { - "Project": [], - "JWT": [] - } - }, - "security": [ - { - "Project": [], - "JWT": [], - "Session": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "topicId", - "description": "Topic ID. The topic ID subscribed to.", - "required": true, - "schema": { - "type": "string", - "x-example": "<TOPIC_ID>" - }, - "in": "path" - }, - { - "name": "subscriberId", - "description": "Subscriber ID.", - "required": true, - "schema": { - "type": "string", - "x-example": "<SUBSCRIBER_ID>" + "x-example": "<DATABASE_ID>" }, "in": "path" } ] } }, - "\/oauth2\/{project_id}\/approve": { - "post": { - "summary": "Approve OAuth2", - "operationId": "oauth2Approve", + "\/mongo\/{databaseId}\/replicas": { + "get": { + "summary": "Get replica status.", + "operationId": "mongoGetReplicas", "tags": [ - "oauth2" + "mongo" ], - "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.", + "description": "Get high availability status for a dedicated database. Returns replica statuses, replication lag, and sync mode.", "responses": { "200": { - "description": "OAuth2 Approve", + "description": "Replicas", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/oauth2Approve" + "$ref": "#\/components\/schemas\/dedicatedDatabaseReplicas" } } } @@ -30633,94 +31650,61 @@ }, "deprecated": false, "x-appwrite": { - "method": "approve", - "group": null, + "method": "getReplicas", + "group": "databases", "cookies": false, "type": "", - "demo": "oauth2\/approve.md", - "rate-limit": 10, - "rate-time": 60, - "rate-key": "ip:{ip},userId:{userId}", - "scope": "oauth2.write", + "demo": "mongo\/get-replicas.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "databases.read", "platforms": [ "console", - "client", "server" ], "packaging": false, "public": true, "auth": { - "ProjectPath": [], - "Session": [] + "Project": [], + "Key": [] } }, "security": [ { - "ProjectPath": [], - "Session": [], - "JWT": [] + "Project": [], + "Key": [] } ], "parameters": [ { - "name": "project_id", - "description": "Project ID in which OAuth2 client exists.", + "name": "databaseId", + "description": "Database ID.", "required": true, "schema": { "type": "string", - "x-example": "<PROJECT_ID>" + "x-example": "<DATABASE_ID>" }, "in": "path" } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "grant_id": { - "type": "string", - "description": "Grant ID made during authorization, provided to consent screen in URL search params.", - "x-example": "<GRANT_ID>" - }, - "authorization_details": { - "type": "string", - "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.", - "default": "", - "x-example": "<AUTHORIZATION_DETAILS>" - }, - "scope": { - "type": "string", - "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.", - "default": "", - "x-example": "<SCOPE>" - } - }, - "required": [ - "grant_id" - ] - } - } - } - } + ] } }, - "\/oauth2\/{project_id}\/authorize": { + "\/mongo\/{databaseId}\/restorations": { "get": { - "summary": "OAuth2 Authorize", - "operationId": "oauth2Authorize", + "summary": "List database restorations.", + "operationId": "mongoListRestorations", "tags": [ - "oauth2" + "mongo" ], - "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.", + "description": "List all restorations for a dedicated database. Results can be filtered by status and type.", "responses": { "200": { - "description": "OAuth2 Authorize", + "description": "Dedicated database restorations list", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/oauth2Authorize" + "$ref": "#\/components\/schemas\/dedicatedDatabaseRestorationList" } } } @@ -30728,206 +31712,103 @@ }, "deprecated": false, "x-appwrite": { - "method": "authorize", - "group": null, + "method": "listRestorations", + "group": "databases", "cookies": false, "type": "", - "demo": "oauth2\/authorize.md", - "rate-limit": 60, - "rate-time": 60, + "demo": "mongo\/list-restorations.md", + "rate-limit": 0, + "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "public", + "scope": "databases.read", "platforms": [ "console", - "client", "server" ], "packaging": false, "public": true, "auth": { - "ProjectPath": [], - "Session": [] + "Project": [], + "Key": [] } }, "security": [ { - "ProjectPath": [], - "Session": [], - "JWT": [] + "Project": [], + "Key": [] } ], "parameters": [ { - "name": "project_id", - "description": "Project ID in which OAuth2 client exists.", + "name": "databaseId", + "description": "Database ID.", "required": true, "schema": { "type": "string", - "x-example": "<PROJECT_ID>" + "x-example": "<DATABASE_ID>" }, "in": "path" }, { - "name": "client_id", - "description": "OAuth2 client ID.", - "required": false, - "schema": { - "type": "string", - "x-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", - "x-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", - "x-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", - "x-example": "<SCOPE>", - "default": "" - }, - "in": "query" - }, - { - "name": "state", - "description": "OAuth2 state. You receive this back in the redirect URI.", - "required": false, - "schema": { - "type": "string", - "x-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", - "x-example": "<NONCE>", - "default": "" - }, - "in": "query" - }, - { - "name": "code_challenge", - "description": "PKCE code challenge. Required when OAuth2 app is public.", - "required": false, - "schema": { - "type": "string", - "x-example": "<CODE_CHALLENGE>", - "default": "" - }, - "in": "query" - }, - { - "name": "code_challenge_method", - "description": "PKCE code challenge method. Required when OAuth2 app is public.", + "name": "status", + "description": "Filter by restoration status.", "required": false, "schema": { "type": "string", - "x-example": "s256", - "default": "" + "x-example": "pending" }, "in": "query" }, { - "name": "prompt", - "description": "OIDC prompt parameter for customization of consent screen. Space-separated list of: none, login, consent, select_account.", + "name": "type", + "description": "Filter by restoration type.", "required": false, "schema": { "type": "string", - "x-example": "<PROMPT>", - "default": "" + "x-example": "backup" }, "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.", + "name": "limit", + "description": "Maximum number of restorations to return.", "required": false, "schema": { "type": "integer", "format": "int32", - "x-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", - "x-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": [] + "x-example": 1, + "default": 25 }, "in": "query" }, { - "name": "request_uri", - "description": "OAuth2 authorization request handle returned by the pushed authorization request endpoint.", + "name": "offset", + "description": "Number of restorations to skip.", "required": false, "schema": { - "type": "string", - "x-example": "<REQUEST_URI>", - "default": "" + "type": "integer", + "format": "int32", + "x-example": 0, + "default": 0 }, "in": "query" } ] - } - }, - "\/oauth2\/{project_id}\/device_authorization": { + }, "post": { - "summary": "OAuth2 Device Authorization", - "operationId": "oauth2CreateDeviceAuthorization", + "summary": "Create a database restoration.", + "operationId": "mongoCreateRestoration", "tags": [ - "oauth2" + "mongo" ], - "description": "Start the OAuth2 Device Authorization Grant. Returns the device code, user code, verification URL, expiration, and polling interval.", + "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": { - "200": { - "description": "OAuth2 Device Authorization", + "202": { + "description": "Restoration", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/oauth2DeviceAuthorization" + "$ref": "#\/components\/schemas\/dedicatedDatabaseRestoration" } } } @@ -30935,43 +31816,40 @@ }, "deprecated": false, "x-appwrite": { - "method": "createDeviceAuthorization", - "group": null, + "method": "createRestoration", + "group": "databases", "cookies": false, "type": "", - "demo": "oauth2\/create-device-authorization.md", - "rate-limit": 60, - "rate-time": 60, + "demo": "mongo\/create-restoration.md", + "rate-limit": 0, + "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "public", + "scope": "databases.write", "platforms": [ "console", - "client", "server" ], "packaging": false, "public": true, "auth": { - "ProjectPath": [], - "Session": [] + "Project": [], + "Key": [] } }, "security": [ { - "ProjectPath": [], - "Session": [], - "JWT": [], + "Project": [], "Key": [] } ], "parameters": [ { - "name": "project_id", - "description": "Project ID in which OAuth2 client exists.", + "name": "databaseId", + "description": "Database ID.", "required": true, "schema": { "type": "string", - "x-example": "<PROJECT_ID>" + "x-example": "<DATABASE_ID>" }, "in": "path" } @@ -30982,29 +31860,24 @@ "schema": { "type": "object", "properties": { - "client_id": { - "type": "string", - "description": "OAuth2 client ID.", - "default": "", - "x-example": "<CLIENT_ID>" - }, - "scope": { + "type": { "type": "string", - "description": "Space-separated OAuth2 scopes. Can include project scopes, and built-in scopes: `openid`, `email`, `profile`.", - "default": "", - "x-example": "<SCOPE>" + "description": "Restoration type. Allowed values: backup, pitr. Use \"backup\" to restore from a specific backup, or \"pitr\" for point-in-time recovery.", + "default": "backup", + "x-example": "backup" }, - "authorization_details": { + "backupId": { "type": "string", - "description": "Rich authorization request. JSON array of objects, each with a `type` and project-defined fields", - "default": "", - "x-example": "<AUTHORIZATION_DETAILS>" + "description": "Backup ID to restore from (required for backup type).", + "x-example": "<BACKUP_ID>", + "x-nullable": true }, - "resource": { + "targetTime": { "type": "string", - "description": "RFC 8707 resource indicator URI or URI list. Each value must be an absolute URI without a fragment.", - "default": [], - "x-example": null + "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.", + "x-example": "2020-10-15T06:38:00.000+00:00", + "format": "datetime", + "x-nullable": true } } } @@ -31013,21 +31886,21 @@ } } }, - "\/oauth2\/{project_id}\/grants": { - "post": { - "summary": "Create OAuth2 Grant", - "operationId": "oauth2CreateGrant", + "\/mongo\/{databaseId}\/restorations\/{restorationId}": { + "get": { + "summary": "Get a database restoration.", + "operationId": "mongoGetRestoration", "tags": [ - "oauth2" + "mongo" ], - "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.", + "description": "Get details of a specific database restoration including its status, type, and timestamps.", "responses": { - "201": { - "description": "OAuth2 Grant", + "200": { + "description": "Restoration", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/oauth2Grant" + "$ref": "#\/components\/schemas\/dedicatedDatabaseRestoration" } } } @@ -31035,82 +31908,71 @@ }, "deprecated": false, "x-appwrite": { - "method": "createGrant", - "group": null, + "method": "getRestoration", + "group": "databases", "cookies": false, "type": "", - "demo": "oauth2\/create-grant.md", - "rate-limit": 10, - "rate-time": 60, - "rate-key": "ip:{ip},userId:{userId}", - "scope": "oauth2.write", + "demo": "mongo\/get-restoration.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "databases.read", "platforms": [ "console", - "client", "server" ], "packaging": false, "public": true, "auth": { - "ProjectPath": [], - "Session": [] + "Project": [], + "Key": [] } }, "security": [ { - "ProjectPath": [], - "Session": [], - "JWT": [] + "Project": [], + "Key": [] } ], "parameters": [ { - "name": "project_id", - "description": "Project ID in which OAuth2 client exists.", + "name": "databaseId", + "description": "Database ID.", "required": true, "schema": { "type": "string", - "x-example": "<PROJECT_ID>" + "x-example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "restorationId", + "description": "Restoration ID.", + "required": true, + "schema": { + "type": "string", + "x-example": "<RESTORATION_ID>" }, "in": "path" } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "user_code": { - "type": "string", - "description": "User code displayed on the device.", - "x-example": "<USER_CODE>" - } - }, - "required": [ - "user_code" - ] - } - } - } - } + ] } }, - "\/oauth2\/{project_id}\/grants\/{grant_id}": { + "\/mongo\/{databaseId}\/status": { "get": { - "summary": "Get OAuth2 Grant", - "operationId": "oauth2GetGrant", + "summary": "Get database status.", + "operationId": "mongoGetStatus", "tags": [ - "oauth2" + "mongo" ], - "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.", + "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": "OAuth2 Grant", + "description": "Status", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/oauth2Grant" + "$ref": "#\/components\/schemas\/databaseStatus" } } } @@ -31118,74 +31980,61 @@ }, "deprecated": false, "x-appwrite": { - "method": "getGrant", - "group": null, + "method": "getStatus", + "group": "databases", "cookies": false, "type": "", - "demo": "oauth2\/get-grant.md", - "rate-limit": 60, - "rate-time": 60, - "rate-key": "ip:{ip},userId:{userId}", - "scope": "oauth2.read", + "demo": "mongo\/get-status.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "databases.read", "platforms": [ "console", - "client", "server" ], "packaging": false, "public": true, "auth": { - "ProjectPath": [], - "Session": [] + "Project": [], + "Key": [] } }, "security": [ { - "ProjectPath": [], - "Session": [], - "JWT": [], + "Project": [], "Key": [] } ], "parameters": [ { - "name": "project_id", - "description": "Project ID in which OAuth2 client that created grant during authorization exists.", - "required": true, - "schema": { - "type": "string", - "x-example": "<PROJECT_ID>" - }, - "in": "path" - }, - { - "name": "grant_id", - "description": "Grant ID made during authorization, provided to consent screen in URL search params.", + "name": "databaseId", + "description": "Database ID.", "required": true, "schema": { "type": "string", - "x-example": "<GRANT_ID>" + "x-example": "<DATABASE_ID>" }, "in": "path" } ] } }, - "\/oauth2\/{project_id}\/organizations": { - "get": { - "summary": "OAuth2 List Accessible Organizations", - "operationId": "oauth2ListOrganizations", + "\/mongo\/{databaseId}\/upgrades": { + "post": { + "summary": "Upgrade database version.", + "operationId": "mongoCreateUpgrade", "tags": [ - "oauth2" + "mongo" ], - "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.", + "description": "Upgrade a dedicated database to a new engine version. Uses blue-green deployment for zero-downtime cutover.", "responses": { "200": { - "description": "OAuth2 accessible organizations list", + "description": "DedicatedDatabase", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/oauth2OrganizationList" + "$ref": "#\/components\/schemas\/dedicatedDatabase" } } } @@ -31193,99 +32042,143 @@ }, "deprecated": false, "x-appwrite": { - "method": "listOrganizations", - "group": null, + "method": "createUpgrade", + "group": "databases", "cookies": false, "type": "", - "demo": "oauth2\/list-organizations.md", - "rate-limit": 120, - "rate-time": 60, + "demo": "mongo\/create-upgrade.md", + "rate-limit": 0, + "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "oauth2.organizations.read", + "scope": "databases.write", "platforms": [ "console", - "client", "server" ], "packaging": false, "public": true, "auth": { - "ProjectPath": [], - "Session": [] + "Project": [], + "Key": [] } }, "security": [ { - "ProjectPath": [], - "Session": [], - "JWT": [], + "Project": [], "Key": [] } ], "parameters": [ { - "name": "project_id", - "description": "Project ID of the console project the OAuth2 access token was issued for.", + "name": "databaseId", + "description": "Database ID.", "required": true, "schema": { "type": "string", - "x-example": "<PROJECT_ID>" + "x-example": "<DATABASE_ID>" }, "in": "path" - }, - { - "name": "limit", - "description": "Maximum number of organizations to return. Between 1 and 5000.", - "required": false, - "schema": { - "type": "integer", - "format": "int32", - "x-example": 1, - "default": 25 - }, - "in": "query" - }, + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "targetVersion": { + "type": "string", + "description": "Target engine version to upgrade to.", + "x-example": "<TARGET_VERSION>" + } + }, + "required": [ + "targetVersion" + ] + } + } + } + } + } + }, + "\/mysql": { + "get": { + "summary": "List dedicated 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": { + "method": "list", + "group": "databases", + "cookies": false, + "type": "", + "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": [ { - "name": "offset", - "description": "Number of organizations to skip before returning results. Used for pagination.", - "required": false, - "schema": { - "type": "integer", - "format": "int32", - "x-example": 0, - "default": 0 - }, - "in": "query" - }, + "Project": [], + "Key": [] + } + ], + "parameters": [ { - "name": "search", - "description": "Search term to filter your list results. Max length: 256 chars.", + "name": "queries", + "description": "Array of query strings.", "required": false, "schema": { - "type": "string", - "x-example": "<SEARCH>", - "default": "" + "type": "array", + "items": { + "type": "string" + }, + "default": [] }, "in": "query" } ] - } - }, - "\/oauth2\/{project_id}\/par": { + }, "post": { - "summary": "OAuth2 PAR", - "operationId": "oauth2CreatePAR", + "summary": "Create a dedicated database.", + "operationId": "mysqlCreate", "tags": [ - "oauth2" + "mysql" ], - "description": "Store an OAuth2 authorization request server-side and receive a short-lived request_uri handle for the authorize endpoint.", + "description": "Create a new dedicated database with the chosen engine and configuration. Status will be 'provisioning' until the database is ready.", "responses": { "201": { - "description": "OAuth2 PAR", + "description": "DedicatedDatabase", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/oauth2PAR" + "$ref": "#\/components\/schemas\/dedicatedDatabase" } } } @@ -31293,129 +32186,147 @@ }, "deprecated": false, "x-appwrite": { - "method": "createPAR", - "group": null, + "method": "create", + "group": "databases", "cookies": false, "type": "", - "demo": "oauth2\/create-par.md", - "rate-limit": 60, - "rate-time": 60, + "demo": "mysql\/create.md", + "rate-limit": 0, + "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "public", + "scope": "databases.write", "platforms": [ "console", - "client", "server" ], "packaging": false, "public": true, "auth": { - "ProjectPath": [], - "Session": [] + "Project": [], + "Key": [] } }, "security": [ { - "ProjectPath": [], - "Session": [], - "JWT": [], + "Project": [], "Key": [] } ], - "parameters": [ - { - "name": "project_id", - "description": "Project ID in which OAuth2 client exists.", - "required": true, - "schema": { - "type": "string", - "x-example": "<PROJECT_ID>" - }, - "in": "path" - } - ], "requestBody": { "content": { "application\/json": { "schema": { "type": "object", "properties": { - "client_id": { + "databaseId": { "type": "string", - "description": "OAuth2 client ID.", - "x-example": "<CLIENT_ID>" + "description": "Database ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.", + "x-example": "<DATABASE_ID>", + "x-appwrite": { + "idGenerator": "ID.unique" + } }, - "redirect_uri": { + "name": { "type": "string", - "description": "Redirect URI where visitor will be redirected after authorization, whether successful or not.", - "x-example": "https:\/\/example.com", - "format": "url" + "description": "Database display name. Max length: 128 chars.", + "x-example": "<NAME>" }, - "response_type": { + "version": { "type": "string", - "description": "OAuth2 \/ OIDC response type.", - "x-example": "code" + "description": "Database engine version. Defaults to latest for selected engine.", + "x-example": "17", + "x-nullable": true }, - "scope": { + "specification": { "type": "string", - "description": "Space-separated OAuth2 scopes. Can include project scopes, and built-in scopes: `openid`, `email`, `profile`, `phone`.", - "x-example": "<SCOPE>" + "description": "Specification identifier. Drives the allocated CPU, memory, storage, storage class, and connection ceiling.", + "default": "s-1vcpu-1gb", + "x-example": "<SPECIFICATION>" }, - "state": { - "type": "string", - "description": "OAuth2 state. You receive this back in the redirect URI.", - "default": "", - "x-example": "<STATE>" + "replicas": { + "type": "integer", + "description": "Number of high availability replicas (0-5). High availability is enabled when greater than 0.", + "default": 0, + "x-example": 0, + "format": "int32" }, - "nonce": { + "syncMode": { "type": "string", - "description": "OIDC nonce parameter to prevent replay attacks. Required when response_type includes `id_token`.", - "default": "", - "x-example": "<NONCE>" + "description": "Replication sync mode preference. Allowed values: async, sync, quorum.", + "x-example": "async", + "x-nullable": true }, - "code_challenge": { + "standbyRegion": { "type": "string", - "description": "PKCE code challenge. Required when OAuth2 app is public.", - "default": "", - "x-example": "<CODE_CHALLENGE>" + "description": "Standby region for a cross-region replica. When set, a replica is provisioned in this region for cross-region high availability. Must differ from the database region.", + "x-example": "<STANDBY_REGION>", + "x-nullable": true }, - "code_challenge_method": { - "type": "string", - "description": "PKCE code challenge method. Required when OAuth2 app is public.", - "default": "", - "x-example": "s256" + "networkIdleTimeoutSeconds": { + "type": "integer", + "description": "Connection idle timeout in seconds.", + "default": 900, + "x-example": 60, + "format": "int32" }, - "prompt": { - "type": "string", - "description": "OIDC prompt parameter for customization of consent screen. Space-separated list of: none, login, consent, select_account.", - "default": "", - "x-example": "<PROMPT>" + "networkIPAllowlist": { + "type": "array", + "description": "IP addresses\/CIDR ranges allowed to connect.", + "x-example": null, + "items": { + "type": "string" + }, + "x-nullable": true }, - "max_age": { + "idleTimeoutMinutes": { "type": "integer", - "description": "OIDC max_age parameter for customization of consent screen.", - "x-example": 0, - "format": "int32", - "x-nullable": true + "description": "Minutes of inactivity before container scales to zero.", + "default": 15, + "x-example": 5, + "format": "int32" }, - "authorization_details": { - "type": "string", - "description": "Rich authorization request. JSON array of objects, each with a `type` and project-defined fields", - "default": "", - "x-example": "<AUTHORIZATION_DETAILS>" + "pitr": { + "type": "boolean", + "description": "Enable point-in-time recovery (PITR). Continuously archives changes so the database can be restored to any moment within the retention window.", + "default": true, + "x-example": false }, - "resource": { + "pitrRetentionDays": { + "type": "integer", + "description": "Number of days to retain PITR data.", + "default": 7, + "x-example": 1, + "format": "int32" + }, + "storageAutoscaling": { + "type": "boolean", + "description": "Enable automatic storage expansion when usage exceeds threshold.", + "default": false, + "x-example": false + }, + "storageAutoscalingThresholdPercent": { + "type": "integer", + "description": "Storage usage percentage (50-95) that triggers automatic expansion.", + "default": 85, + "x-example": 50, + "format": "int32" + }, + "storageAutoscalingMaxGb": { + "type": "integer", + "description": "Maximum storage size in GB for autoscaling. 0 means no limit.", + "default": 0, + "x-example": 0, + "format": "int32" + }, + "api": { "type": "string", - "description": "RFC 8707 resource indicator URI or URI list. Each value must be an absolute URI without a fragment.", - "default": [], - "x-example": null + "description": "Product API that owns this database: tablesdb, documentsdb, or vectorsdb. Omit for a raw database reached directly; its api is its engine. tablesdb\/documentsdb\/vectorsdb databases are reached only through their product APIs.", + "x-example": "tablesdb" } }, "required": [ - "client_id", - "redirect_uri", - "response_type", - "scope" + "databaseId", + "name" ] } } @@ -31423,21 +32334,21 @@ } } }, - "\/oauth2\/{project_id}\/projects": { + "\/mysql\/specifications": { "get": { - "summary": "OAuth2 List Accessible Projects", - "operationId": "oauth2ListProjects", + "summary": "List dedicated database specifications.", + "operationId": "mysqlListSpecifications", "tags": [ - "oauth2" + "mysql" ], - "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.", + "description": "List the dedicated database specifications available on the current plan. Each specification reports its resource limits, pricing, and whether it is enabled for the organization.", "responses": { "200": { - "description": "OAuth2 accessible projects list", + "description": "SpecificationList", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/oauth2ProjectList" + "$ref": "#\/components\/schemas\/dedicatedDatabaseSpecificationList" } } } @@ -31445,99 +32356,49 @@ }, "deprecated": false, "x-appwrite": { - "method": "listProjects", - "group": null, + "method": "listSpecifications", + "group": "databases", "cookies": false, "type": "", - "demo": "oauth2\/list-projects.md", - "rate-limit": 120, - "rate-time": 60, + "demo": "mysql\/list-specifications.md", + "rate-limit": 0, + "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "oauth2.projects.read", + "scope": "databases.read", "platforms": [ "console", - "client", "server" ], "packaging": false, "public": true, "auth": { - "ProjectPath": [], - "Session": [] + "Project": [], + "Key": [] } }, "security": [ { - "ProjectPath": [], - "Session": [], - "JWT": [], + "Project": [], "Key": [] } - ], - "parameters": [ - { - "name": "project_id", - "description": "Project ID of the console project the OAuth2 access token was issued for.", - "required": true, - "schema": { - "type": "string", - "x-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", - "x-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", - "x-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", - "x-example": "<SEARCH>", - "default": "" - }, - "in": "query" - } ] } }, - "\/oauth2\/{project_id}\/reject": { - "post": { - "summary": "Reject OAuth2", - "operationId": "oauth2Reject", + "\/mysql\/{databaseId}": { + "get": { + "summary": "Get dedicated database.", + "operationId": "mysqlGet", "tags": [ - "oauth2" + "mysql" ], - "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.", + "description": "Get a dedicated database by its unique ID. Returns the database configuration and current status.", "responses": { "200": { - "description": "OAuth2 Reject", + "description": "DedicatedDatabase", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/oauth2Reject" + "$ref": "#\/components\/schemas\/dedicatedDatabase" } } } @@ -31545,83 +32406,59 @@ }, "deprecated": false, "x-appwrite": { - "method": "reject", - "group": null, + "method": "get", + "group": "databases", "cookies": false, "type": "", - "demo": "oauth2\/reject.md", - "rate-limit": 10, - "rate-time": 60, - "rate-key": "ip:{ip},userId:{userId}", - "scope": "oauth2.write", + "demo": "mysql\/get.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "databases.read", "platforms": [ "console", - "client", "server" ], "packaging": false, "public": true, "auth": { - "ProjectPath": [], - "Session": [] + "Project": [], + "Key": [] } }, "security": [ { - "ProjectPath": [], - "Session": [], - "JWT": [] + "Project": [], + "Key": [] } ], "parameters": [ { - "name": "project_id", - "description": "Project ID in which OAuth2 client exists.", + "name": "databaseId", + "description": "Database ID.", "required": true, "schema": { "type": "string", - "x-example": "<PROJECT_ID>" + "x-example": "<DATABASE_ID>" }, "in": "path" } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "grant_id": { - "type": "string", - "description": "Grant ID made during authorization, provided to consent screen in URL search params.", - "x-example": "<GRANT_ID>" - } - }, - "required": [ - "grant_id" - ] - } - } - } - } - } - }, - "\/oauth2\/{project_id}\/revoke": { - "post": { - "summary": "OAuth2 Revoke", - "operationId": "oauth2Revoke", + ] + }, + "patch": { + "summary": "Update dedicated database.", + "operationId": "mysqlUpdate", "tags": [ - "oauth2" + "mysql" ], - "description": "Revoke an OAuth2 access token or refresh token.", + "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": "File", + "description": "DedicatedDatabase", "content": { "application\/json": { "schema": { - "type": "string", - "format": "binary" + "$ref": "#\/components\/schemas\/dedicatedDatabase" } } } @@ -31629,43 +32466,40 @@ }, "deprecated": false, "x-appwrite": { - "method": "revoke", - "group": null, + "method": "update", + "group": "databases", "cookies": false, "type": "", - "demo": "oauth2\/revoke.md", - "rate-limit": 60, - "rate-time": 60, + "demo": "mysql\/update.md", + "rate-limit": 0, + "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "public", + "scope": "databases.write", "platforms": [ "console", - "client", "server" ], "packaging": false, "public": true, "auth": { - "ProjectPath": [], - "Session": [] + "Project": [], + "Key": [] } }, "security": [ { - "ProjectPath": [], - "Session": [], - "JWT": [], + "Project": [], "Key": [] } ], "parameters": [ { - "name": "project_id", - "description": "Project ID in which OAuth2 client exists.", + "name": "databaseId", + "description": "Database ID.", "required": true, "schema": { "type": "string", - "x-example": "<PROJECT_ID>" + "x-example": "<DATABASE_ID>" }, "in": "path" } @@ -31676,187 +32510,234 @@ "schema": { "type": "object", "properties": { - "token": { + "name": { "type": "string", - "description": "The access or refresh token to revoke.", - "x-example": "<TOKEN>" + "description": "Database display name.", + "x-example": "<NAME>", + "x-nullable": true }, - "token_type_hint": { + "status": { "type": "string", - "description": "Type of token to revoke (access_token or refresh_token).", - "default": "", - "x-example": "access_token" + "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.", + "x-example": "ready", + "x-nullable": true }, - "client_id": { + "specification": { "type": "string", - "description": "OAuth2 client ID.", - "default": "", - "x-example": "<CLIENT_ID>" + "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.", + "x-example": "<SPECIFICATION>", + "x-nullable": true }, - "client_secret": { + "replicas": { + "type": "integer", + "description": "Number of high availability replicas (0-5). High availability is enabled when greater than 0.", + "x-example": 0, + "format": "int32", + "x-nullable": true + }, + "syncMode": { "type": "string", - "description": "OAuth2 client secret. Required for confidential apps; omitted for public apps.", - "default": "", - "x-example": "<CLIENT_SECRET>" + "description": "Replication sync mode preference. Allowed values: async, sync, quorum.", + "x-example": "async", + "x-nullable": true + }, + "crossRegionReplicas": { + "type": "integer", + "description": "Number of cross-region standby replicas (0-1). Cross-region replication is enabled when greater than 0.", + "x-example": 0, + "format": "int32", + "x-nullable": true + }, + "standbyRegion": { + "type": "string", + "description": "Standby region for the cross-region replica. Required when enabling cross-region replication and no standby region is already configured. Must differ from the database region.", + "x-example": "<STANDBY_REGION>", + "x-nullable": true + }, + "networkIdleTimeoutSeconds": { + "type": "integer", + "description": "Connection idle timeout in seconds (60-86400).", + "x-example": 60, + "format": "int32", + "x-nullable": true + }, + "networkIPAllowlist": { + "type": "array", + "description": "IP addresses\/CIDR ranges allowed to connect.", + "x-example": null, + "items": { + "type": "string" + }, + "x-nullable": true + }, + "idleTimeoutMinutes": { + "type": "integer", + "description": "Minutes before container scales to zero.", + "x-example": 5, + "format": "int32", + "x-nullable": true + }, + "pitr": { + "type": "boolean", + "description": "Enable or disable point-in-time recovery (PITR).", + "x-example": false, + "x-nullable": true + }, + "pitrRetentionDays": { + "type": "integer", + "description": "Days to retain PITR data.", + "x-example": 1, + "format": "int32", + "x-nullable": true + }, + "storageAutoscaling": { + "type": "boolean", + "description": "Enable automatic storage expansion when usage exceeds threshold.", + "x-example": false, + "x-nullable": true + }, + "storageAutoscalingThresholdPercent": { + "type": "integer", + "description": "Storage usage percentage (50-95) that triggers automatic expansion.", + "x-example": 50, + "format": "int32", + "x-nullable": true + }, + "storageAutoscalingMaxGb": { + "type": "integer", + "description": "Maximum storage size in GB for autoscaling. 0 means no limit.", + "x-example": 0, + "format": "int32", + "x-nullable": true + }, + "metricsTraceSampleRate": { + "type": "number", + "description": "Fraction of queries to trace (0.0\u20131.0). Forwarded to the sidecar.", + "x-example": null, + "format": "float", + "x-nullable": true + }, + "metricsSlowQueryLogThresholdMs": { + "type": "integer", + "description": "Threshold in ms above which queries are logged as slow. Forwarded to the sidecar.", + "x-example": 0, + "format": "int32", + "x-nullable": true + }, + "sqlApiEnabled": { + "type": "boolean", + "description": "Enable the SQL API sidecar for this database.", + "x-example": false, + "x-nullable": true + }, + "sqlApiAllowedStatements": { + "type": "array", + "description": "Statement types the SQL API accepts. Allowed values: SELECT, INSERT, UPDATE, DELETE, CREATE, ALTER, DROP, TRUNCATE, GRANT, REVOKE.", + "x-example": null, + "items": { + "type": "string" + }, + "x-nullable": true + }, + "sqlApiMaxRows": { + "type": "integer", + "description": "Maximum rows returned per SQL API execution (1-1000000).", + "x-example": 1, + "format": "int32", + "x-nullable": true + }, + "sqlApiMaxBytes": { + "type": "integer", + "description": "Maximum serialised SQL API result payload in bytes (1024-104857600).", + "x-example": 1024, + "format": "int32", + "x-nullable": true + }, + "sqlApiTimeoutSeconds": { + "type": "integer", + "description": "Per-call SQL API execution timeout in seconds (1-300).", + "x-example": 1, + "format": "int32", + "x-nullable": true } - }, - "required": [ - "token" - ] + } } } } } - } - }, - "\/oauth2\/{project_id}\/token": { - "post": { - "summary": "OAuth2 Token", - "operationId": "oauth2CreateToken", + }, + "delete": { + "summary": "Delete dedicated database.", + "operationId": "mysqlDelete", "tags": [ - "oauth2" + "mysql" ], - "description": "Exchange an OAuth2 authorization code, refresh token, or device code for access and refresh tokens.", + "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": { - "200": { - "description": "OAuth2 Token", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/oauth2Token" - } - } - } + "204": { + "description": "No content" } }, "deprecated": false, "x-appwrite": { - "method": "createToken", - "group": null, + "method": "delete", + "group": "databases", "cookies": false, "type": "", - "demo": "oauth2\/create-token.md", - "rate-limit": 60, - "rate-time": 60, + "demo": "mysql\/delete.md", + "rate-limit": 0, + "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "public", + "scope": "databases.write", "platforms": [ "console", - "client", "server" ], "packaging": false, "public": true, + "produces": [ + "application\/json" + ], "auth": { - "ProjectPath": [], - "Session": [] + "Project": [], + "Key": [] } }, "security": [ { - "ProjectPath": [], - "Session": [], - "JWT": [], + "Project": [], "Key": [] } ], "parameters": [ { - "name": "project_id", - "description": "Project ID in which OAuth2 client exists.", + "name": "databaseId", + "description": "Database ID.", "required": true, "schema": { "type": "string", - "x-example": "<PROJECT_ID>" + "x-example": "<DATABASE_ID>" }, "in": "path" } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "grant_type": { - "type": "string", - "description": "OAuth2 grant type. Can be one of: `authorization_code`, `refresh_token`, `urn:ietf:params:oauth:grant-type:device_code`.", - "x-example": "<GRANT_TYPE>" - }, - "code": { - "type": "string", - "description": "Authorization code to be exchanged for access and refresh tokens. Required for `authorization_code` grant type.", - "default": "", - "x-example": "<CODE>" - }, - "refresh_token": { - "type": "string", - "description": "Refresh token to be exchanged for a new access and refresh tokens. Required for `refresh_token` grant type.", - "default": "", - "x-example": "<REFRESH_TOKEN>" - }, - "device_code": { - "type": "string", - "description": "Device code obtained from the device authorization endpoint. Required for `urn:ietf:params:oauth:grant-type:device_code` grant type.", - "default": "", - "x-example": "<DEVICE_CODE>" - }, - "client_id": { - "type": "string", - "description": "OAuth2 client ID.", - "default": "", - "x-example": "<CLIENT_ID>" - }, - "client_secret": { - "type": "string", - "description": "OAuth2 client secret. Required for confidential apps.", - "default": "", - "x-example": "<CLIENT_SECRET>" - }, - "code_verifier": { - "type": "string", - "description": "PKCE code verifier. Required for public apps.", - "default": "", - "x-example": "<CODE_VERIFIER>" - }, - "redirect_uri": { - "type": "string", - "description": "Redirect URI. Required for `authorization_code` grant type.", - "default": "", - "x-example": "https:\/\/example.com", - "format": "url" - }, - "resource": { - "type": "string", - "description": "RFC 8707 resource indicator URI or URI list. Each value must be an absolute URI without a fragment.", - "default": [], - "x-example": null - } - }, - "required": [ - "grant_type" - ] - } - } - } - } + ] } }, - "\/organization": { + "\/mysql\/{databaseId}\/backups": { "get": { - "summary": "Get organization", - "operationId": "organizationGet", + "summary": "List database backups.", + "operationId": "mysqlListBackups", "tags": [ - "organization" + "mysql" ], - "description": "Get the current organization.", + "description": "List all backups for a dedicated database. Results can be filtered by status and type.", "responses": { "200": { - "description": "Organization", + "description": "BackupList", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/organization" + "$ref": "#\/components\/schemas\/dedicatedDatabaseBackupList" } } } @@ -31864,15 +32745,15 @@ }, "deprecated": false, "x-appwrite": { - "method": "get", - "group": null, + "method": "listBackups", + "group": "databases", "cookies": false, "type": "", - "demo": "organization\/get.md", + "demo": "mysql\/list-backups.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "organization.read", + "scope": "databases.read", "platforms": [ "console", "server" @@ -31889,22 +32770,47 @@ "Project": [], "Key": [] } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "x-example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "queries", + "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/queries). Maximum of 100 queries are allowed, each 4096 characters long. You may filter on the following attributes: status, type, databaseId", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string" + }, + "default": [] + }, + "in": "query" + } ] }, - "put": { - "summary": "Update organization", - "operationId": "organizationUpdate", + "post": { + "summary": "Create a database backup.", + "operationId": "mysqlCreateBackup", "tags": [ - "organization" + "mysql" ], - "description": "Update the current organization's name.", + "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": { - "200": { - "description": "Organization", + "202": { + "description": "Backup", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/organization" + "$ref": "#\/components\/schemas\/dedicatedDatabaseBackup" } } } @@ -31912,15 +32818,15 @@ }, "deprecated": false, "x-appwrite": { - "method": "update", - "group": null, + "method": "createBackup", + "group": "databases", "cookies": false, "type": "", - "demo": "organization\/update.md", + "demo": "mysql\/create-backup.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "organization.write", + "scope": "databases.write", "platforms": [ "console", "server" @@ -31938,83 +32844,52 @@ "Key": [] } ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "x-example": "<DATABASE_ID>" + }, + "in": "path" + } + ], "requestBody": { "content": { "application\/json": { "schema": { "type": "object", "properties": { - "name": { + "type": { "type": "string", - "description": "New organization name. Max length: 128 chars.", - "x-example": "<NAME>" + "description": "Backup type: full or incremental.", + "default": "full", + "x-example": "full" } - }, - "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": { - "method": "delete", - "group": null, - "cookies": false, - "type": "", - "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\/keys": { + "\/mysql\/{databaseId}\/backups\/policies": { "get": { - "summary": "List organization keys", - "operationId": "organizationListKeys", + "summary": "List database backup policies.", + "operationId": "mysqlListBackupPolicies", "tags": [ - "organization" + "mysql" ], - "description": "Get a list of all API keys from the current organization.", + "description": "List scheduled backup policies for a dedicated database.", "responses": { "200": { - "description": "API Keys List", + "description": "Backup policy list", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/keyList" + "$ref": "#\/components\/schemas\/backupPolicyList" } } } @@ -32022,15 +32897,15 @@ }, "deprecated": false, "x-appwrite": { - "method": "listKeys", - "group": "keys", + "method": "listBackupPolicies", + "group": "databases", "cookies": false, "type": "", - "demo": "organization\/list-keys.md", + "demo": "mysql\/list-backup-policies.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "organization.keys.read", + "scope": "databases.read", "platforms": [ "console", "server" @@ -32049,9 +32924,19 @@ } ], "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "x-example": "<DATABASE_ID>" + }, + "in": "path" + }, { "name": "queries", - "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/queries). Maximum of 100 queries are allowed, each 4096 characters long. You may filter on the following attributes: expire, accessedAt, name, scopes", + "description": "Array of query strings generated using the Query class provided by the SDK.", "required": false, "schema": { "type": "array", @@ -32061,34 +32946,23 @@ "default": [] }, "in": "query" - }, - { - "name": "total", - "description": "When set to false, the total count returned will be 0 and will not be calculated.", - "required": false, - "schema": { - "type": "boolean", - "x-example": false, - "default": true - }, - "in": "query" } ] }, "post": { - "summary": "Create organization key", - "operationId": "organizationCreateKey", + "summary": "Create a database backup policy.", + "operationId": "mysqlCreateBackupPolicy", "tags": [ - "organization" + "mysql" ], - "description": "Create a new organization API key.", + "description": "Create a scheduled backup policy for a dedicated database.", "responses": { "201": { - "description": "Key", + "description": "backup", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/key" + "$ref": "#\/components\/schemas\/backupPolicy" } } } @@ -32096,15 +32970,15 @@ }, "deprecated": false, "x-appwrite": { - "method": "createKey", - "group": "keys", + "method": "createBackupPolicy", + "group": "databases", "cookies": false, "type": "", - "demo": "organization\/create-key.md", + "demo": "mysql\/create-backup-policy.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "organization.keys.write", + "scope": "databases.write", "platforms": [ "console", "server" @@ -32122,78 +32996,66 @@ "Key": [] } ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "x-example": "<DATABASE_ID>" + }, + "in": "path" + } + ], "requestBody": { "content": { "application\/json": { "schema": { "type": "object", "properties": { - "keyId": { + "policyId": { "type": "string", - "description": "Key ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.", - "x-example": "<KEY_ID>", + "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.", + "x-example": "<POLICY_ID>", "x-appwrite": { "idGenerator": "ID.unique" } }, "name": { "type": "string", - "description": "Key name. Max length: 128 chars.", + "description": "Policy name. Max length: 128 chars.", "x-example": "<NAME>" }, - "scopes": { - "type": "array", - "description": "Key scopes list. Maximum of 200 scopes are allowed.", - "x-example": null, - "items": { - "type": "string", - "enum": [ - "projects.read", - "projects.write", - "devKeys.read", - "devKeys.write", - "organization.keys.read", - "organization.keys.write", - "organization.memberships.read", - "organization.memberships.write", - "organization.read", - "organization.write", - "domains.read", - "domains.write", - "keys.read", - "keys.write" - ], - "x-enum-name": "OrganizationKeyScopes", - "x-enum-keys": [ - "projects.read", - "projects.write", - "devKeys.read", - "devKeys.write", - "organization.keys.read", - "organization.keys.write", - "organization.memberships.read", - "organization.memberships.write", - "organization.read", - "organization.write", - "domains.read", - "domains.write", - "keys.read", - "keys.write" - ] - } + "schedule": { + "type": "string", + "description": "Schedule CRON syntax.", + "x-example": null }, - "expire": { + "retention": { + "type": "integer", + "description": "Days to keep backups before deletion.", + "x-example": 1, + "format": "int32" + }, + "type": { "type": "string", - "description": "Expiration time in [ISO 8601](https:\/\/www.iso.org\/iso-8601-date-and-time-format.html) format. Use null for unlimited expiration.", - "x-example": "2020-10-15T06:38:00.000+00:00", - "format": "datetime", - "x-nullable": true + "description": "Backup type: full or incremental.", + "default": "full", + "x-example": "full" + }, + "enabled": { + "type": "boolean", + "description": "Is policy enabled? When disabled, no backups will be taken.", + "default": true, + "x-example": false } }, "required": [ - "keyId", + "policyId", "name", - "scopes" + "schedule", + "retention" ] } } @@ -32201,21 +33063,21 @@ } } }, - "\/organization\/keys\/{keyId}": { + "\/mysql\/{databaseId}\/backups\/policies\/{policyId}": { "get": { - "summary": "Get organization key", - "operationId": "organizationGetKey", + "summary": "Get a database backup policy.", + "operationId": "mysqlGetBackupPolicy", "tags": [ - "organization" + "mysql" ], - "description": "Get a key by its unique ID. This endpoint returns details about a specific API key in your organization including its scopes.", + "description": "Get a scheduled backup policy for a dedicated database.", "responses": { "200": { - "description": "Key", + "description": "backup", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/key" + "$ref": "#\/components\/schemas\/backupPolicy" } } } @@ -32223,15 +33085,15 @@ }, "deprecated": false, "x-appwrite": { - "method": "getKey", - "group": "keys", + "method": "getBackupPolicy", + "group": "databases", "cookies": false, "type": "", - "demo": "organization\/get-key.md", + "demo": "mysql\/get-backup-policy.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "organization.keys.read", + "scope": "databases.read", "platforms": [ "console", "server" @@ -32251,31 +33113,41 @@ ], "parameters": [ { - "name": "keyId", - "description": "Key unique ID.", + "name": "databaseId", + "description": "Database ID.", "required": true, "schema": { "type": "string", - "x-example": "<KEY_ID>" + "x-example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "policyId", + "description": "Policy ID.", + "required": true, + "schema": { + "type": "string", + "x-example": "<POLICY_ID>" }, "in": "path" } ] }, - "put": { - "summary": "Update organization key", - "operationId": "organizationUpdateKey", + "patch": { + "summary": "Update a database backup policy.", + "operationId": "mysqlUpdateBackupPolicy", "tags": [ - "organization" + "mysql" ], - "description": "Update a key by its unique ID. Use this endpoint to update the name, scopes, or expiration time of an API key.", + "description": "Update a scheduled backup policy for a dedicated database.", "responses": { "200": { - "description": "Key", + "description": "backup", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/key" + "$ref": "#\/components\/schemas\/backupPolicy" } } } @@ -32283,15 +33155,15 @@ }, "deprecated": false, "x-appwrite": { - "method": "updateKey", - "group": "keys", + "method": "updateBackupPolicy", + "group": "databases", "cookies": false, "type": "", - "demo": "organization\/update-key.md", + "demo": "mysql\/update-backup-policy.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "organization.keys.write", + "scope": "databases.write", "platforms": [ "console", "server" @@ -32311,12 +33183,22 @@ ], "parameters": [ { - "name": "keyId", - "description": "Key unique ID.", + "name": "databaseId", + "description": "Database ID.", "required": true, "schema": { "type": "string", - "x-example": "<KEY_ID>" + "x-example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "policyId", + "description": "Policy ID.", + "required": true, + "schema": { + "type": "string", + "x-example": "<POLICY_ID>" }, "in": "path" } @@ -32329,74 +33211,41 @@ "properties": { "name": { "type": "string", - "description": "Key name. Max length: 128 chars.", - "x-example": "<NAME>" - }, - "scopes": { - "type": "array", - "description": "Key scopes list. Maximum of 200 scopes are allowed.", - "x-example": null, - "items": { - "type": "string", - "enum": [ - "projects.read", - "projects.write", - "devKeys.read", - "devKeys.write", - "organization.keys.read", - "organization.keys.write", - "organization.memberships.read", - "organization.memberships.write", - "organization.read", - "organization.write", - "domains.read", - "domains.write", - "keys.read", - "keys.write" - ], - "x-enum-name": "OrganizationKeyScopes", - "x-enum-keys": [ - "projects.read", - "projects.write", - "devKeys.read", - "devKeys.write", - "organization.keys.read", - "organization.keys.write", - "organization.memberships.read", - "organization.memberships.write", - "organization.read", - "organization.write", - "domains.read", - "domains.write", - "keys.read", - "keys.write" - ] - } + "description": "Policy name. Max length: 128 chars.", + "x-example": "<NAME>", + "x-nullable": true }, - "expire": { + "schedule": { "type": "string", - "description": "Expiration time in [ISO 8601](https:\/\/www.iso.org\/iso-8601-date-and-time-format.html) format. Use null for unlimited expiration.", - "x-example": "2020-10-15T06:38:00.000+00:00", - "format": "datetime", + "description": "Schedule CRON syntax.", + "x-example": null + }, + "retention": { + "type": "integer", + "description": "Days to keep backups before deletion.", + "x-example": 1, + "format": "int32", + "x-nullable": true + }, + "enabled": { + "type": "boolean", + "description": "Is policy enabled? When disabled, no backups will be taken.", + "x-example": false, "x-nullable": true } - }, - "required": [ - "name", - "scopes" - ] + } } } } } }, "delete": { - "summary": "Delete organization key", - "operationId": "organizationDeleteKey", + "summary": "Delete a database backup policy.", + "operationId": "mysqlDeleteBackupPolicy", "tags": [ - "organization" + "mysql" ], - "description": "Delete a key by its unique ID. Once deleted, the key can no longer be used to authenticate API calls.", + "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" @@ -32404,21 +33253,24 @@ }, "deprecated": false, "x-appwrite": { - "method": "deleteKey", - "group": "keys", + "method": "deleteBackupPolicy", + "group": "databases", "cookies": false, "type": "", - "demo": "organization\/delete-key.md", + "demo": "mysql\/delete-backup-policy.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "organization.keys.write", + "scope": "databases.write", "platforms": [ "console", "server" ], "packaging": false, "public": true, + "produces": [ + "application\/json" + ], "auth": { "Project": [], "Key": [] @@ -32432,33 +33284,43 @@ ], "parameters": [ { - "name": "keyId", - "description": "Key unique ID.", + "name": "databaseId", + "description": "Database ID.", "required": true, "schema": { "type": "string", - "x-example": "<KEY_ID>" + "x-example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "policyId", + "description": "Policy ID.", + "required": true, + "schema": { + "type": "string", + "x-example": "<POLICY_ID>" }, "in": "path" } ] } }, - "\/organization\/memberships": { - "get": { - "summary": "List organization memberships", - "operationId": "organizationListMemberships", + "\/mysql\/{databaseId}\/backups\/storage": { + "put": { + "summary": "Update database backup storage.", + "operationId": "mysqlUpdateBackupStorage", "tags": [ - "organization" + "mysql" ], - "description": "Get a list of all memberships from the current organization.", + "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": "Memberships List", + "description": "BackupStorageConfig", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/membershipList" + "$ref": "#\/components\/schemas\/dedicatedDatabaseBackupStorage" } } } @@ -32466,15 +33328,15 @@ }, "deprecated": false, "x-appwrite": { - "method": "listMemberships", - "group": "memberships", + "method": "updateBackupStorage", + "group": "databases", "cookies": false, "type": "", - "demo": "organization\/list-memberships.md", + "demo": "mysql\/update-backup-storage.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "organization.memberships.read", + "scope": "databases.write", "platforms": [ "console", "server" @@ -32494,87 +33356,14 @@ ], "parameters": [ { - "name": "queries", - "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/queries). Maximum of 100 queries are allowed, each 4096 characters long. You may filter on the following attributes: userId, teamId, invited, joined, confirm, roles", - "required": false, - "schema": { - "type": "array", - "items": { - "type": "string" - }, - "default": [] - }, - "in": "query" - }, - { - "name": "search", - "description": "Search term to filter your list results. Max length: 256 chars.", - "required": false, + "name": "databaseId", + "description": "Database ID.", + "required": true, "schema": { "type": "string", - "x-example": "<SEARCH>", - "default": "" - }, - "in": "query" - }, - { - "name": "total", - "description": "When set to false, the total count returned will be 0 and will not be calculated.", - "required": false, - "schema": { - "type": "boolean", - "x-example": false, - "default": true + "x-example": "<DATABASE_ID>" }, - "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": { - "method": "createMembership", - "group": "memberships", - "cookies": false, - "type": "", - "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": [] + "in": "path" } ], "requestBody": { @@ -32583,50 +33372,50 @@ "schema": { "type": "object", "properties": { - "email": { + "provider": { "type": "string", - "description": "Email of the new organization member.", - "default": "", - "x-example": "email@example.com", - "format": "email" + "description": "Storage provider for off-cluster backups. Allowed values: s3 (Amazon S3 or S3-compatible), gcs (Google Cloud Storage), azure (Azure Blob Storage).", + "x-example": "s3" }, - "userId": { + "bucket": { "type": "string", - "description": "ID of the user to be added to the organization.", - "default": "", - "x-example": "<USER_ID>" + "description": "Storage bucket or container name.", + "x-example": "<BUCKET>" }, - "phone": { + "region": { "type": "string", - "description": "Phone number. Format this number with a leading '+' and a country code, e.g., +16175551212.", + "description": "Storage region.", "default": "", - "x-example": "+12065550100", - "format": "phone" + "x-example": "<REGION>" }, - "roles": { - "type": "array", - "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.", - "x-example": null, - "items": { - "type": "string" - } + "prefix": { + "type": "string", + "description": "Object key prefix for backups.", + "default": "backups\/", + "x-example": "<PREFIX>" }, - "url": { + "endpoint": { "type": "string", - "description": "URL to redirect the user back to your app from the invitation email. This parameter is not required when an API key is supplied.", + "description": "Custom endpoint for S3-compatible storage (e.g. MinIO).", "default": "", - "x-example": "https:\/\/example.com", - "format": "url" + "x-example": "<ENDPOINT>" }, - "name": { + "accessKey": { "type": "string", - "description": "Name of the new organization member. Max length: 128 chars.", - "default": "", - "x-example": "<NAME>" + "description": "Access key or client ID for authentication.", + "x-example": "<ACCESS_KEY>" + }, + "secretKey": { + "type": "string", + "description": "Secret key or service account JSON for authentication.", + "x-example": "<SECRET_KEY>" } }, "required": [ - "roles" + "provider", + "bucket", + "accessKey", + "secretKey" ] } } @@ -32634,21 +33423,21 @@ } } }, - "\/organization\/memberships\/{membershipId}": { + "\/mysql\/{databaseId}\/backups\/{backupId}": { "get": { - "summary": "Get organization membership", - "operationId": "organizationGetMembership", + "summary": "Get a database backup.", + "operationId": "mysqlGetBackup", "tags": [ - "organization" + "mysql" ], - "description": "Get a membership from the current organization by its unique ID.", + "description": "Get details of a specific database backup including its status, size, and timestamps.", "responses": { "200": { - "description": "Membership", + "description": "Backup", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/membership" + "$ref": "#\/components\/schemas\/dedicatedDatabaseBackup" } } } @@ -32656,15 +33445,15 @@ }, "deprecated": false, "x-appwrite": { - "method": "getMembership", - "group": "memberships", + "method": "getBackup", + "group": "databases", "cookies": false, "type": "", - "demo": "organization\/get-membership.md", + "demo": "mysql\/get-backup.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "organization.memberships.read", + "scope": "databases.read", "platforms": [ "console", "server" @@ -32684,106 +33473,34 @@ ], "parameters": [ { - "name": "membershipId", - "description": "Membership ID.", + "name": "databaseId", + "description": "Database ID.", "required": true, "schema": { "type": "string", - "x-example": "<MEMBERSHIP_ID>" + "x-example": "<DATABASE_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": { - "method": "updateMembership", - "group": "memberships", - "cookies": false, - "type": "", - "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": [] - } - ], - "parameters": [ + }, { - "name": "membershipId", - "description": "Membership ID.", + "name": "backupId", + "description": "Backup ID.", "required": true, "schema": { "type": "string", - "x-example": "<MEMBERSHIP_ID>" + "x-example": "<BACKUP_ID>" }, "in": "path" } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "roles": { - "type": "array", - "description": "An array of strings. Use this param to set the user's roles in the 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.", - "x-example": null, - "items": { - "type": "string" - } - } - }, - "required": [ - "roles" - ] - } - } - } - } + ] }, "delete": { - "summary": "Delete organization membership", - "operationId": "organizationDeleteMembership", + "summary": "Delete a database backup.", + "operationId": "mysqlDeleteBackup", "tags": [ - "organization" + "mysql" ], - "description": "Remove a member from the current organization. The member is removed whether they accepted the invitation or not; a pending invitation is revoked.", + "description": "Delete a database backup. This will permanently remove the backup from storage and cannot be undone.", "responses": { "204": { "description": "No content" @@ -32791,21 +33508,24 @@ }, "deprecated": false, "x-appwrite": { - "method": "deleteMembership", - "group": "memberships", + "method": "deleteBackup", + "group": "databases", "cookies": false, "type": "", - "demo": "organization\/delete-membership.md", + "demo": "mysql\/delete-backup.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "organization.memberships.write", + "scope": "databases.write", "platforms": [ "console", "server" ], "packaging": false, "public": true, + "produces": [ + "application\/json" + ], "auth": { "Project": [], "Key": [] @@ -32819,33 +33539,43 @@ ], "parameters": [ { - "name": "membershipId", - "description": "Membership ID.", + "name": "databaseId", + "description": "Database ID.", "required": true, "schema": { "type": "string", - "x-example": "<MEMBERSHIP_ID>" + "x-example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "backupId", + "description": "Backup ID.", + "required": true, + "schema": { + "type": "string", + "x-example": "<BACKUP_ID>" }, "in": "path" } ] } }, - "\/organization\/projects": { + "\/mysql\/{databaseId}\/branches": { "get": { - "summary": "List organization projects", - "operationId": "organizationListProjects", + "summary": "List database branches.", + "operationId": "mysqlListBranches", "tags": [ - "organization" + "mysql" ], - "description": "Get a list of all projects. You can use the query params to filter your results.", + "description": "List all ephemeral branches for a dedicated database. Returns branch metadata including ID, name, namespace, and expiration time.", "responses": { "200": { - "description": "Projects List", + "description": "BranchList", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/projectList" + "$ref": "#\/components\/schemas\/dedicatedDatabaseBranchList" } } } @@ -32853,15 +33583,15 @@ }, "deprecated": false, "x-appwrite": { - "method": "listProjects", - "group": "projects", + "method": "listBranches", + "group": "databases", "cookies": false, "type": "", - "demo": "organization\/list-projects.md", + "demo": "mysql\/list-branches.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "projects.read", + "scope": "databases.read", "platforms": [ "console", "server" @@ -32881,56 +33611,31 @@ ], "parameters": [ { - "name": "queries", - "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/queries). Maximum of 100 queries are allowed, each 4096 characters long. You may filter on the following attributes: name, 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, + "name": "databaseId", + "description": "Database ID.", + "required": true, "schema": { "type": "string", - "x-example": "<SEARCH>", - "default": "" - }, - "in": "query" - }, - { - "name": "total", - "description": "When set to false, the total count returned will be 0 and will not be calculated.", - "required": false, - "schema": { - "type": "boolean", - "x-example": false, - "default": true + "x-example": "<DATABASE_ID>" }, - "in": "query" + "in": "path" } ] }, "post": { - "summary": "Create organization project", - "operationId": "organizationCreateProject", + "summary": "Create a database branch.", + "operationId": "mysqlCreateBranch", "tags": [ - "organization" + "mysql" ], - "description": "Create a new project.", + "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": { - "201": { - "description": "Project", + "202": { + "description": "DedicatedDatabase", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/project" + "$ref": "#\/components\/schemas\/dedicatedDatabase" } } } @@ -32938,15 +33643,15 @@ }, "deprecated": false, "x-appwrite": { - "method": "createProject", - "group": "projects", + "method": "createBranch", + "group": "databases", "cookies": false, "type": "", - "demo": "organization\/create-project.md", + "demo": "mysql\/create-branch.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "projects.write", + "scope": "databases.write", "platforms": [ "console", "server" @@ -32964,70 +33669,62 @@ "Key": [] } ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "x-example": "<DATABASE_ID>" + }, + "in": "path" + } + ], "requestBody": { "content": { "application\/json": { "schema": { "type": "object", "properties": { - "projectId": { + "branchId": { "type": "string", - "description": "Unique Id. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, and hyphen. Can't start with a special char. Max length is 36 chars.", - "x-example": null - }, - "name": { - "type": "string", - "description": "Project name. Max length: 128 chars.", - "x-example": "<NAME>" + "description": "Branch ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.", + "default": "", + "x-example": "<BRANCH_ID>", + "x-appwrite": { + "idGenerator": "ID.unique" + } }, - "region": { - "type": "string", - "description": "Project Region.", - "x-example": "fra", - "enum": [ - "fra", - "nyc", - "syd", - "sfo", - "sgp", - "tor" - ], - "x-enum-name": "Region", - "x-enum-keys": [ - "fra", - "nyc", - "syd", - "sfo", - "sgp", - "tor" - ] + "ttl": { + "type": "integer", + "description": "Time-to-live in seconds before the branch expires. Min 300 (5 min), max 604800 (7 days). Default: 86400 (24h).", + "default": 86400, + "x-example": 300, + "format": "int32" } - }, - "required": [ - "projectId", - "name" - ] + } } } } } } }, - "\/organization\/projects\/{projectId}": { - "get": { - "summary": "Get organization project", - "operationId": "organizationGetProject", + "\/mysql\/{databaseId}\/branches\/{branchId}": { + "delete": { + "summary": "Delete a database branch.", + "operationId": "mysqlDeleteBranch", "tags": [ - "organization" + "mysql" ], - "description": "Get a project.", + "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": { - "200": { - "description": "Project", + "202": { + "description": "DedicatedDatabase", "content": { - "": { + "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/project" + "$ref": "#\/components\/schemas\/dedicatedDatabase" } } } @@ -33035,15 +33732,15 @@ }, "deprecated": false, "x-appwrite": { - "method": "getProject", - "group": "projects", + "method": "deleteBranch", + "group": "databases", "cookies": false, "type": "", - "demo": "organization\/get-project.md", + "demo": "mysql\/delete-branch.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "projects.read", + "scope": "databases.write", "platforms": [ "console", "server" @@ -33063,31 +33760,43 @@ ], "parameters": [ { - "name": "projectId", - "description": "Project unique ID.", + "name": "databaseId", + "description": "Database ID.", "required": true, "schema": { "type": "string", - "x-example": "<PROJECT_ID>" + "x-example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "branchId", + "description": "Branch ID.", + "required": true, + "schema": { + "type": "string", + "x-example": "<BRANCH_ID>" }, "in": "path" } ] - }, + } + }, + "\/mysql\/{databaseId}\/credentials": { "patch": { - "summary": "Update organization project", - "operationId": "organizationUpdateProject", + "summary": "Rotate database credentials.", + "operationId": "mysqlUpdateCredentials", "tags": [ - "organization" + "mysql" ], - "description": "Update a project by its unique ID.", + "description": "Rotate the primary connection credentials for a dedicated database. Generates a new password and updates the database atomically. Previous credentials stop working immediately. Returns the database with a refreshed connection string carrying the new password.", "responses": { "200": { - "description": "Project", + "description": "DedicatedDatabase", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/project" + "$ref": "#\/components\/schemas\/dedicatedDatabase" } } } @@ -33095,15 +33804,15 @@ }, "deprecated": false, "x-appwrite": { - "method": "updateProject", - "group": "projects", + "method": "updateCredentials", + "group": "databases", "cookies": false, "type": "", - "demo": "organization\/update-project.md", + "demo": "mysql\/update-credentials.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "projects.write", + "scope": "databases.write", "platforms": [ "console", "server" @@ -33123,59 +33832,49 @@ ], "parameters": [ { - "name": "projectId", - "description": "Project unique ID.", + "name": "databaseId", + "description": "Database ID.", "required": true, "schema": { "type": "string", - "x-example": "<PROJECT_ID>" + "x-example": "<DATABASE_ID>" }, "in": "path" } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "name": { - "type": "string", - "description": "Project name. Max length: 128 chars.", - "x-example": "<NAME>" - } - }, - "required": [ - "name" - ] - } - } - } - } - }, - "delete": { - "summary": "Delete organization project", - "operationId": "organizationDeleteProject", + ] + } + }, + "\/mysql\/{databaseId}\/executions": { + "post": { + "summary": "Execute a SQL statement against a dedicated database.", + "operationId": "mysqlCreateExecution", "tags": [ - "organization" + "mysql" ], - "description": "Delete a project by its unique ID.", + "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": { - "204": { - "description": "No content" + "200": { + "description": "Execution", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/dedicatedDatabaseExecution" + } + } + } } }, "deprecated": false, "x-appwrite": { - "method": "deleteProject", - "group": "projects", + "method": "createExecution", + "group": "databases", "cookies": false, "type": "", - "demo": "organization\/delete-project.md", + "demo": "mysql\/create-execution.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "projects.write", + "scope": "databases.write", "platforms": [ "console", "server" @@ -33195,86 +33894,66 @@ ], "parameters": [ { - "name": "projectId", - "description": "Project unique ID.", + "name": "databaseId", + "description": "Database ID.", "required": true, "schema": { "type": "string", - "x-example": "<PROJECT_ID>" + "x-example": "<DATABASE_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" - } + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "sql": { + "type": "string", + "description": "SQL statement to execute. Exactly one statement per request.", + "x-example": "<SQL>" + }, + "bindings": { + "type": "object", + "description": "Optional bound parameters. Pass either a positional list or a name => value map matching the placeholder style used in the SQL.", + "default": {}, + "x-example": "{}", + "x-nullable": true + }, + "timeoutSeconds": { + "type": "integer", + "description": "Per-call execution timeout override. Must be less than or equal to the database's configured sqlApiTimeoutSeconds.", + "x-example": 1, + "format": "int32", + "x-nullable": true + } + }, + "required": [ + "sql" + ] } } } - }, - "deprecated": false, - "x-appwrite": { - "method": "get", - "group": null, - "cookies": false, - "type": "", - "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": [] - } - ] + } } }, - "\/presences": { - "get": { - "summary": "List presences", - "operationId": "presencesList", + "\/mysql\/{databaseId}\/failovers": { + "post": { + "summary": "Trigger manual failover.", + "operationId": "mysqlCreateFailover", "tags": [ - "presences" + "mysql" ], - "description": "List presence logs. Expired entries are filtered out automatically.\n", + "description": "Trigger a manual failover for a dedicated database with high availability enabled. Promotes a replica to primary. The failover runs asynchronously; poll the database document for status updates.", "responses": { - "200": { - "description": "Presences List", + "202": { + "description": "DedicatedDatabase", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/presenceList" + "$ref": "#\/components\/schemas\/dedicatedDatabase" } } } @@ -33282,23 +33961,21 @@ }, "deprecated": false, "x-appwrite": { - "method": "list", - "group": "presences", + "method": "createFailover", + "group": "databases", "cookies": false, "type": "", - "demo": "presences\/list.md", + "demo": "mysql\/create-failover.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "presences.read", + "scope": "databases.write", "platforms": [ "console", - "server", - "client" + "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/presences\/list.md", "auth": { "Project": [], "Key": [] @@ -33307,130 +33984,55 @@ "security": [ { "Project": [], - "Key": [], - "Session": [], - "JWT": [] + "Key": [] } ], "parameters": [ { - "name": "queries", - "description": "Array of query strings generated using the Query class provided by the SDK.", - "required": false, - "schema": { - "type": "array", - "items": { - "type": "string" - }, - "default": [] - }, - "in": "query" - }, - { - "name": "total", - "description": "When set to false, the total count returned will be 0 and will not be calculated.", - "required": false, - "schema": { - "type": "boolean", - "x-example": false, - "default": true - }, - "in": "query" - }, - { - "name": "ttl", - "description": "TTL (seconds) for caching list responses. Responses are stored in an in-memory key-value cache, keyed per project, collection, schema version (attributes and indexes), caller authorization roles, and the exact query \u2014 so users with different permissions never share cached entries. Schema changes invalidate cached entries automatically; document writes do not, so choose a TTL you are comfortable serving as stale data. Set to 0 to disable caching. Must be between 0 and 86400 (24 hours).", - "required": false, + "name": "databaseId", + "description": "Database ID.", + "required": true, "schema": { - "type": "integer", - "format": "int32", - "x-example": 0, - "default": 0 + "type": "string", + "x-example": "<DATABASE_ID>" }, - "in": "query" + "in": "path" } - ] - } - }, - "\/presences\/{presenceId}": { - "get": { - "summary": "Get presence", - "operationId": "presencesGet", - "tags": [ - "presences" ], - "description": "Get a presence log by its unique ID. Entries whose `expiresAt` is in the past are treated as not found.\n", - "responses": { - "200": { - "description": "Presence", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/presence" + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "targetReplicaId": { + "type": "string", + "description": "Target replica ID to promote. If not specified, the healthiest replica is selected.", + "x-example": "<TARGET_REPLICA_ID>", + "x-nullable": true + } } } } } - }, - "deprecated": false, - "x-appwrite": { - "method": "get", - "group": "presences", - "cookies": false, - "type": "", - "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, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/presences\/get.md", - "auth": { - "Project": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [], - "Session": [], - "JWT": [] - } - ], - "parameters": [ - { - "name": "presenceId", - "description": "Presence unique ID.", - "required": true, - "schema": { - "type": "string", - "x-example": "<PRESENCE_ID>" - }, - "in": "path" - } - ] - }, - "put": { - "summary": "Upsert presence", - "operationId": "presencesUpsert", + } + } + }, + "\/mysql\/{databaseId}\/maintenance": { + "patch": { + "summary": "Update database maintenance window.", + "operationId": "mysqlUpdateMaintenance", "tags": [ - "presences" + "mysql" ], - "description": "Create or update a presence log by its user ID.\n", + "description": "Update the maintenance window for a dedicated database. Maintenance operations like minor version upgrades will be performed during this window.", "responses": { "200": { - "description": "Presence", + "description": "DedicatedDatabase", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/presence" + "$ref": "#\/components\/schemas\/dedicatedDatabase" } } } @@ -33438,74 +34040,40 @@ }, "deprecated": false, "x-appwrite": { - "method": "upsert", - "group": "presences", + "method": "updateMaintenance", + "group": "databases", "cookies": false, "type": "", - "demo": "presences\/upsert.md", + "demo": "mysql\/update-maintenance.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "presences.write", + "scope": "databases.write", "platforms": [ - "client", - "console" + "console", + "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/presences\/upsert.md", - "methods": [ - { - "name": "upsert", - "namespace": "presences", - "desc": "Upsert presence", - "auth": { - "Project": [], - "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": [] + "Key": [] } }, "security": [ { "Project": [], - "Session": [] + "Key": [] } ], "parameters": [ { - "name": "presenceId", - "description": "Presence unique ID.", + "name": "databaseId", + "description": "Database ID.", "required": true, "schema": { "type": "string", - "x-example": "<PRESENCE_ID>" + "x-example": "<DATABASE_ID>" }, "in": "path" } @@ -33516,59 +34084,43 @@ "schema": { "type": "object", "properties": { - "userId": { - "type": "string", - "description": "User ID.", - "x-example": "<USER_ID>" - }, - "status": { - "type": "string", - "description": "Presence status.", - "x-example": "<STATUS>" - }, - "permissions": { - "type": "array", - "description": "An array of permissions strings. By default, only the current user is granted all permissions. [Learn more about permissions](https:\/\/appwrite.io\/docs\/permissions).", - "x-example": "[\"read(\"any\")\"]", - "items": { - "type": "string" - } - }, - "expiresAt": { + "day": { "type": "string", - "description": "Presence expiry datetime.", - "x-example": "2020-10-15T06:38:00.000+00:00", - "format": "datetime" + "description": "Day of the week for the maintenance window. Allowed values: sun, mon, tue, wed, thu, fri, sat.", + "x-example": "sun" }, - "metadata": { - "type": "object", - "description": "Presence metadata object.", - "default": [], - "x-example": "{}" + "hourUtc": { + "type": "integer", + "description": "Hour in UTC (0-23) for maintenance window start.", + "x-example": 0, + "format": "int32" } }, "required": [ - "status" + "day", + "hourUtc" ] } } } } - }, - "patch": { - "summary": "Update presence", - "operationId": "presencesUpdate", + } + }, + "\/mysql\/{databaseId}\/migrations": { + "post": { + "summary": "Migrate database between shared and dedicated.", + "operationId": "mysqlCreateMigration", "tags": [ - "presences" + "mysql" ], - "description": "Update a presence log by its unique ID. Using the patch method you can pass only specific fields that will get updated.\n", + "description": "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": "Presence", + "description": "DedicatedDatabase", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/presence" + "$ref": "#\/components\/schemas\/dedicatedDatabase" } } } @@ -33576,74 +34128,40 @@ }, "deprecated": false, "x-appwrite": { - "method": "update", - "group": "presences", + "method": "createMigration", + "group": "databases", "cookies": false, "type": "", - "demo": "presences\/update.md", + "demo": "mysql\/create-migration.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "presences.write", + "scope": "databases.write", "platforms": [ - "client", - "console" + "console", + "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/presences\/update.md", - "methods": [ - { - "name": "update", - "namespace": "presences", - "desc": "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": [] + "Key": [] } }, "security": [ { "Project": [], - "Session": [] + "Key": [] } ], "parameters": [ { - "name": "presenceId", - "description": "Presence unique ID.", + "name": "databaseId", + "description": "Database ID.", "required": true, "schema": { "type": "string", - "x-example": "<PRESENCE_ID>" + "x-example": "<DATABASE_ID>" }, "in": "path" } @@ -33654,79 +34172,64 @@ "schema": { "type": "object", "properties": { - "userId": { - "type": "string", - "description": "User ID.", - "x-example": "<USER_ID>" - }, - "status": { + "targetType": { "type": "string", - "description": "Presence status.", - "x-example": "<STATUS>" + "description": "Target database type to migrate to. Allowed values: shared (serverless, scales to zero when idle), dedicated (always-on with persistent resources).", + "x-example": "shared" }, - "expiresAt": { + "specification": { "type": "string", - "description": "Presence expiry datetime.", - "x-example": "2020-10-15T06:38:00.000+00:00", - "format": "datetime" - }, - "metadata": { - "type": "object", - "description": "Presence metadata object.", - "default": {}, - "x-example": "{}" - }, - "permissions": { - "type": "array", - "description": "An array of permissions strings. By default, only the current user is granted all permissions. [Learn more about permissions](https:\/\/appwrite.io\/docs\/permissions).", - "x-example": "[\"read(\"any\")\"]", - "items": { - "type": "string" - } - }, - "purge": { - "type": "boolean", - "description": "When true, purge cached responses used by list presences endpoint.", - "default": false, - "x-example": false + "description": "Target specification to provision when migrating to dedicated. Ignored for shared. Defaults to the database's current specification.", + "x-example": "<SPECIFICATION>", + "x-nullable": true } - } + }, + "required": [ + "targetType" + ] } } } } - }, - "delete": { - "summary": "Delete presence", - "operationId": "presencesDelete", + } + }, + "\/mysql\/{databaseId}\/pitr": { + "get": { + "summary": "Get PITR recovery windows.", + "operationId": "mysqlGetPitr", "tags": [ - "presences" + "mysql" ], - "description": "Delete a presence log by its unique ID.\n", + "description": "Get available point-in-time recovery windows for a dedicated database. Returns the earliest and latest recovery points.", "responses": { - "204": { - "description": "No content" + "200": { + "description": "PITRWindows", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/dedicatedDatabasePITRWindows" + } + } + } } }, "deprecated": false, "x-appwrite": { - "method": "delete", - "group": "presences", + "method": "getPitr", + "group": "databases", "cookies": false, "type": "", - "demo": "presences\/delete.md", + "demo": "mysql\/get-pitr.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "presences.write", + "scope": "databases.read", "platforms": [ "console", - "server", - "client" + "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/presences\/delete.md", "auth": { "Project": [], "Key": [] @@ -33735,40 +34238,38 @@ "security": [ { "Project": [], - "Key": [], - "Session": [], - "JWT": [] + "Key": [] } ], "parameters": [ { - "name": "presenceId", - "description": "Presence unique ID.", + "name": "databaseId", + "description": "Database ID.", "required": true, "schema": { "type": "string", - "x-example": "<PRESENCE_ID>" + "x-example": "<DATABASE_ID>" }, "in": "path" } ] } }, - "\/project": { + "\/mysql\/{databaseId}\/pooler": { "get": { - "summary": "Get project", - "operationId": "projectGet", + "summary": "Get connection pooler configuration.", + "operationId": "mysqlGetPooler", "tags": [ - "project" + "mysql" ], - "description": "Get a project.", + "description": "Get the connection pooler configuration for a dedicated database. Returns pooler mode, max connections, and pool size settings.", "responses": { "200": { - "description": "Project", + "description": "PoolerConfig", "content": { - "": { + "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/project" + "$ref": "#\/components\/schemas\/dedicatedDatabasePooler" } } } @@ -33776,15 +34277,15 @@ }, "deprecated": false, "x-appwrite": { - "method": "get", - "group": null, + "method": "getPooler", + "group": "databases", "cookies": false, "type": "", - "demo": "project\/get.md", + "demo": "mysql\/get-pooler.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "project.read", + "scope": "databases.read", "platforms": [ "console", "server" @@ -33801,65 +34302,34 @@ "Project": [], "Key": [] } - ] - }, - "delete": { - "summary": "Delete project", - "operationId": "projectDelete", - "tags": [ - "project" ], - "description": "Delete a project.", - "responses": { - "204": { - "description": "No content" - } - }, - "deprecated": false, - "x-appwrite": { - "method": "delete", - "group": null, - "cookies": false, - "type": "", - "demo": "project\/delete.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "project.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [], - "Key": [] - } - }, - "security": [ + "parameters": [ { - "Project": [], - "Key": [] + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "x-example": "<DATABASE_ID>" + }, + "in": "path" } ] - } - }, - "\/project\/auth-methods\/{methodId}": { + }, "patch": { - "summary": "Update project auth method status", - "operationId": "projectUpdateAuthMethod", + "summary": "Update connection pooler configuration.", + "operationId": "mysqlUpdatePooler", "tags": [ - "project" + "mysql" ], - "description": "Update properties of a specific auth method. Use this endpoint to enable or disable a method in your project. ", + "description": "Update the connection pooler configuration for a dedicated database. Configure pool mode, max connections, and pool sizes.", "responses": { "200": { - "description": "Project", + "description": "PoolerConfig", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/project" + "$ref": "#\/components\/schemas\/dedicatedDatabasePooler" } } } @@ -33867,15 +34337,15 @@ }, "deprecated": false, "x-appwrite": { - "method": "updateAuthMethod", - "group": null, + "method": "updatePooler", + "group": "databases", "cookies": false, "type": "", - "demo": "project\/update-auth-method.md", + "demo": "mysql\/update-pooler.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "project.write", + "scope": "databases.write", "platforms": [ "console", "server" @@ -33895,31 +34365,12 @@ ], "parameters": [ { - "name": "methodId", - "description": "Auth Method ID. Possible values: email-password,magic-url,email-otp,anonymous,invites,jwt,phone", - "required": true, + "name": "databaseId", + "description": "Database ID.", + "required": true, "schema": { "type": "string", - "x-example": "email-password", - "enum": [ - "email-password", - "magic-url", - "email-otp", - "anonymous", - "invites", - "jwt", - "phone" - ], - "x-enum-name": "ProjectAuthMethodId", - "x-enum-keys": [ - "email-password", - "magic-url", - "email-otp", - "anonymous", - "invites", - "jwt", - "phone" - ] + "x-example": "<DATABASE_ID>" }, "in": "path" } @@ -33930,36 +34381,78 @@ "schema": { "type": "object", "properties": { - "enabled": { + "mode": { + "type": "string", + "description": "Connection pool mode. Allowed values: transaction, session. Transaction mode returns connections to the pool after each transaction; session mode holds connections for the entire session lifetime.", + "x-example": "transaction", + "x-nullable": true + }, + "maxConnections": { + "type": "integer", + "description": "Maximum pooled connections.", + "x-example": 10, + "format": "int32", + "x-nullable": true + }, + "defaultPoolSize": { + "type": "integer", + "description": "Default pool size per user.", + "x-example": 1, + "format": "int32", + "x-nullable": true + }, + "readWriteSplitting": { "type": "boolean", - "description": "Auth method status.", - "x-example": false + "description": "Route SELECTs to HA replicas, writes and locked reads to the primary. Defaults to true when HA is enabled.", + "x-example": false, + "x-nullable": true + }, + "poolerCpuRequest": { + "type": "string", + "description": "Pooler sidecar CPU request override (Kubernetes quantity, e.g. \"250m\" or \"1\"). Leave null for the proportional default (5% of DB CPU, floor 100m).", + "x-example": "<POOLER_CPU_REQUEST>", + "x-nullable": true + }, + "poolerCpuLimit": { + "type": "string", + "description": "Pooler sidecar CPU limit override (Kubernetes quantity, e.g. \"500m\" or \"1\"). Leave null for the proportional default (10% of DB CPU, floor 200m). Changing this field rolls the database pod.", + "x-example": "<POOLER_CPU_LIMIT>", + "x-nullable": true + }, + "poolerMemoryRequest": { + "type": "string", + "description": "Pooler sidecar memory request override (Kubernetes quantity, e.g. \"128Mi\" or \"1Gi\"). Leave null for the proportional default (7.5% of DB memory, floor 64Mi).", + "x-example": "<POOLER_MEMORY_REQUEST>", + "x-nullable": true + }, + "poolerMemoryLimit": { + "type": "string", + "description": "Pooler sidecar memory limit override (Kubernetes quantity, e.g. \"256Mi\" or \"1Gi\"). Leave null for the proportional default (15% of DB memory, floor 128Mi). Changing this field rolls the database pod.", + "x-example": "<POOLER_MEMORY_LIMIT>", + "x-nullable": true } - }, - "required": [ - "enabled" - ] + } } } } } } }, - "\/project\/keys": { + "\/mysql\/{databaseId}\/replicas": { "get": { - "summary": "List project keys", - "operationId": "projectListKeys", + "summary": "Get replica status.", + "operationId": "mysqlGetReplicas", "tags": [ - "project" + "mysql" ], - "description": "Get a list of all API keys from the current project.", + "description": "Get high availability status for a dedicated database. Returns replica statuses, replication lag, and sync mode.", "responses": { "200": { - "description": "API Keys List", + "description": "Replicas", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/keyList" + "$ref": "#\/components\/schemas\/dedicatedDatabaseReplicas" } } } @@ -33967,15 +34460,15 @@ }, "deprecated": false, "x-appwrite": { - "method": "listKeys", - "group": "keys", + "method": "getReplicas", + "group": "databases", "cookies": false, "type": "", - "demo": "project\/list-keys.md", + "demo": "mysql\/get-replicas.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "keys.read", + "scope": "databases.read", "platforms": [ "console", "server" @@ -33995,45 +34488,137 @@ ], "parameters": [ { - "name": "queries", - "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/queries). Maximum of 100 queries are allowed, each 4096 characters long. You may filter on the following attributes: expire, accessedAt, name, scopes", + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "x-example": "<DATABASE_ID>" + }, + "in": "path" + } + ] + } + }, + "\/mysql\/{databaseId}\/restorations": { + "get": { + "summary": "List database 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": { + "method": "listRestorations", + "group": "databases", + "cookies": false, + "type": "", + "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", + "x-example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "status", + "description": "Filter by restoration status.", "required": false, "schema": { - "type": "array", - "items": { - "type": "string" - }, - "default": [] + "type": "string", + "x-example": "pending" }, "in": "query" }, { - "name": "total", - "description": "When set to false, the total count returned will be 0 and will not be calculated.", + "name": "type", + "description": "Filter by restoration type.", "required": false, "schema": { - "type": "boolean", - "x-example": false, - "default": true + "type": "string", + "x-example": "backup" + }, + "in": "query" + }, + { + "name": "limit", + "description": "Maximum number of restorations to return.", + "required": false, + "schema": { + "type": "integer", + "format": "int32", + "x-example": 1, + "default": 25 + }, + "in": "query" + }, + { + "name": "offset", + "description": "Number of restorations to skip.", + "required": false, + "schema": { + "type": "integer", + "format": "int32", + "x-example": 0, + "default": 0 }, "in": "query" } ] }, "post": { - "summary": "Create project key", - "operationId": "projectCreateKey", + "summary": "Create a database restoration.", + "operationId": "mysqlCreateRestoration", "tags": [ - "project" + "mysql" ], - "description": "Create a new API key. It's recommended to have multiple API keys with strict scopes for separate functions within your project.\n\nYou can also create an ephemeral API key if you need a short-lived key instead.", + "description": "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": { - "201": { - "description": "Key", + "202": { + "description": "Restoration", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/key" + "$ref": "#\/components\/schemas\/dedicatedDatabaseRestoration" } } } @@ -34041,15 +34626,15 @@ }, "deprecated": false, "x-appwrite": { - "method": "createKey", - "group": "keys", + "method": "createRestoration", + "group": "databases", "cookies": false, "type": "", - "demo": "project\/create-key.md", + "demo": "mysql\/create-restoration.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "keys.write", + "scope": "databases.write", "platforms": [ "console", "server" @@ -34067,274 +34652,65 @@ "Key": [] } ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "x-example": "<DATABASE_ID>" + }, + "in": "path" + } + ], "requestBody": { "content": { "application\/json": { "schema": { "type": "object", "properties": { - "keyId": { + "type": { "type": "string", - "description": "Key ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.", - "x-example": "<KEY_ID>", - "x-appwrite": { - "idGenerator": "ID.unique" - } + "description": "Restoration type. Allowed values: backup, pitr. Use \"backup\" to restore from a specific backup, or \"pitr\" for point-in-time recovery.", + "default": "backup", + "x-example": "backup" }, - "name": { + "backupId": { "type": "string", - "description": "Key name. Max length: 128 chars.", - "x-example": "<NAME>" - }, - "scopes": { - "type": "array", - "description": "Key scopes list. Maximum of 200 scopes are allowed.", - "x-example": null, - "items": { - "type": "string", - "enum": [ - "project.read", - "project.write", - "keys.read", - "keys.write", - "platforms.read", - "platforms.write", - "mocks.read", - "mocks.write", - "policies.read", - "policies.write", - "project.policies.read", - "project.policies.write", - "project.oauth2.read", - "project.oauth2.write", - "templates.read", - "templates.write", - "stages.read", - "stages.write", - "oauth2.read", - "oauth2.write", - "users.read", - "users.write", - "sessions.read", - "sessions.write", - "teams.read", - "teams.write", - "databases.read", - "databases.write", - "tables.read", - "tables.write", - "columns.read", - "columns.write", - "indexes.read", - "indexes.write", - "rows.read", - "rows.write", - "collections.read", - "collections.write", - "attributes.read", - "attributes.write", - "documents.read", - "documents.write", - "buckets.read", - "buckets.write", - "files.read", - "files.write", - "tokens.read", - "tokens.write", - "functions.read", - "functions.write", - "executions.read", - "executions.write", - "execution.read", - "execution.write", - "sites.read", - "sites.write", - "log.read", - "log.write", - "providers.read", - "providers.write", - "topics.read", - "topics.write", - "subscribers.read", - "subscribers.write", - "targets.read", - "targets.write", - "messages.read", - "messages.write", - "rules.read", - "rules.write", - "webhooks.read", - "webhooks.write", - "locale.read", - "avatars.read", - "health.read", - "assistant.read", - "migrations.read", - "migrations.write", - "schedules.read", - "schedules.write", - "vcs.read", - "vcs.write", - "insights.read", - "insights.write", - "reports.read", - "reports.write", - "presences.read", - "presences.write", - "backups.policies.read", - "backups.policies.write", - "archives.read", - "archives.write", - "restorations.read", - "restorations.write", - "dedicatedDatabases.execute", - "domains.read", - "domains.write", - "events.read", - "apps.read", - "apps.write", - "usage.read" - ], - "x-enum-name": "ProjectKeyScopes", - "x-enum-keys": [ - "project.read", - "project.write", - "keys.read", - "keys.write", - "platforms.read", - "platforms.write", - "mocks.read", - "mocks.write", - "policies.read", - "policies.write", - "project.policies.read", - "project.policies.write", - "project.oauth2.read", - "project.oauth2.write", - "templates.read", - "templates.write", - "stages.read", - "stages.write", - "oauth2.read", - "oauth2.write", - "users.read", - "users.write", - "sessions.read", - "sessions.write", - "teams.read", - "teams.write", - "databases.read", - "databases.write", - "tables.read", - "tables.write", - "columns.read", - "columns.write", - "indexes.read", - "indexes.write", - "rows.read", - "rows.write", - "collections.read", - "collections.write", - "attributes.read", - "attributes.write", - "documents.read", - "documents.write", - "buckets.read", - "buckets.write", - "files.read", - "files.write", - "tokens.read", - "tokens.write", - "functions.read", - "functions.write", - "executions.read", - "executions.write", - "execution.read", - "execution.write", - "sites.read", - "sites.write", - "log.read", - "log.write", - "providers.read", - "providers.write", - "topics.read", - "topics.write", - "subscribers.read", - "subscribers.write", - "targets.read", - "targets.write", - "messages.read", - "messages.write", - "rules.read", - "rules.write", - "webhooks.read", - "webhooks.write", - "locale.read", - "avatars.read", - "health.read", - "assistant.read", - "migrations.read", - "migrations.write", - "schedules.read", - "schedules.write", - "vcs.read", - "vcs.write", - "insights.read", - "insights.write", - "reports.read", - "reports.write", - "presences.read", - "presences.write", - "backups.policies.read", - "backups.policies.write", - "archives.read", - "archives.write", - "restorations.read", - "restorations.write", - "dedicatedDatabases.execute", - "domains.read", - "domains.write", - "events.read", - "apps.read", - "apps.write", - "usage.read" - ] - } + "description": "Backup ID to restore from (required for backup type).", + "x-example": "<BACKUP_ID>", + "x-nullable": true }, - "expire": { + "targetTime": { "type": "string", - "description": "Expiration time in [ISO 8601](https:\/\/www.iso.org\/iso-8601-date-and-time-format.html) format. Use null for unlimited expiration.", + "description": "Target time for PITR (required for pitr type) as an [ISO 8601](https:\/\/www.iso.org\/iso-8601-date-and-time-format.html) datetime.", "x-example": "2020-10-15T06:38:00.000+00:00", "format": "datetime", "x-nullable": true } - }, - "required": [ - "keyId", - "name", - "scopes" - ] + } } } } } } }, - "\/project\/keys\/ephemeral": { - "post": { - "summary": "Create ephemeral project key", - "operationId": "projectCreateEphemeralKey", + "\/mysql\/{databaseId}\/restorations\/{restorationId}": { + "get": { + "summary": "Get a database restoration.", + "operationId": "mysqlGetRestoration", "tags": [ - "project" + "mysql" ], - "description": "Create a new ephemeral API key. It's recommended to have multiple API keys with strict scopes for separate functions within your project.\n\nYou can also create a standard API key if you need a longer-lived key instead.", + "description": "Get details of a specific database restoration including its status, type, and timestamps.", "responses": { - "201": { - "description": "Ephemeral Key", + "200": { + "description": "Restoration", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/ephemeralKey" + "$ref": "#\/components\/schemas\/dedicatedDatabaseRestoration" } } } @@ -34342,15 +34718,15 @@ }, "deprecated": false, "x-appwrite": { - "method": "createEphemeralKey", - "group": "keys", + "method": "getRestoration", + "group": "databases", "cookies": false, "type": "", - "demo": "project\/create-ephemeral-key.md", + "demo": "mysql\/get-restoration.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "keys.write", + "scope": "databases.read", "platforms": [ "console", "server" @@ -34368,259 +34744,45 @@ "Key": [] } ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "scopes": { - "type": "array", - "description": "Key scopes list. Maximum of 200 scopes are allowed.", - "x-example": null, - "items": { - "type": "string", - "enum": [ - "project.read", - "project.write", - "keys.read", - "keys.write", - "platforms.read", - "platforms.write", - "mocks.read", - "mocks.write", - "policies.read", - "policies.write", - "project.policies.read", - "project.policies.write", - "project.oauth2.read", - "project.oauth2.write", - "templates.read", - "templates.write", - "stages.read", - "stages.write", - "oauth2.read", - "oauth2.write", - "users.read", - "users.write", - "sessions.read", - "sessions.write", - "teams.read", - "teams.write", - "databases.read", - "databases.write", - "tables.read", - "tables.write", - "columns.read", - "columns.write", - "indexes.read", - "indexes.write", - "rows.read", - "rows.write", - "collections.read", - "collections.write", - "attributes.read", - "attributes.write", - "documents.read", - "documents.write", - "buckets.read", - "buckets.write", - "files.read", - "files.write", - "tokens.read", - "tokens.write", - "functions.read", - "functions.write", - "executions.read", - "executions.write", - "execution.read", - "execution.write", - "sites.read", - "sites.write", - "log.read", - "log.write", - "providers.read", - "providers.write", - "topics.read", - "topics.write", - "subscribers.read", - "subscribers.write", - "targets.read", - "targets.write", - "messages.read", - "messages.write", - "rules.read", - "rules.write", - "webhooks.read", - "webhooks.write", - "locale.read", - "avatars.read", - "health.read", - "assistant.read", - "migrations.read", - "migrations.write", - "schedules.read", - "schedules.write", - "vcs.read", - "vcs.write", - "insights.read", - "insights.write", - "reports.read", - "reports.write", - "presences.read", - "presences.write", - "backups.policies.read", - "backups.policies.write", - "archives.read", - "archives.write", - "restorations.read", - "restorations.write", - "dedicatedDatabases.execute", - "domains.read", - "domains.write", - "events.read", - "apps.read", - "apps.write", - "usage.read" - ], - "x-enum-name": "ProjectKeyScopes", - "x-enum-keys": [ - "project.read", - "project.write", - "keys.read", - "keys.write", - "platforms.read", - "platforms.write", - "mocks.read", - "mocks.write", - "policies.read", - "policies.write", - "project.policies.read", - "project.policies.write", - "project.oauth2.read", - "project.oauth2.write", - "templates.read", - "templates.write", - "stages.read", - "stages.write", - "oauth2.read", - "oauth2.write", - "users.read", - "users.write", - "sessions.read", - "sessions.write", - "teams.read", - "teams.write", - "databases.read", - "databases.write", - "tables.read", - "tables.write", - "columns.read", - "columns.write", - "indexes.read", - "indexes.write", - "rows.read", - "rows.write", - "collections.read", - "collections.write", - "attributes.read", - "attributes.write", - "documents.read", - "documents.write", - "buckets.read", - "buckets.write", - "files.read", - "files.write", - "tokens.read", - "tokens.write", - "functions.read", - "functions.write", - "executions.read", - "executions.write", - "execution.read", - "execution.write", - "sites.read", - "sites.write", - "log.read", - "log.write", - "providers.read", - "providers.write", - "topics.read", - "topics.write", - "subscribers.read", - "subscribers.write", - "targets.read", - "targets.write", - "messages.read", - "messages.write", - "rules.read", - "rules.write", - "webhooks.read", - "webhooks.write", - "locale.read", - "avatars.read", - "health.read", - "assistant.read", - "migrations.read", - "migrations.write", - "schedules.read", - "schedules.write", - "vcs.read", - "vcs.write", - "insights.read", - "insights.write", - "reports.read", - "reports.write", - "presences.read", - "presences.write", - "backups.policies.read", - "backups.policies.write", - "archives.read", - "archives.write", - "restorations.read", - "restorations.write", - "dedicatedDatabases.execute", - "domains.read", - "domains.write", - "events.read", - "apps.read", - "apps.write", - "usage.read" - ] - } - }, - "duration": { - "type": "integer", - "description": "Time in seconds before ephemeral key expires. Maximum duration is 3600 seconds.", - "x-example": "600", - "format": "int32" - } - }, - "required": [ - "scopes", - "duration" - ] - } - } + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "x-example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "restorationId", + "description": "Restoration ID.", + "required": true, + "schema": { + "type": "string", + "x-example": "<RESTORATION_ID>" + }, + "in": "path" } - } + ] } }, - "\/project\/keys\/{keyId}": { + "\/mysql\/{databaseId}\/status": { "get": { - "summary": "Get project key", - "operationId": "projectGetKey", + "summary": "Get database status.", + "operationId": "mysqlGetStatus", "tags": [ - "project" + "mysql" ], - "description": "Get a key by its unique ID. ", + "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": "Key", + "description": "Status", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/key" + "$ref": "#\/components\/schemas\/databaseStatus" } } } @@ -34628,15 +34790,15 @@ }, "deprecated": false, "x-appwrite": { - "method": "getKey", - "group": "keys", + "method": "getStatus", + "group": "databases", "cookies": false, "type": "", - "demo": "project\/get-key.md", + "demo": "mysql\/get-status.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "keys.read", + "scope": "databases.read", "platforms": [ "console", "server" @@ -34656,31 +34818,33 @@ ], "parameters": [ { - "name": "keyId", - "description": "Key ID.", + "name": "databaseId", + "description": "Database ID.", "required": true, "schema": { "type": "string", - "x-example": "<KEY_ID>" + "x-example": "<DATABASE_ID>" }, "in": "path" } ] - }, - "put": { - "summary": "Update project key", - "operationId": "projectUpdateKey", + } + }, + "\/mysql\/{databaseId}\/upgrades": { + "post": { + "summary": "Upgrade database version.", + "operationId": "mysqlCreateUpgrade", "tags": [ - "project" + "mysql" ], - "description": "Update a key by its unique ID. Use this endpoint to update the name, scopes, or expiration time of an API key.", + "description": "Upgrade a dedicated database to a new engine version. Uses blue-green deployment for zero-downtime cutover.", "responses": { "200": { - "description": "Key", + "description": "DedicatedDatabase", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/key" + "$ref": "#\/components\/schemas\/dedicatedDatabase" } } } @@ -34688,15 +34852,15 @@ }, "deprecated": false, "x-appwrite": { - "method": "updateKey", - "group": "keys", + "method": "createUpgrade", + "group": "databases", "cookies": false, "type": "", - "demo": "project\/update-key.md", + "demo": "mysql\/create-upgrade.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "keys.write", + "scope": "databases.write", "platforms": [ "console", "server" @@ -34716,12 +34880,12 @@ ], "parameters": [ { - "name": "keyId", - "description": "Key ID.", + "name": "databaseId", + "description": "Database ID.", "required": true, "schema": { "type": "string", - "x-example": "<KEY_ID>" + "x-example": "<DATABASE_ID>" }, "in": "path" } @@ -34732,344 +34896,82 @@ "schema": { "type": "object", "properties": { - "name": { - "type": "string", - "description": "Key name. Max length: 128 chars.", - "x-example": "<NAME>" - }, - "scopes": { - "type": "array", - "description": "Key scopes list. Maximum of 200 scopes are allowed.", - "x-example": null, - "items": { - "type": "string", - "enum": [ - "project.read", - "project.write", - "keys.read", - "keys.write", - "platforms.read", - "platforms.write", - "mocks.read", - "mocks.write", - "policies.read", - "policies.write", - "project.policies.read", - "project.policies.write", - "project.oauth2.read", - "project.oauth2.write", - "templates.read", - "templates.write", - "stages.read", - "stages.write", - "oauth2.read", - "oauth2.write", - "users.read", - "users.write", - "sessions.read", - "sessions.write", - "teams.read", - "teams.write", - "databases.read", - "databases.write", - "tables.read", - "tables.write", - "columns.read", - "columns.write", - "indexes.read", - "indexes.write", - "rows.read", - "rows.write", - "collections.read", - "collections.write", - "attributes.read", - "attributes.write", - "documents.read", - "documents.write", - "buckets.read", - "buckets.write", - "files.read", - "files.write", - "tokens.read", - "tokens.write", - "functions.read", - "functions.write", - "executions.read", - "executions.write", - "execution.read", - "execution.write", - "sites.read", - "sites.write", - "log.read", - "log.write", - "providers.read", - "providers.write", - "topics.read", - "topics.write", - "subscribers.read", - "subscribers.write", - "targets.read", - "targets.write", - "messages.read", - "messages.write", - "rules.read", - "rules.write", - "webhooks.read", - "webhooks.write", - "locale.read", - "avatars.read", - "health.read", - "assistant.read", - "migrations.read", - "migrations.write", - "schedules.read", - "schedules.write", - "vcs.read", - "vcs.write", - "insights.read", - "insights.write", - "reports.read", - "reports.write", - "presences.read", - "presences.write", - "backups.policies.read", - "backups.policies.write", - "archives.read", - "archives.write", - "restorations.read", - "restorations.write", - "dedicatedDatabases.execute", - "domains.read", - "domains.write", - "events.read", - "apps.read", - "apps.write", - "usage.read" - ], - "x-enum-name": "ProjectKeyScopes", - "x-enum-keys": [ - "project.read", - "project.write", - "keys.read", - "keys.write", - "platforms.read", - "platforms.write", - "mocks.read", - "mocks.write", - "policies.read", - "policies.write", - "project.policies.read", - "project.policies.write", - "project.oauth2.read", - "project.oauth2.write", - "templates.read", - "templates.write", - "stages.read", - "stages.write", - "oauth2.read", - "oauth2.write", - "users.read", - "users.write", - "sessions.read", - "sessions.write", - "teams.read", - "teams.write", - "databases.read", - "databases.write", - "tables.read", - "tables.write", - "columns.read", - "columns.write", - "indexes.read", - "indexes.write", - "rows.read", - "rows.write", - "collections.read", - "collections.write", - "attributes.read", - "attributes.write", - "documents.read", - "documents.write", - "buckets.read", - "buckets.write", - "files.read", - "files.write", - "tokens.read", - "tokens.write", - "functions.read", - "functions.write", - "executions.read", - "executions.write", - "execution.read", - "execution.write", - "sites.read", - "sites.write", - "log.read", - "log.write", - "providers.read", - "providers.write", - "topics.read", - "topics.write", - "subscribers.read", - "subscribers.write", - "targets.read", - "targets.write", - "messages.read", - "messages.write", - "rules.read", - "rules.write", - "webhooks.read", - "webhooks.write", - "locale.read", - "avatars.read", - "health.read", - "assistant.read", - "migrations.read", - "migrations.write", - "schedules.read", - "schedules.write", - "vcs.read", - "vcs.write", - "insights.read", - "insights.write", - "reports.read", - "reports.write", - "presences.read", - "presences.write", - "backups.policies.read", - "backups.policies.write", - "archives.read", - "archives.write", - "restorations.read", - "restorations.write", - "dedicatedDatabases.execute", - "domains.read", - "domains.write", - "events.read", - "apps.read", - "apps.write", - "usage.read" - ] - } - }, - "expire": { + "targetVersion": { "type": "string", - "description": "Expiration time in [ISO 8601](https:\/\/www.iso.org\/iso-8601-date-and-time-format.html) format. Use null for unlimited expiration.", - "x-example": "2020-10-15T06:38:00.000+00:00", - "format": "datetime", - "x-nullable": true + "description": "Target engine version to upgrade to.", + "x-example": "<TARGET_VERSION>" } }, "required": [ - "name", - "scopes" + "targetVersion" ] } } } } - }, - "delete": { - "summary": "Delete project key", - "operationId": "projectDeleteKey", + } + }, + "\/oauth2\/{project_id}\/approve": { + "post": { + "summary": "Approve OAuth2", + "operationId": "oauth2Approve", "tags": [ - "project" + "oauth2" ], - "description": "Delete a key by its unique ID. Once deleted, the key can no longer be used to authenticate API calls.", + "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": { - "204": { - "description": "No content" + "200": { + "description": "OAuth2 Approve", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/oauth2Approve" + } + } + } } }, "deprecated": false, "x-appwrite": { - "method": "deleteKey", - "group": "keys", + "method": "approve", + "group": "authorization", "cookies": false, "type": "", - "demo": "project\/delete-key.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "keys.write", + "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, "auth": { - "Project": [], - "Key": [] + "ProjectPath": [], + "Session": [] } }, "security": [ { - "Project": [], - "Key": [] + "ProjectPath": [], + "Session": [], + "JWT": [] } ], "parameters": [ { - "name": "keyId", - "description": "Key ID.", + "name": "project_id", + "description": "Project ID in which OAuth2 client exists.", "required": true, "schema": { "type": "string", - "x-example": "<KEY_ID>" + "x-example": "<PROJECT_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": { - "method": "updateLabels", - "group": null, - "cookies": false, - "type": "", - "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": { @@ -35077,17 +34979,26 @@ "schema": { "type": "object", "properties": { - "labels": { - "type": "array", - "description": "Array of project labels. Replaces the previous labels. Maximum of 1000 labels are allowed, each up to 36 alphanumeric characters long.", - "x-example": null, - "items": { - "type": "string" - } + "grant_id": { + "type": "string", + "description": "Grant ID made during authorization, provided to consent screen in URL search params.", + "x-example": "<GRANT_ID>" + }, + "authorization_details": { + "type": "string", + "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.", + "default": "", + "x-example": "<AUTHORIZATION_DETAILS>" + }, + "scope": { + "type": "string", + "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.", + "default": "", + "x-example": "<SCOPE>" } }, "required": [ - "labels" + "grant_id" ] } } @@ -35095,21 +35006,21 @@ } } }, - "\/project\/mock-phones": { + "\/oauth2\/{project_id}\/authorize": { "get": { - "summary": "List project mock phones", - "operationId": "projectListMockPhones", + "summary": "OAuth2 Authorize", + "operationId": "oauth2AuthorizeGet", "tags": [ - "project" + "oauth2" ], - "description": "Get a list of all mock phones in the project. This endpoint returns an array of all mock phones and their OTPs.", + "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": "Mock Numbers List", + "description": "OAuth2 Authorize", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/mockNumberList" + "$ref": "#\/components\/schemas\/oauth2Authorize" } } } @@ -35117,73 +35028,215 @@ }, "deprecated": false, "x-appwrite": { - "method": "listMockPhones", - "group": "mocks", + "method": "authorize", + "group": "authorization", "cookies": false, "type": "", - "demo": "project\/list-mock-phones.md", - "rate-limit": 0, - "rate-time": 3600, + "demo": "oauth2\/authorize.md", + "rate-limit": 60, + "rate-time": 60, "rate-key": "url:{url},ip:{ip}", - "scope": "mocks.read", + "scope": "public", "platforms": [ "console", + "client", "server" ], "packaging": false, "public": true, "auth": { - "Project": [], - "Key": [] + "ProjectPath": [], + "Session": [] } }, "security": [ { - "Project": [], - "Key": [] + "ProjectPath": [], + "Session": [], + "JWT": [] } ], "parameters": [ { - "name": "queries", - "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/queries). Only supported methods are limit and offset", + "name": "project_id", + "description": "Project ID in which OAuth2 client exists.", + "required": true, + "schema": { + "type": "string", + "x-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": "array", - "items": { - "type": "string" - }, + "type": "string", + "x-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", + "x-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", + "x-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", + "x-example": "<SCOPE>", + "default": "" + }, + "in": "query" + }, + { + "name": "state", + "description": "OAuth2 state. You receive this back in the redirect URI.", + "required": false, + "schema": { + "type": "string", + "x-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", + "x-example": "<NONCE>", + "default": "" + }, + "in": "query" + }, + { + "name": "code_challenge", + "description": "PKCE code challenge. Required when OAuth2 app is public.", + "required": false, + "schema": { + "type": "string", + "x-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", + "x-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", + "x-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", + "x-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", + "x-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": "total", - "description": "When set to false, the total count returned will be 0 and will not be calculated.", + "name": "audience", + "description": "Compatibility alias for a single OAuth2 resource indicator URI.", "required": false, "schema": { - "type": "boolean", - "x-example": false, - "default": true + "type": "string", + "x-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", + "x-example": "<REQUEST_URI>", + "default": "" }, "in": "query" } ] }, "post": { - "summary": "Create project mock phone", - "operationId": "projectCreateMockPhone", + "summary": "OAuth2 Authorize", + "operationId": "oauth2AuthorizePost", "tags": [ - "project" + "oauth2" ], - "description": "Create a new mock phone for your project. Use this endpoint to register a mock phone number and its sign-in OTP for your testers.", + "description": "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": { - "201": { - "description": "Mock Number", + "200": { + "description": "OAuth2 Authorize", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/mockNumber" + "$ref": "#\/components\/schemas\/oauth2Authorize" } } } @@ -35191,30 +35244,44 @@ }, "deprecated": false, "x-appwrite": { - "method": "createMockPhone", - "group": "mocks", + "method": "authorizePost", + "group": "authorization", "cookies": false, "type": "", - "demo": "project\/create-mock-phone.md", - "rate-limit": 0, - "rate-time": 3600, + "demo": "oauth2\/authorize.md", + "rate-limit": 60, + "rate-time": 60, "rate-key": "url:{url},ip:{ip}", - "scope": "mocks.write", + "scope": "public", "platforms": [ "console", + "client", "server" ], "packaging": false, "public": true, "auth": { - "Project": [], - "Key": [] + "ProjectPath": [], + "Session": [] } }, "security": [ { - "Project": [], - "Key": [] + "ProjectPath": [], + "Session": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "project_id", + "description": "Project ID in which OAuth2 client exists.", + "required": true, + "schema": { + "type": "string", + "x-example": "<PROJECT_ID>" + }, + "in": "path" } ], "requestBody": { @@ -35223,43 +35290,114 @@ "schema": { "type": "object", "properties": { - "number": { + "client_id": { "type": "string", - "description": "Phone number to associate with the mock phone. Must be a valid E.164 formatted phone number.", - "x-example": "+12065550100", - "format": "phone" + "description": "OAuth2 client ID. Either a registered app ID or an HTTPS client ID metadata document URL.", + "default": "", + "x-example": "<CLIENT_ID>" }, - "otp": { + "redirect_uri": { "type": "string", - "description": "One-time password (OTP) to associate with the mock phone. Must be a 6-digit numeric code.", - "x-example": "<OTP>" + "description": "Redirect URI where visitor will be redirected after authorization, whether successful or not.", + "default": "", + "x-example": "https:\/\/example.com", + "format": "url" + }, + "response_type": { + "type": "string", + "description": "OAuth2 \/ OIDC response type. One of `code` (Authorization Code Flow), `id_token` (Implicit Flow, OIDC login only), or `code id_token` (Hybrid Flow).", + "default": "", + "x-example": "" + }, + "scope": { + "type": "string", + "description": "Space-separated OAuth2 scopes. Can include project scopes, and built-in scopes: `openid`, `email`, `profile`, `phone`.", + "default": "", + "x-example": "<SCOPE>" + }, + "state": { + "type": "string", + "description": "OAuth2 state. You receive this back in the redirect URI.", + "default": "", + "x-example": "<STATE>" + }, + "nonce": { + "type": "string", + "description": "OIDC nonce parameter to prevent replay attacks. Required when response_type includes `id_token`.", + "default": "", + "x-example": "<NONCE>" + }, + "code_challenge": { + "type": "string", + "description": "PKCE code challenge. Required when OAuth2 app is public.", + "default": "", + "x-example": "<CODE_CHALLENGE>" + }, + "code_challenge_method": { + "type": "string", + "description": "PKCE code challenge method. Required when OAuth2 app is public.", + "default": "", + "x-example": "s256" + }, + "prompt": { + "type": "string", + "description": "OIDC prompt parameter for customization of consent screen. Space-separated list of: none, login, consent, select_account.", + "default": "", + "x-example": "<PROMPT>" + }, + "max_age": { + "type": "integer", + "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.", + "x-example": 0, + "format": "int32", + "x-nullable": true + }, + "authorization_details": { + "type": "string", + "description": "Rich authorization request. JSON array of objects, each with a `type` and project-defined fields", + "default": "", + "x-example": "<AUTHORIZATION_DETAILS>" + }, + "resource": { + "type": "string", + "description": "RFC 8707 resource indicator URI or URI list. Each value must be an absolute URI without a fragment.", + "default": [], + "x-example": null + }, + "audience": { + "type": "string", + "description": "Compatibility alias for a single OAuth2 resource indicator URI.", + "default": "", + "x-example": "<AUDIENCE>" + }, + "request_uri": { + "type": "string", + "description": "OAuth2 authorization request handle returned by the pushed authorization request endpoint.", + "default": "", + "x-example": "<REQUEST_URI>" } - }, - "required": [ - "number", - "otp" - ] + } } } } } } }, - "\/project\/mock-phones\/{number}": { - "get": { - "summary": "Get project mock phone", - "operationId": "projectGetMockPhone", + "\/oauth2\/{project_id}\/device_authorization": { + "post": { + "summary": "OAuth2 Device Authorization", + "operationId": "oauth2CreateDeviceAuthorization", "tags": [ - "project" + "oauth2" ], - "description": "Get a mock phone by its unique number. This endpoint returns the mock phone's OTP.", + "description": "Start the OAuth2 Device Authorization Grant. Returns the device code, user code, verification URL, expiration, and polling interval.", "responses": { "200": { - "description": "Mock Number", + "description": "OAuth2 Device Authorization", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/mockNumber" + "$ref": "#\/components\/schemas\/oauth2DeviceAuthorization" } } } @@ -35267,60 +35405,105 @@ }, "deprecated": false, "x-appwrite": { - "method": "getMockPhone", - "group": "mocks", + "method": "createDeviceAuthorization", + "group": "authorization", "cookies": false, "type": "", - "demo": "project\/get-mock-phone.md", - "rate-limit": 0, - "rate-time": 3600, + "demo": "oauth2\/create-device-authorization.md", + "rate-limit": 60, + "rate-time": 60, "rate-key": "url:{url},ip:{ip}", - "scope": "mocks.read", + "scope": "public", "platforms": [ "console", + "client", "server" ], "packaging": false, "public": true, "auth": { - "Project": [], - "Key": [] + "ProjectPath": [], + "Session": [] } }, "security": [ { - "Project": [], + "ProjectPath": [], + "Session": [], + "JWT": [], "Key": [] } ], "parameters": [ { - "name": "number", - "description": "Phone number associated with the mock phone. Must be a valid E.164 formatted phone number.", + "name": "project_id", + "description": "Project ID in which OAuth2 client exists.", "required": true, "schema": { "type": "string", - "format": "phone", - "x-example": "+12065550100" + "x-example": "<PROJECT_ID>" }, "in": "path" } - ] - }, - "put": { - "summary": "Update project mock phone", - "operationId": "projectUpdateMockPhone", + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "client_id": { + "type": "string", + "description": "OAuth2 client ID. Either a registered app ID or an HTTPS client ID metadata document URL.", + "default": "", + "x-example": "<CLIENT_ID>" + }, + "scope": { + "type": "string", + "description": "Space-separated OAuth2 scopes. Can include project scopes, and built-in scopes: `openid`, `email`, `profile`.", + "default": "", + "x-example": "<SCOPE>" + }, + "authorization_details": { + "type": "string", + "description": "Rich authorization request. JSON array of objects, each with a `type` and project-defined fields", + "default": "", + "x-example": "<AUTHORIZATION_DETAILS>" + }, + "resource": { + "type": "string", + "description": "RFC 8707 resource indicator URI or URI list. Each value must be an absolute URI without a fragment.", + "default": [], + "x-example": null + }, + "audience": { + "type": "string", + "description": "Compatibility alias for a single OAuth2 resource indicator URI.", + "default": "", + "x-example": "<AUDIENCE>" + } + } + } + } + } + } + } + }, + "\/oauth2\/{project_id}\/grants": { + "post": { + "summary": "Create OAuth2 Grant", + "operationId": "oauth2CreateGrant", "tags": [ - "project" + "oauth2" ], - "description": "Update a mock phone by its unique number. Use this endpoint to update the mock phone's OTP.", + "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": { - "200": { - "description": "Mock Number", + "201": { + "description": "OAuth2 Grant", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/mockNumber" + "$ref": "#\/components\/schemas\/oauth2Grant" } } } @@ -35328,41 +35511,42 @@ }, "deprecated": false, "x-appwrite": { - "method": "updateMockPhone", - "group": "mocks", + "method": "createGrant", + "group": "grants", "cookies": false, "type": "", - "demo": "project\/update-mock-phone.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "mocks.write", + "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, "auth": { - "Project": [], - "Key": [] + "ProjectPath": [], + "Session": [] } }, "security": [ { - "Project": [], - "Key": [] + "ProjectPath": [], + "Session": [], + "JWT": [] } ], "parameters": [ { - "name": "number", - "description": "Phone number associated with the mock phone. Must be a valid E.164 formatted phone number.", + "name": "project_id", + "description": "Project ID in which OAuth2 client exists.", "required": true, "schema": { "type": "string", - "format": "phone", - "x-example": "+12065550100" + "x-example": "<PROJECT_ID>" }, "in": "path" } @@ -35373,90 +35557,111 @@ "schema": { "type": "object", "properties": { - "otp": { + "user_code": { "type": "string", - "description": "One-time password (OTP) to associate with the mock phone. Must be a 6-digit numeric code.", - "x-example": "<OTP>" + "description": "User code displayed on the device.", + "x-example": "<USER_CODE>" } }, "required": [ - "otp" + "user_code" ] } } } } - }, - "delete": { - "summary": "Delete project mock phone", - "operationId": "projectDeleteMockPhone", + } + }, + "\/oauth2\/{project_id}\/grants\/{grant_id}": { + "get": { + "summary": "Get OAuth2 Grant", + "operationId": "oauth2GetGrant", "tags": [ - "project" + "oauth2" ], - "description": "Delete a mock phone by its unique number. This endpoint removes the mock phone and its OTP configuration from the project.", + "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": { - "204": { - "description": "No content" + "200": { + "description": "OAuth2 Grant", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/oauth2Grant" + } + } + } } }, "deprecated": false, "x-appwrite": { - "method": "deleteMockPhone", - "group": "mocks", + "method": "getGrant", + "group": "grants", "cookies": false, "type": "", - "demo": "project\/delete-mock-phone.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "mocks.write", + "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, "auth": { - "Project": [], - "Key": [] + "ProjectPath": [], + "Session": [] } }, "security": [ { - "Project": [], + "ProjectPath": [], + "Session": [], + "JWT": [], "Key": [] } ], "parameters": [ { - "name": "number", - "description": "Phone number associated with the mock phone. Must be a valid E.164 formatted phone number.", + "name": "project_id", + "description": "Project ID in which OAuth2 client that created grant during authorization exists.", "required": true, "schema": { "type": "string", - "format": "phone", - "x-example": "+12065550100" + "x-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", + "x-example": "<GRANT_ID>" }, "in": "path" } ] } }, - "\/project\/oauth2": { + "\/oauth2\/{project_id}\/organizations": { "get": { - "summary": "List project OAuth2 providers", - "operationId": "projectListOAuth2Providers", + "summary": "OAuth2 List Accessible Organizations", + "operationId": "oauth2ListOrganizations", "tags": [ - "project" + "oauth2" ], - "description": "Get a list of all OAuth2 providers supported by the server, along with the project's configuration for each. Credential fields are write-only and always returned empty.", + "description": "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 Providers List", + "description": "OAuth2 accessible organizations list", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/oAuth2ProviderList" + "$ref": "#\/components\/schemas\/oauth2OrganizationList" } } } @@ -35464,78 +35669,99 @@ }, "deprecated": false, "x-appwrite": { - "method": "listOAuth2Providers", - "group": "oauth2", + "method": "listOrganizations", + "group": "platform", "cookies": false, "type": "", - "demo": "project\/list-o-auth-2-providers.md", - "rate-limit": 0, - "rate-time": 3600, + "demo": "oauth2\/list-organizations.md", + "rate-limit": 120, + "rate-time": 60, "rate-key": "url:{url},ip:{ip}", - "scope": [ - "oauth2.read", - "project.oauth2.read" - ], + "scope": "oauth2.organizations.read", "platforms": [ "console", + "client", "server" ], "packaging": false, "public": true, "auth": { - "Project": [], - "Key": [] + "ProjectPath": [], + "Session": [] } }, "security": [ { - "Project": [], + "ProjectPath": [], + "Session": [], + "JWT": [], "Key": [] } ], "parameters": [ { - "name": "queries", - "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/queries). Only supported methods are limit and offset", + "name": "project_id", + "description": "Project ID of the console project the OAuth2 access token was issued for.", + "required": true, + "schema": { + "type": "string", + "x-example": "<PROJECT_ID>" + }, + "in": "path" + }, + { + "name": "limit", + "description": "Maximum number of organizations to return. Between 1 and 5000.", "required": false, "schema": { - "type": "array", - "items": { - "type": "string" - }, - "default": [] + "type": "integer", + "format": "int32", + "x-example": 1, + "default": 25 }, "in": "query" }, { - "name": "total", - "description": "When set to false, the total count returned will be 0 and will not be calculated.", + "name": "offset", + "description": "Number of organizations to skip before returning results. Used for pagination.", "required": false, "schema": { - "type": "boolean", - "x-example": false, - "default": true + "type": "integer", + "format": "int32", + "x-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", + "x-example": "<SEARCH>", + "default": "" }, "in": "query" } ] } }, - "\/project\/oauth2-server": { - "put": { - "summary": "Update OAuth2 server", - "operationId": "projectUpdateOAuth2Server", + "\/oauth2\/{project_id}\/par": { + "post": { + "summary": "OAuth2 PAR", + "operationId": "oauth2CreatePAR", "tags": [ - "project" + "oauth2" ], - "description": "Update the OAuth2 server (OIDC provider) configuration.", + "description": "Store an OAuth2 authorization request server-side and receive a short-lived request_uri handle for the authorize endpoint.", "responses": { - "200": { - "description": "Project", + "201": { + "description": "OAuth2 PAR", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/project" + "$ref": "#\/components\/schemas\/oauth2PAR" } } } @@ -35543,132 +35769,135 @@ }, "deprecated": false, "x-appwrite": { - "method": "updateOAuth2Server", - "group": null, + "method": "createPAR", + "group": "authorization", "cookies": false, "type": "", - "demo": "project\/update-o-auth-2-server.md", - "rate-limit": 0, - "rate-time": 3600, + "demo": "oauth2\/create-par.md", + "rate-limit": 60, + "rate-time": 60, "rate-key": "url:{url},ip:{ip}", - "scope": "project.write", + "scope": "public", "platforms": [ "console", + "client", "server" ], "packaging": false, "public": true, "auth": { - "Project": [], - "Key": [] + "ProjectPath": [], + "Session": [] } }, "security": [ { - "Project": [], + "ProjectPath": [], + "Session": [], + "JWT": [], "Key": [] } ], + "parameters": [ + { + "name": "project_id", + "description": "Project ID in which OAuth2 client exists.", + "required": true, + "schema": { + "type": "string", + "x-example": "<PROJECT_ID>" + }, + "in": "path" + } + ], "requestBody": { "content": { "application\/json": { "schema": { "type": "object", "properties": { - "enabled": { - "type": "boolean", - "description": "Enable or disable the OAuth2 server.", - "x-example": false + "client_id": { + "type": "string", + "description": "OAuth2 client ID. Either a registered app ID or an HTTPS client ID metadata document URL.", + "x-example": "<CLIENT_ID>" }, - "authorizationUrl": { + "redirect_uri": { "type": "string", - "description": "URL to your application with consent screen.", + "description": "Redirect URI where visitor will be redirected after authorization, whether successful or not.", "x-example": "https:\/\/example.com", "format": "url" }, - "scopes": { - "type": "array", - "description": "List of allowed OAuth2 scopes. Maximum of 100 scopes are allowed, each up to 128 characters long.", - "default": [], - "x-example": null, - "items": { - "type": "string" - } - }, - "authorizationDetailsTypes": { - "type": "array", - "description": "List of accepted `authorization_details` types. Maximum of 100 types are allowed, each up to 128 characters long.", - "default": [], - "x-example": null, - "items": { - "type": "string" - } + "response_type": { + "type": "string", + "description": "OAuth2 \/ OIDC response type.", + "x-example": "code" }, - "accessTokenDuration": { - "type": "integer", - "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.", - "x-example": 60, - "format": "int32", - "x-nullable": true + "scope": { + "type": "string", + "description": "Space-separated OAuth2 scopes. Can include project scopes, and built-in scopes: `openid`, `email`, `profile`, `phone`.", + "default": "", + "x-example": "<SCOPE>" }, - "refreshTokenDuration": { - "type": "integer", - "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.", - "x-example": 60, - "format": "int32", - "x-nullable": true + "state": { + "type": "string", + "description": "OAuth2 state. You receive this back in the redirect URI.", + "default": "", + "x-example": "<STATE>" }, - "publicAccessTokenDuration": { - "type": "integer", - "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.", - "x-example": 60, - "format": "int32", - "x-nullable": true + "nonce": { + "type": "string", + "description": "OIDC nonce parameter to prevent replay attacks. Required when response_type includes `id_token`.", + "default": "", + "x-example": "<NONCE>" }, - "publicRefreshTokenDuration": { - "type": "integer", - "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.", - "x-example": 60, - "format": "int32", - "x-nullable": true + "code_challenge": { + "type": "string", + "description": "PKCE code challenge. Required when OAuth2 app is public.", + "default": "", + "x-example": "<CODE_CHALLENGE>" }, - "confidentialPkce": { - "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.", - "x-example": false, - "x-nullable": true + "code_challenge_method": { + "type": "string", + "description": "PKCE code challenge method. Required when OAuth2 app is public.", + "default": "", + "x-example": "s256" }, - "verificationUrl": { + "prompt": { "type": "string", - "description": "URL to your application page where users enter the device flow user code. Required to enable the Device Authorization Grant.", + "description": "OIDC prompt parameter for customization of consent screen. Space-separated list of: none, login, consent, select_account.", "default": "", - "x-example": "https:\/\/example.com", - "format": "url" + "x-example": "<PROMPT>" }, - "userCodeLength": { + "max_age": { "type": "integer", - "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.", - "x-example": 6, + "description": "OIDC max_age parameter for customization of consent screen.", + "x-example": 0, "format": "int32", "x-nullable": true }, - "userCodeFormat": { + "authorization_details": { "type": "string", - "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`.", - "default": "alphanumeric", - "x-example": "numeric" + "description": "Rich authorization request. JSON array of objects, each with a `type` and project-defined fields", + "default": "", + "x-example": "<AUTHORIZATION_DETAILS>" }, - "deviceCodeDuration": { - "type": "integer", - "description": "Lifetime in seconds of device flow device codes and user codes. Device codes are intentionally short-lived. Leave empty to use default 600.", - "x-example": 60, - "format": "int32", - "x-nullable": true + "resource": { + "type": "string", + "description": "RFC 8707 resource indicator URI or URI list. Each value must be an absolute URI without a fragment.", + "default": [], + "x-example": null + }, + "audience": { + "type": "string", + "description": "Compatibility alias for a single OAuth2 resource indicator URI.", + "default": "", + "x-example": "<AUDIENCE>" } }, "required": [ - "enabled", - "authorizationUrl" + "client_id", + "redirect_uri", + "response_type" ] } } @@ -35676,21 +35905,21 @@ } } }, - "\/project\/oauth2\/amazon": { - "patch": { - "summary": "Update project OAuth2 Amazon", - "operationId": "projectUpdateOAuth2Amazon", + "\/oauth2\/{project_id}\/projects": { + "get": { + "summary": "OAuth2 List Accessible Projects", + "operationId": "oauth2ListProjects", "tags": [ - "project" + "oauth2" ], - "description": "Update the project OAuth2 Amazon configuration.", + "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": "OAuth2Amazon", + "description": "OAuth2 accessible projects list", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/oAuth2Amazon" + "$ref": "#\/components\/schemas\/oauth2ProjectList" } } } @@ -35698,81 +35927,99 @@ }, "deprecated": false, "x-appwrite": { - "method": "updateOAuth2Amazon", - "group": "oauth2", + "method": "listProjects", + "group": "platform", "cookies": false, "type": "", - "demo": "project\/update-o-auth-2-amazon.md", - "rate-limit": 0, - "rate-time": 3600, + "demo": "oauth2\/list-projects.md", + "rate-limit": 120, + "rate-time": 60, "rate-key": "url:{url},ip:{ip}", - "scope": [ - "oauth2.write", - "project.oauth2.write" - ], + "scope": "oauth2.projects.read", "platforms": [ "console", + "client", "server" ], "packaging": false, "public": true, "auth": { - "Project": [], - "Key": [] + "ProjectPath": [], + "Session": [] } }, "security": [ { - "Project": [], + "ProjectPath": [], + "Session": [], + "JWT": [], "Key": [] } ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "clientId": { - "type": "string", - "description": "'Client ID' of Amazon OAuth2 app. For example: amzn1.application-oa2-client.87400c00000000000000000000063d5b2", - "x-example": "<CLIENT_ID>", - "x-nullable": true - }, - "clientSecret": { - "type": "string", - "description": "'Client Secret' of Amazon OAuth2 app. For example: 79ffe4000000000000000000000000000000000000000000000000000002de55", - "x-example": "<CLIENT_SECRET>", - "x-nullable": true - }, - "enabled": { - "type": "boolean", - "description": "OAuth2 sign-in method status. Set to true to enable new session creation. Setting to true will trigger end-to-end credentials validation, and will throw if the credentials are invalid.", - "x-example": false, - "x-nullable": true - } - } - } - } + "parameters": [ + { + "name": "project_id", + "description": "Project ID of the console project the OAuth2 access token was issued for.", + "required": true, + "schema": { + "type": "string", + "x-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", + "x-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", + "x-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", + "x-example": "<SEARCH>", + "default": "" + }, + "in": "query" } - } + ] } }, - "\/project\/oauth2\/apple": { - "patch": { - "summary": "Update project OAuth2 Apple", - "operationId": "projectUpdateOAuth2Apple", + "\/oauth2\/{project_id}\/reject": { + "post": { + "summary": "Reject OAuth2", + "operationId": "oauth2Reject", "tags": [ - "project" + "oauth2" ], - "description": "Update the project OAuth2 Apple configuration.", + "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": "OAuth2Apple", + "description": "OAuth2 Reject", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/oAuth2Apple" + "$ref": "#\/components\/schemas\/oauth2Reject" } } } @@ -35780,93 +36027,83 @@ }, "deprecated": false, "x-appwrite": { - "method": "updateOAuth2Apple", - "group": "oauth2", + "method": "reject", + "group": "authorization", "cookies": false, "type": "", - "demo": "project\/update-o-auth-2-apple.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": [ - "oauth2.write", - "project.oauth2.write" - ], + "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, "auth": { - "Project": [], - "Key": [] + "ProjectPath": [], + "Session": [] } }, "security": [ { - "Project": [], - "Key": [] + "ProjectPath": [], + "Session": [], + "JWT": [] } ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "serviceId": { - "type": "string", - "description": "'Service ID' of Apple OAuth2 app. For example: ip.appwrite.app.web", - "x-example": "<SERVICE_ID>", - "x-nullable": true - }, - "keyId": { - "type": "string", - "description": "'Key ID' of Apple OAuth2 app. For example: P4000000N8", - "x-example": "<KEY_ID>", - "x-nullable": true - }, - "teamId": { - "type": "string", - "description": "'Team ID' of Apple OAuth2 app. For example: D4000000R6", - "x-example": "<TEAM_ID>", - "x-nullable": true - }, - "p8File": { + "parameters": [ + { + "name": "project_id", + "description": "Project ID in which OAuth2 client exists.", + "required": true, + "schema": { + "type": "string", + "x-example": "<PROJECT_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "grant_id": { "type": "string", - "description": "Contents of the Apple OAuth2 app .p8 private key file. The secret key wrapped by the PEM markers is 200 characters long. For example: -----BEGIN PRIVATE KEY-----MIGTAg...jy2Xbna-----END PRIVATE KEY-----", - "x-example": "<P8_FILE>", - "x-nullable": true - }, - "enabled": { - "type": "boolean", - "description": "OAuth2 sign-in method status. Set to true to enable new session creation. Setting to true will trigger end-to-end credentials validation, and will throw if the credentials are invalid.", - "x-example": false, - "x-nullable": true + "description": "Grant ID made during authorization, provided to consent screen in URL search params.", + "x-example": "<GRANT_ID>" } - } + }, + "required": [ + "grant_id" + ] } } } } } }, - "\/project\/oauth2\/auth0": { - "patch": { - "summary": "Update project OAuth2 Auth0", - "operationId": "projectUpdateOAuth2Auth0", + "\/oauth2\/{project_id}\/revoke": { + "post": { + "summary": "OAuth2 Revoke", + "operationId": "oauth2Revoke", "tags": [ - "project" + "oauth2" ], - "description": "Update the project OAuth2 Auth0 configuration.", + "description": "Revoke an OAuth2 access token or refresh token.", "responses": { "200": { - "description": "OAuth2Auth0", + "description": "File", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/oAuth2Auth0" + "type": "string", + "format": "binary" } } } @@ -35874,87 +36111,101 @@ }, "deprecated": false, "x-appwrite": { - "method": "updateOAuth2Auth0", - "group": "oauth2", + "method": "revoke", + "group": "tokens", "cookies": false, "type": "", - "demo": "project\/update-o-auth-2-auth-0.md", - "rate-limit": 0, - "rate-time": 3600, + "demo": "oauth2\/revoke.md", + "rate-limit": 60, + "rate-time": 60, "rate-key": "url:{url},ip:{ip}", - "scope": [ - "oauth2.write", - "project.oauth2.write" - ], + "scope": "public", "platforms": [ "console", + "client", "server" ], "packaging": false, "public": true, "auth": { - "Project": [], - "Key": [] + "ProjectPath": [], + "Session": [] } }, "security": [ { - "Project": [], + "ProjectPath": [], + "Session": [], + "JWT": [], "Key": [] } ], + "parameters": [ + { + "name": "project_id", + "description": "Project ID in which OAuth2 client exists.", + "required": true, + "schema": { + "type": "string", + "x-example": "<PROJECT_ID>" + }, + "in": "path" + } + ], "requestBody": { "content": { "application\/json": { "schema": { "type": "object", "properties": { - "clientId": { + "token": { "type": "string", - "description": "'Client ID' of Auth0 OAuth2 app. For example: OaOkIA000000000000000000005KLSYq", - "x-example": "<CLIENT_ID>", - "x-nullable": true + "description": "The access or refresh token to revoke.", + "x-example": "<TOKEN>" }, - "clientSecret": { + "token_type_hint": { "type": "string", - "description": "'Client Secret' of Auth0 OAuth2 app. For example: zXz0000-00000000000000000000000000000-00000000000000000000PJafnF", - "x-example": "<CLIENT_SECRET>", - "x-nullable": true + "description": "Type of token to revoke (access_token or refresh_token).", + "default": "", + "x-example": "access_token" }, - "endpoint": { + "client_id": { "type": "string", - "description": "Domain of Auth0 instance. For example: example.us.auth0.com", - "x-example": "<ENDPOINT>", - "x-nullable": true + "description": "OAuth2 client ID. Either a registered app ID or an HTTPS client ID metadata document URL.", + "default": "", + "x-example": "<CLIENT_ID>" }, - "enabled": { - "type": "boolean", - "description": "OAuth2 sign-in method status. Set to true to enable new session creation. Setting to true will trigger end-to-end credentials validation, and will throw if the credentials are invalid.", - "x-example": false, - "x-nullable": true + "client_secret": { + "type": "string", + "description": "OAuth2 client secret. Required for confidential apps; omitted for public apps.", + "default": "", + "x-example": "<CLIENT_SECRET>" } - } + }, + "required": [ + "token" + ] } } } } } }, - "\/project\/oauth2\/authentik": { - "patch": { - "summary": "Update project OAuth2 Authentik", - "operationId": "projectUpdateOAuth2Authentik", + "\/oauth2\/{project_id}\/token": { + "post": { + "summary": "OAuth2 Token", + "operationId": "oauth2CreateToken", "tags": [ - "project" + "oauth2" ], - "description": "Update the project OAuth2 Authentik configuration.", + "description": "Exchange an OAuth2 authorization code, refresh token, or device code for access and refresh tokens.", "responses": { "200": { - "description": "OAuth2Authentik", + "description": "OAuth2 Token", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/oAuth2Authentik" + "$ref": "#\/components\/schemas\/oauth2Token" } } } @@ -35962,87 +36213,138 @@ }, "deprecated": false, "x-appwrite": { - "method": "updateOAuth2Authentik", - "group": "oauth2", + "method": "createToken", + "group": "tokens", "cookies": false, "type": "", - "demo": "project\/update-o-auth-2-authentik.md", - "rate-limit": 0, - "rate-time": 3600, + "demo": "oauth2\/create-token.md", + "rate-limit": 60, + "rate-time": 60, "rate-key": "url:{url},ip:{ip}", - "scope": [ - "oauth2.write", - "project.oauth2.write" - ], + "scope": "public", "platforms": [ "console", + "client", "server" ], "packaging": false, "public": true, "auth": { - "Project": [], - "Key": [] + "ProjectPath": [], + "Session": [] } }, "security": [ { - "Project": [], + "ProjectPath": [], + "Session": [], + "JWT": [], "Key": [] } ], + "parameters": [ + { + "name": "project_id", + "description": "Project ID in which OAuth2 client exists.", + "required": true, + "schema": { + "type": "string", + "x-example": "<PROJECT_ID>" + }, + "in": "path" + } + ], "requestBody": { "content": { "application\/json": { "schema": { "type": "object", "properties": { - "clientId": { + "grant_type": { "type": "string", - "description": "'Client ID' of Authentik OAuth2 app. For example: dTKOPa0000000000000000000000000000e7G8hv", - "x-example": "<CLIENT_ID>", - "x-nullable": true + "description": "OAuth2 grant type. Can be one of: `authorization_code`, `refresh_token`, `urn:ietf:params:oauth:grant-type:device_code`.", + "x-example": "<GRANT_TYPE>" }, - "clientSecret": { + "code": { "type": "string", - "description": "'Client Secret' of Authentik OAuth2 app. For example: ntQadq000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000Hp5WK", - "x-example": "<CLIENT_SECRET>", - "x-nullable": true + "description": "Authorization code to be exchanged for access and refresh tokens. Required for `authorization_code` grant type.", + "default": "", + "x-example": "<CODE>" }, - "endpoint": { + "refresh_token": { "type": "string", - "description": "Domain of Authentik instance. For example: example.authentik.com", - "x-example": "<ENDPOINT>", - "x-nullable": true + "description": "Refresh token to be exchanged for a new access and refresh tokens. Required for `refresh_token` grant type.", + "default": "", + "x-example": "<REFRESH_TOKEN>" }, - "enabled": { - "type": "boolean", - "description": "OAuth2 sign-in method status. Set to true to enable new session creation. Setting to true will trigger end-to-end credentials validation, and will throw if the credentials are invalid.", - "x-example": false, - "x-nullable": true + "device_code": { + "type": "string", + "description": "Device code obtained from the device authorization endpoint. Required for `urn:ietf:params:oauth:grant-type:device_code` grant type.", + "default": "", + "x-example": "<DEVICE_CODE>" + }, + "client_id": { + "type": "string", + "description": "OAuth2 client ID. Either a registered app ID or an HTTPS client ID metadata document URL.", + "default": "", + "x-example": "<CLIENT_ID>" + }, + "client_secret": { + "type": "string", + "description": "OAuth2 client secret. Required for confidential apps.", + "default": "", + "x-example": "<CLIENT_SECRET>" + }, + "code_verifier": { + "type": "string", + "description": "PKCE code verifier. Required for public apps.", + "default": "", + "x-example": "<CODE_VERIFIER>" + }, + "redirect_uri": { + "type": "string", + "description": "Redirect URI. Required for `authorization_code` grant type.", + "default": "", + "x-example": "https:\/\/example.com", + "format": "url" + }, + "resource": { + "type": "string", + "description": "RFC 8707 resource indicator URI or URI list. Each value must be an absolute URI without a fragment.", + "default": [], + "x-example": null + }, + "audience": { + "type": "string", + "description": "Compatibility alias for a single OAuth2 resource indicator URI.", + "default": "", + "x-example": "<AUDIENCE>" } - } + }, + "required": [ + "grant_type" + ] } } } } } }, - "\/project\/oauth2\/autodesk": { - "patch": { - "summary": "Update project OAuth2 Autodesk", - "operationId": "projectUpdateOAuth2Autodesk", + "\/organization": { + "get": { + "summary": "Get organization", + "operationId": "organizationGet", "tags": [ - "project" + "organization" ], - "description": "Update the project OAuth2 Autodesk configuration.", + "description": "Get the current organization.", "responses": { "200": { - "description": "OAuth2Autodesk", + "description": "Organization", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/oAuth2Autodesk" + "$ref": "#\/components\/schemas\/organization" } } } @@ -36050,18 +36352,15 @@ }, "deprecated": false, "x-appwrite": { - "method": "updateOAuth2Autodesk", - "group": "oauth2", + "method": "get", + "group": null, "cookies": false, "type": "", - "demo": "project\/update-o-auth-2-autodesk.md", + "demo": "organization\/get.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": [ - "oauth2.write", - "project.oauth2.write" - ], + "scope": "organization.read", "platforms": [ "console", "server" @@ -36078,53 +36377,22 @@ "Project": [], "Key": [] } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "clientId": { - "type": "string", - "description": "'Client ID' of Autodesk OAuth2 app. For example: 5zw90v00000000000000000000kVYXN7", - "x-example": "<CLIENT_ID>", - "x-nullable": true - }, - "clientSecret": { - "type": "string", - "description": "'Client Secret' of Autodesk OAuth2 app. For example: 7I000000000000MW", - "x-example": "<CLIENT_SECRET>", - "x-nullable": true - }, - "enabled": { - "type": "boolean", - "description": "OAuth2 sign-in method status. Set to true to enable new session creation. Setting to true will trigger end-to-end credentials validation, and will throw if the credentials are invalid.", - "x-example": false, - "x-nullable": true - } - } - } - } - } - } - } - }, - "\/project\/oauth2\/bitbucket": { - "patch": { - "summary": "Update project OAuth2 Bitbucket", - "operationId": "projectUpdateOAuth2Bitbucket", + ] + }, + "put": { + "summary": "Update organization", + "operationId": "organizationUpdate", "tags": [ - "project" + "organization" ], - "description": "Update the project OAuth2 Bitbucket configuration.", + "description": "Update the current organization's name.", "responses": { "200": { - "description": "OAuth2Bitbucket", + "description": "Organization", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/oAuth2Bitbucket" + "$ref": "#\/components\/schemas\/organization" } } } @@ -36132,18 +36400,15 @@ }, "deprecated": false, "x-appwrite": { - "method": "updateOAuth2Bitbucket", - "group": "oauth2", + "method": "update", + "group": null, "cookies": false, "type": "", - "demo": "project\/update-o-auth-2-bitbucket.md", + "demo": "organization\/update.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": [ - "oauth2.write", - "project.oauth2.write" - ], + "scope": "organization.write", "platforms": [ "console", "server" @@ -36167,65 +36432,43 @@ "schema": { "type": "object", "properties": { - "key": { - "type": "string", - "description": "'Key' of Bitbucket OAuth2 app. For example: Knt70000000000ByRc", - "x-example": "<KEY>", - "x-nullable": true - }, - "secret": { + "name": { "type": "string", - "description": "'Secret' of Bitbucket OAuth2 app. For example: NMfLZJ00000000000000000000TLQdDx", - "x-example": "<SECRET>", - "x-nullable": true - }, - "enabled": { - "type": "boolean", - "description": "OAuth2 sign-in method status. Set to true to enable new session creation. Setting to true will trigger end-to-end credentials validation, and will throw if the credentials are invalid.", - "x-example": false, - "x-nullable": true + "description": "New organization name. Max length: 128 chars.", + "x-example": "<NAME>" } - } + }, + "required": [ + "name" + ] } } } } - } - }, - "\/project\/oauth2\/bitly": { - "patch": { - "summary": "Update project OAuth2 Bitly", - "operationId": "projectUpdateOAuth2Bitly", + }, + "delete": { + "summary": "Delete organization", + "operationId": "organizationDelete", "tags": [ - "project" + "organization" ], - "description": "Update the project OAuth2 Bitly configuration.", + "description": "Delete the current organization. All projects that belong to the organization are deleted as well.", "responses": { - "200": { - "description": "OAuth2Bitly", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/oAuth2Bitly" - } - } - } + "204": { + "description": "No content" } }, "deprecated": false, "x-appwrite": { - "method": "updateOAuth2Bitly", - "group": "oauth2", + "method": "delete", + "group": null, "cookies": false, "type": "", - "demo": "project\/update-o-auth-2-bitly.md", + "demo": "organization\/delete.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": [ - "oauth2.write", - "project.oauth2.write" - ], + "scope": "organization.write", "platforms": [ "console", "server" @@ -36242,53 +36485,24 @@ "Project": [], "Key": [] } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "clientId": { - "type": "string", - "description": "'Client ID' of Bitly OAuth2 app. For example: d95151000000000000000000000000000067af9b", - "x-example": "<CLIENT_ID>", - "x-nullable": true - }, - "clientSecret": { - "type": "string", - "description": "'Client Secret' of Bitly OAuth2 app. For example: a13e250000000000000000000000000000d73095", - "x-example": "<CLIENT_SECRET>", - "x-nullable": true - }, - "enabled": { - "type": "boolean", - "description": "OAuth2 sign-in method status. Set to true to enable new session creation. Setting to true will trigger end-to-end credentials validation, and will throw if the credentials are invalid.", - "x-example": false, - "x-nullable": true - } - } - } - } - } - } + ] } }, - "\/project\/oauth2\/box": { - "patch": { - "summary": "Update project OAuth2 Box", - "operationId": "projectUpdateOAuth2Box", + "\/organization\/keys": { + "get": { + "summary": "List organization keys", + "operationId": "organizationListKeys", "tags": [ - "project" + "organization" ], - "description": "Update the project OAuth2 Box configuration.", + "description": "Get a list of all API keys from the current organization.", "responses": { "200": { - "description": "OAuth2Box", + "description": "API Keys List", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/oAuth2Box" + "$ref": "#\/components\/schemas\/keyList" } } } @@ -36296,18 +36510,15 @@ }, "deprecated": false, "x-appwrite": { - "method": "updateOAuth2Box", - "group": "oauth2", + "method": "listKeys", + "group": "keys", "cookies": false, "type": "", - "demo": "project\/update-o-auth-2-box.md", + "demo": "organization\/list-keys.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": [ - "oauth2.write", - "project.oauth2.write" - ], + "scope": "organization.keys.read", "platforms": [ "console", "server" @@ -36325,52 +36536,47 @@ "Key": [] } ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "clientId": { - "type": "string", - "description": "'Client ID' of Box OAuth2 app. For example: deglcs00000000000000000000x2og6y", - "x-example": "<CLIENT_ID>", - "x-nullable": true - }, - "clientSecret": { - "type": "string", - "description": "'Client Secret' of Box OAuth2 app. For example: OKM1f100000000000000000000eshEif", - "x-example": "<CLIENT_SECRET>", - "x-nullable": true - }, - "enabled": { - "type": "boolean", - "description": "OAuth2 sign-in method status. Set to true to enable new session creation. Setting to true will trigger end-to-end credentials validation, and will throw if the credentials are invalid.", - "x-example": false, - "x-nullable": true - } - } - } - } + "parameters": [ + { + "name": "queries", + "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/queries). Maximum of 100 queries are allowed, each 4096 characters long. You may filter on the following attributes: expire, accessedAt, name, scopes", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string" + }, + "default": [] + }, + "in": "query" + }, + { + "name": "total", + "description": "When set to false, the total count returned will be 0 and will not be calculated.", + "required": false, + "schema": { + "type": "boolean", + "x-example": false, + "default": true + }, + "in": "query" } - } - } - }, - "\/project\/oauth2\/dailymotion": { - "patch": { - "summary": "Update project OAuth2 Dailymotion", - "operationId": "projectUpdateOAuth2Dailymotion", + ] + }, + "post": { + "summary": "Create organization key", + "operationId": "organizationCreateKey", "tags": [ - "project" + "organization" ], - "description": "Update the project OAuth2 Dailymotion configuration.", + "description": "Create a new organization API key.", "responses": { - "200": { - "description": "OAuth2Dailymotion", + "201": { + "description": "Key", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/oAuth2Dailymotion" + "$ref": "#\/components\/schemas\/key" } } } @@ -36378,18 +36584,15 @@ }, "deprecated": false, "x-appwrite": { - "method": "updateOAuth2Dailymotion", - "group": "oauth2", + "method": "createKey", + "group": "keys", "cookies": false, "type": "", - "demo": "project\/update-o-auth-2-dailymotion.md", + "demo": "organization\/create-key.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": [ - "oauth2.write", - "project.oauth2.write" - ], + "scope": "organization.keys.write", "platforms": [ "console", "server" @@ -36413,46 +36616,94 @@ "schema": { "type": "object", "properties": { - "apiKey": { + "keyId": { "type": "string", - "description": "'API Key' of Dailymotion OAuth2 app. For example: 07a9000000000000067f", - "x-example": "<API_KEY>", - "x-nullable": true + "description": "Key ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.", + "x-example": "<KEY_ID>", + "x-appwrite": { + "idGenerator": "ID.unique" + } }, - "apiSecret": { + "name": { "type": "string", - "description": "'API Secret' of Dailymotion OAuth2 app. For example: a399a90000000000000000000000000000d90639", - "x-example": "<API_SECRET>", - "x-nullable": true + "description": "Key name. Max length: 128 chars.", + "x-example": "<NAME>" }, - "enabled": { - "type": "boolean", - "description": "OAuth2 sign-in method status. Set to true to enable new session creation. Setting to true will trigger end-to-end credentials validation, and will throw if the credentials are invalid.", - "x-example": false, + "scopes": { + "type": "array", + "description": "Key scopes list. Maximum of 200 scopes are allowed.", + "x-example": null, + "items": { + "type": "string", + "enum": [ + "projects.read", + "projects.write", + "devKeys.read", + "devKeys.write", + "organization.keys.read", + "organization.keys.write", + "organization.memberships.read", + "organization.memberships.write", + "organization.read", + "organization.write", + "domains.read", + "domains.write", + "keys.read", + "keys.write" + ], + "x-enum-name": "OrganizationKeyScopes", + "x-enum-keys": [ + "projects.read", + "projects.write", + "devKeys.read", + "devKeys.write", + "organization.keys.read", + "organization.keys.write", + "organization.memberships.read", + "organization.memberships.write", + "organization.read", + "organization.write", + "domains.read", + "domains.write", + "keys.read", + "keys.write" + ] + } + }, + "expire": { + "type": "string", + "description": "Expiration time in [ISO 8601](https:\/\/www.iso.org\/iso-8601-date-and-time-format.html) format. Use null for unlimited expiration.", + "x-example": "2020-10-15T06:38:00.000+00:00", + "format": "datetime", "x-nullable": true } - } + }, + "required": [ + "keyId", + "name", + "scopes" + ] } } } } } }, - "\/project\/oauth2\/discord": { - "patch": { - "summary": "Update project OAuth2 Discord", - "operationId": "projectUpdateOAuth2Discord", + "\/organization\/keys\/{keyId}": { + "get": { + "summary": "Get organization key", + "operationId": "organizationGetKey", "tags": [ - "project" + "organization" ], - "description": "Update the project OAuth2 Discord configuration.", + "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": "OAuth2Discord", + "description": "Key", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/oAuth2Discord" + "$ref": "#\/components\/schemas\/key" } } } @@ -36460,18 +36711,15 @@ }, "deprecated": false, "x-appwrite": { - "method": "updateOAuth2Discord", - "group": "oauth2", + "method": "getKey", + "group": "keys", "cookies": false, "type": "", - "demo": "project\/update-o-auth-2-discord.md", + "demo": "organization\/get-key.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": [ - "oauth2.write", - "project.oauth2.write" - ], + "scope": "organization.keys.read", "platforms": [ "console", "server" @@ -36489,52 +36737,33 @@ "Key": [] } ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "clientId": { - "type": "string", - "description": "'Client ID' of Discord OAuth2 app. For example: 950722000000343754", - "x-example": "<CLIENT_ID>", - "x-nullable": true - }, - "clientSecret": { - "type": "string", - "description": "'Client Secret' of Discord OAuth2 app. For example: YmPXnM000000000000000000002zFg5D", - "x-example": "<CLIENT_SECRET>", - "x-nullable": true - }, - "enabled": { - "type": "boolean", - "description": "OAuth2 sign-in method status. Set to true to enable new session creation. Setting to true will trigger end-to-end credentials validation, and will throw if the credentials are invalid.", - "x-example": false, - "x-nullable": true - } - } - } - } + "parameters": [ + { + "name": "keyId", + "description": "Key unique ID.", + "required": true, + "schema": { + "type": "string", + "x-example": "<KEY_ID>" + }, + "in": "path" } - } - } - }, - "\/project\/oauth2\/disqus": { - "patch": { - "summary": "Update project OAuth2 Disqus", - "operationId": "projectUpdateOAuth2Disqus", + ] + }, + "put": { + "summary": "Update organization key", + "operationId": "organizationUpdateKey", "tags": [ - "project" + "organization" ], - "description": "Update the project OAuth2 Disqus configuration.", + "description": "Update a key by its unique ID. Use this endpoint to update the name, scopes, or expiration time of an API key.", "responses": { "200": { - "description": "OAuth2Disqus", + "description": "Key", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/oAuth2Disqus" + "$ref": "#\/components\/schemas\/key" } } } @@ -36542,18 +36771,15 @@ }, "deprecated": false, "x-appwrite": { - "method": "updateOAuth2Disqus", - "group": "oauth2", + "method": "updateKey", + "group": "keys", "cookies": false, "type": "", - "demo": "project\/update-o-auth-2-disqus.md", + "demo": "organization\/update-key.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": [ - "oauth2.write", - "project.oauth2.write" - ], + "scope": "organization.keys.write", "platforms": [ "console", "server" @@ -36571,71 +36797,110 @@ "Key": [] } ], + "parameters": [ + { + "name": "keyId", + "description": "Key unique ID.", + "required": true, + "schema": { + "type": "string", + "x-example": "<KEY_ID>" + }, + "in": "path" + } + ], "requestBody": { "content": { "application\/json": { "schema": { "type": "object", "properties": { - "publicKey": { + "name": { "type": "string", - "description": "'Public Key, also known as API Key' of Disqus OAuth2 app. For example: cgegH70000000000000000000000000000000000000000000000000000Hr1nYX", - "x-example": "<PUBLIC_KEY>", - "x-nullable": true + "description": "Key name. Max length: 128 chars.", + "x-example": "<NAME>" }, - "secretKey": { - "type": "string", - "description": "'Secret Key, also known as API Secret' of Disqus OAuth2 app. For example: W7Bykj00000000000000000000000000000000000000000000000000003o43w9", - "x-example": "<SECRET_KEY>", - "x-nullable": true + "scopes": { + "type": "array", + "description": "Key scopes list. Maximum of 200 scopes are allowed.", + "x-example": null, + "items": { + "type": "string", + "enum": [ + "projects.read", + "projects.write", + "devKeys.read", + "devKeys.write", + "organization.keys.read", + "organization.keys.write", + "organization.memberships.read", + "organization.memberships.write", + "organization.read", + "organization.write", + "domains.read", + "domains.write", + "keys.read", + "keys.write" + ], + "x-enum-name": "OrganizationKeyScopes", + "x-enum-keys": [ + "projects.read", + "projects.write", + "devKeys.read", + "devKeys.write", + "organization.keys.read", + "organization.keys.write", + "organization.memberships.read", + "organization.memberships.write", + "organization.read", + "organization.write", + "domains.read", + "domains.write", + "keys.read", + "keys.write" + ] + } }, - "enabled": { - "type": "boolean", - "description": "OAuth2 sign-in method status. Set to true to enable new session creation. Setting to true will trigger end-to-end credentials validation, and will throw if the credentials are invalid.", - "x-example": false, + "expire": { + "type": "string", + "description": "Expiration time in [ISO 8601](https:\/\/www.iso.org\/iso-8601-date-and-time-format.html) format. Use null for unlimited expiration.", + "x-example": "2020-10-15T06:38:00.000+00:00", + "format": "datetime", "x-nullable": true } - } + }, + "required": [ + "name", + "scopes" + ] } } } } - } - }, - "\/project\/oauth2\/dropbox": { - "patch": { - "summary": "Update project OAuth2 Dropbox", - "operationId": "projectUpdateOAuth2Dropbox", + }, + "delete": { + "summary": "Delete organization key", + "operationId": "organizationDeleteKey", "tags": [ - "project" + "organization" ], - "description": "Update the project OAuth2 Dropbox configuration.", + "description": "Delete a key by its unique ID. Once deleted, the key can no longer be used to authenticate API calls.", "responses": { - "200": { - "description": "OAuth2Dropbox", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/oAuth2Dropbox" - } - } - } + "204": { + "description": "No content" } }, "deprecated": false, "x-appwrite": { - "method": "updateOAuth2Dropbox", - "group": "oauth2", + "method": "deleteKey", + "group": "keys", "cookies": false, "type": "", - "demo": "project\/update-o-auth-2-dropbox.md", + "demo": "organization\/delete-key.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": [ - "oauth2.write", - "project.oauth2.write" - ], + "scope": "organization.keys.write", "platforms": [ "console", "server" @@ -36653,52 +36918,35 @@ "Key": [] } ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "appKey": { - "type": "string", - "description": "'App Key' of Dropbox OAuth2 app. For example: jl000000000009t", - "x-example": "<APP_KEY>", - "x-nullable": true - }, - "appSecret": { - "type": "string", - "description": "'App Secret' of Dropbox OAuth2 app. For example: g200000000000vw", - "x-example": "<APP_SECRET>", - "x-nullable": true - }, - "enabled": { - "type": "boolean", - "description": "OAuth2 sign-in method status. Set to true to enable new session creation. Setting to true will trigger end-to-end credentials validation, and will throw if the credentials are invalid.", - "x-example": false, - "x-nullable": true - } - } - } - } + "parameters": [ + { + "name": "keyId", + "description": "Key unique ID.", + "required": true, + "schema": { + "type": "string", + "x-example": "<KEY_ID>" + }, + "in": "path" } - } + ] } }, - "\/project\/oauth2\/etsy": { - "patch": { - "summary": "Update project OAuth2 Etsy", - "operationId": "projectUpdateOAuth2Etsy", + "\/organization\/memberships": { + "get": { + "summary": "List organization memberships", + "operationId": "organizationListMemberships", "tags": [ - "project" + "organization" ], - "description": "Update the project OAuth2 Etsy configuration.", + "description": "Get a list of all memberships from the current organization.", "responses": { "200": { - "description": "OAuth2Etsy", + "description": "Memberships List", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/oAuth2Etsy" + "$ref": "#\/components\/schemas\/membershipList" } } } @@ -36706,18 +36954,15 @@ }, "deprecated": false, "x-appwrite": { - "method": "updateOAuth2Etsy", - "group": "oauth2", + "method": "listMemberships", + "group": "memberships", "cookies": false, "type": "", - "demo": "project\/update-o-auth-2-etsy.md", + "demo": "organization\/list-memberships.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": [ - "oauth2.write", - "project.oauth2.write" - ], + "scope": "organization.memberships.read", "platforms": [ "console", "server" @@ -36735,52 +36980,58 @@ "Key": [] } ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "keyString": { - "type": "string", - "description": "'Keystring' of Etsy OAuth2 app. For example: nsgzxh0000000000008j85a2", - "x-example": "<KEY_STRING>", - "x-nullable": true - }, - "sharedSecret": { - "type": "string", - "description": "'Shared Secret' of Etsy OAuth2 app. For example: tp000000ru", - "x-example": "<SHARED_SECRET>", - "x-nullable": true - }, - "enabled": { - "type": "boolean", - "description": "OAuth2 sign-in method status. Set to true to enable new session creation. Setting to true will trigger end-to-end credentials validation, and will throw if the credentials are invalid.", - "x-example": false, - "x-nullable": true - } - } - } - } + "parameters": [ + { + "name": "queries", + "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/queries). Maximum of 100 queries are allowed, each 4096 characters long. You may filter on the following attributes: userId, teamId, invited, joined, confirm, roles", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string" + }, + "default": [] + }, + "in": "query" + }, + { + "name": "search", + "description": "Search term to filter your list results. Max length: 256 chars.", + "required": false, + "schema": { + "type": "string", + "x-example": "<SEARCH>", + "default": "" + }, + "in": "query" + }, + { + "name": "total", + "description": "When set to false, the total count returned will be 0 and will not be calculated.", + "required": false, + "schema": { + "type": "boolean", + "x-example": false, + "default": true + }, + "in": "query" } - } - } - }, - "\/project\/oauth2\/facebook": { - "patch": { - "summary": "Update project OAuth2 Facebook", - "operationId": "projectUpdateOAuth2Facebook", + ] + }, + "post": { + "summary": "Create organization membership", + "operationId": "organizationCreateMembership", "tags": [ - "project" + "organization" ], - "description": "Update the project OAuth2 Facebook configuration.", + "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": { - "200": { - "description": "OAuth2Facebook", + "201": { + "description": "Membership", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/oAuth2Facebook" + "$ref": "#\/components\/schemas\/membership" } } } @@ -36788,18 +37039,15 @@ }, "deprecated": false, "x-appwrite": { - "method": "updateOAuth2Facebook", - "group": "oauth2", + "method": "createMembership", + "group": "memberships", "cookies": false, "type": "", - "demo": "project\/update-o-auth-2-facebook.md", - "rate-limit": 0, + "demo": "organization\/create-membership.md", + "rate-limit": 10, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": [ - "oauth2.write", - "project.oauth2.write" - ], + "scope": "organization.memberships.write", "platforms": [ "console", "server" @@ -36823,65 +37071,88 @@ "schema": { "type": "object", "properties": { - "appId": { + "email": { "type": "string", - "description": "'App ID' of Facebook OAuth2 app. For example: 260600000007694", - "x-example": "<APP_ID>", - "x-nullable": true + "description": "Email of the new organization member.", + "default": "", + "x-example": "email@example.com", + "format": "email" }, - "appSecret": { + "userId": { "type": "string", - "description": "'App Secret' of Facebook OAuth2 app. For example: 2d0b2800000000000000000000d38af4", - "x-example": "<APP_SECRET>", - "x-nullable": true + "description": "ID of the user to be added to the organization.", + "default": "", + "x-example": "<USER_ID>" }, - "enabled": { - "type": "boolean", - "description": "OAuth2 sign-in method status. Set to true to enable new session creation. Setting to true will trigger end-to-end credentials validation, and will throw if the credentials are invalid.", - "x-example": false, - "x-nullable": true - } - } - } - } - } - } - } - }, - "\/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" - } - } + "phone": { + "type": "string", + "description": "Phone number. Format this number with a leading '+' and a country code, e.g., +16175551212.", + "default": "", + "x-example": "+12065550100", + "format": "phone" + }, + "roles": { + "type": "array", + "description": "Array of strings. Use this param to set the user roles in the 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.", + "x-example": null, + "items": { + "type": "string" + } + }, + "url": { + "type": "string", + "description": "URL to redirect the user back to your app from the invitation email. This parameter is not required when an API key is supplied.", + "default": "", + "x-example": "https:\/\/example.com", + "format": "url" + }, + "name": { + "type": "string", + "description": "Name of the new organization member. Max length: 128 chars.", + "default": "", + "x-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": { - "method": "updateOAuth2Figma", - "group": "oauth2", + "method": "getMembership", + "group": "memberships", "cookies": false, "type": "", - "demo": "project\/update-o-auth-2-figma.md", + "demo": "organization\/get-membership.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": [ - "oauth2.write", - "project.oauth2.write" - ], + "scope": "organization.memberships.read", "platforms": [ "console", "server" @@ -36899,52 +37170,33 @@ "Key": [] } ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "clientId": { - "type": "string", - "description": "'Client ID' of Figma OAuth2 app. For example: byay5H0000000000VtiI40", - "x-example": "<CLIENT_ID>", - "x-nullable": true - }, - "clientSecret": { - "type": "string", - "description": "'Client Secret' of Figma OAuth2 app. For example: yEpOYn0000000000000000004iIsU5", - "x-example": "<CLIENT_SECRET>", - "x-nullable": true - }, - "enabled": { - "type": "boolean", - "description": "OAuth2 sign-in method status. Set to true to enable new session creation. Setting to true will trigger end-to-end credentials validation, and will throw if the credentials are invalid.", - "x-example": false, - "x-nullable": true - } - } - } - } + "parameters": [ + { + "name": "membershipId", + "description": "Membership ID.", + "required": true, + "schema": { + "type": "string", + "x-example": "<MEMBERSHIP_ID>" + }, + "in": "path" } - } - } - }, - "\/project\/oauth2\/fusionauth": { + ] + }, "patch": { - "summary": "Update project OAuth2 FusionAuth", - "operationId": "projectUpdateOAuth2FusionAuth", + "summary": "Update organization membership", + "operationId": "organizationUpdateMembership", "tags": [ - "project" + "organization" ], - "description": "Update the project OAuth2 FusionAuth configuration.", + "description": "Modify the roles of a member in the current organization.", "responses": { "200": { - "description": "OAuth2FusionAuth", + "description": "Membership", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/oAuth2FusionAuth" + "$ref": "#\/components\/schemas\/membership" } } } @@ -36952,18 +37204,15 @@ }, "deprecated": false, "x-appwrite": { - "method": "updateOAuth2FusionAuth", - "group": "oauth2", + "method": "updateMembership", + "group": "memberships", "cookies": false, "type": "", - "demo": "project\/update-o-auth-2-fusion-auth.md", + "demo": "organization\/update-membership.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": [ - "oauth2.write", - "project.oauth2.write" - ], + "scope": "organization.memberships.write", "platforms": [ "console", "server" @@ -36981,58 +37230,110 @@ "Key": [] } ], + "parameters": [ + { + "name": "membershipId", + "description": "Membership ID.", + "required": true, + "schema": { + "type": "string", + "x-example": "<MEMBERSHIP_ID>" + }, + "in": "path" + } + ], "requestBody": { "content": { "application\/json": { "schema": { "type": "object", "properties": { - "clientId": { - "type": "string", - "description": "'Client ID' of FusionAuth OAuth2 app. For example: b2222c00-0000-0000-0000-000000862097", - "x-example": "<CLIENT_ID>", - "x-nullable": true - }, - "clientSecret": { - "type": "string", - "description": "'Client Secret' of FusionAuth OAuth2 app. For example: Jx4s0C0000000000000000000000000000000wGqLsc", - "x-example": "<CLIENT_SECRET>", - "x-nullable": true - }, - "endpoint": { - "type": "string", - "description": "Domain of FusionAuth instance. For example: example.fusionauth.io", - "x-example": "<ENDPOINT>", - "x-nullable": true - }, - "enabled": { - "type": "boolean", - "description": "OAuth2 sign-in method status. Set to true to enable new session creation. Setting to true will trigger end-to-end credentials validation, and will throw if the credentials are invalid.", - "x-example": false, - "x-nullable": true + "roles": { + "type": "array", + "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.", + "x-example": null, + "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": { + "method": "deleteMembership", + "group": "memberships", + "cookies": false, + "type": "", + "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": [] + } + ], + "parameters": [ + { + "name": "membershipId", + "description": "Membership ID.", + "required": true, + "schema": { + "type": "string", + "x-example": "<MEMBERSHIP_ID>" + }, + "in": "path" + } + ] } }, - "\/project\/oauth2\/github": { - "patch": { - "summary": "Update project OAuth2 GitHub", - "operationId": "projectUpdateOAuth2GitHub", + "\/organization\/projects": { + "get": { + "summary": "List organization projects", + "operationId": "organizationListProjects", "tags": [ - "project" + "organization" ], - "description": "Update the project OAuth2 GitHub configuration.", + "description": "Get a list of all projects. You can use the query params to filter your results.", "responses": { "200": { - "description": "OAuth2GitHub", + "description": "Projects List", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/oAuth2Github" + "$ref": "#\/components\/schemas\/projectList" } } } @@ -37040,18 +37341,15 @@ }, "deprecated": false, "x-appwrite": { - "method": "updateOAuth2GitHub", - "group": "oauth2", + "method": "listProjects", + "group": "projects", "cookies": false, "type": "", - "demo": "project\/update-o-auth-2-git-hub.md", + "demo": "organization\/list-projects.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": [ - "oauth2.write", - "project.oauth2.write" - ], + "scope": "projects.read", "platforms": [ "console", "server" @@ -37069,52 +37367,58 @@ "Key": [] } ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "clientId": { - "type": "string", - "description": "'OAuth2 app Client ID, or App ID' of GitHub OAuth2 app. For example: e4d87900000000540733. Example of wrong value: 370006", - "x-example": "<CLIENT_ID>", - "x-nullable": true - }, - "clientSecret": { - "type": "string", - "description": "'Client Secret' of GitHub OAuth2 app. For example: 5e07c00000000000000000000000000000198bcc", - "x-example": "<CLIENT_SECRET>", - "x-nullable": true - }, - "enabled": { - "type": "boolean", - "description": "OAuth2 sign-in method status. Set to true to enable new session creation. Setting to true will trigger end-to-end credentials validation, and will throw if the credentials are invalid.", - "x-example": false, - "x-nullable": true - } - } - } - } + "parameters": [ + { + "name": "queries", + "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more 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", + "x-example": "<SEARCH>", + "default": "" + }, + "in": "query" + }, + { + "name": "total", + "description": "When set to false, the total count returned will be 0 and will not be calculated.", + "required": false, + "schema": { + "type": "boolean", + "x-example": false, + "default": true + }, + "in": "query" } - } - } - }, - "\/project\/oauth2\/gitlab": { - "patch": { - "summary": "Update project OAuth2 Gitlab", - "operationId": "projectUpdateOAuth2Gitlab", + ] + }, + "post": { + "summary": "Create organization project", + "operationId": "organizationCreateProject", "tags": [ - "project" + "organization" ], - "description": "Update the project OAuth2 Gitlab configuration.", + "description": "Create a new project.", "responses": { - "200": { - "description": "OAuth2Gitlab", + "201": { + "description": "Project", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/oAuth2Gitlab" + "$ref": "#\/components\/schemas\/project" } } } @@ -37122,18 +37426,15 @@ }, "deprecated": false, "x-appwrite": { - "method": "updateOAuth2Gitlab", - "group": "oauth2", + "method": "createProject", + "group": "projects", "cookies": false, "type": "", - "demo": "project\/update-o-auth-2-gitlab.md", + "demo": "organization\/create-project.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": [ - "oauth2.write", - "project.oauth2.write" - ], + "scope": "projects.write", "platforms": [ "console", "server" @@ -37157,53 +37458,64 @@ "schema": { "type": "object", "properties": { - "applicationId": { + "projectId": { "type": "string", - "description": "'Application ID' of Gitlab OAuth2 app. For example: d41ffe0000000000000000000000000000000000000000000000000000d5e252", - "x-example": "<APPLICATION_ID>", - "x-nullable": true + "description": "Unique Id. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, and hyphen. Can't start with a special char. Max length is 36 chars.", + "x-example": null }, - "secret": { + "name": { "type": "string", - "description": "'Secret' of Gitlab OAuth2 app. For example: gloas-838cfa0000000000000000000000000000000000000000000000000000ecbb38", - "x-example": "<SECRET>", - "x-nullable": true + "description": "Project name. Max length: 128 chars.", + "x-example": "<NAME>" }, - "endpoint": { + "region": { "type": "string", - "description": "Endpoint URL of self-hosted GitLab instance. For example: https:\/\/gitlab.com", - "x-example": "https:\/\/example.com", - "format": "url", - "x-nullable": true - }, - "enabled": { - "type": "boolean", - "description": "OAuth2 sign-in method status. Set to true to enable new session creation. Setting to true will trigger end-to-end credentials validation, and will throw if the credentials are invalid.", - "x-example": false, - "x-nullable": true + "description": "Project Region.", + "x-example": "fra", + "enum": [ + "fra", + "nyc", + "syd", + "sfo", + "sgp", + "tor" + ], + "x-enum-name": "Region", + "x-enum-keys": [ + "fra", + "nyc", + "syd", + "sfo", + "sgp", + "tor" + ] } - } + }, + "required": [ + "projectId", + "name" + ] } } } } } }, - "\/project\/oauth2\/google": { - "patch": { - "summary": "Update project OAuth2 Google", - "operationId": "projectUpdateOAuth2Google", + "\/organization\/projects\/{projectId}": { + "get": { + "summary": "Get organization project", + "operationId": "organizationGetProject", "tags": [ - "project" + "organization" ], - "description": "Update the project OAuth2 Google configuration.", + "description": "Get a project.", "responses": { "200": { - "description": "OAuth2Google", + "description": "Project", "content": { - "application\/json": { + "": { "schema": { - "$ref": "#\/components\/schemas\/oAuth2Google" + "$ref": "#\/components\/schemas\/project" } } } @@ -37211,18 +37523,15 @@ }, "deprecated": false, "x-appwrite": { - "method": "updateOAuth2Google", - "group": "oauth2", + "method": "getProject", + "group": "projects", "cookies": false, "type": "", - "demo": "project\/update-o-auth-2-google.md", + "demo": "organization\/get-project.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": [ - "oauth2.write", - "project.oauth2.write" - ], + "scope": "projects.read", "platforms": [ "console", "server" @@ -37240,72 +37549,33 @@ "Key": [] } ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "clientId": { - "type": "string", - "description": "'Client ID' of Google OAuth2 app. For example: 120000000095-92ifjb00000000000000000000g7ijfb.apps.googleusercontent.com", - "x-example": "<CLIENT_ID>", - "x-nullable": true - }, - "clientSecret": { - "type": "string", - "description": "'Client Secret' of Google OAuth2 app. For example: GOCSPX-2k8gsR0000000000000000VNahJj", - "x-example": "<CLIENT_SECRET>", - "x-nullable": true - }, - "prompt": { - "type": "array", - "description": "Array of Google OAuth2 prompt values. If \"none\" is included, it must be the only element. \"none\" means: don't display any authentication or consent screens. Must not be specified with other values. \"consent\" means: prompt the user for consent. \"select_account\" means: prompt the user to select an account.", - "x-example": null, - "items": { - "type": "string", - "enum": [ - "none", - "consent", - "select_account" - ], - "x-enum-name": "ProjectOAuth2GooglePrompt", - "x-enum-keys": [ - "none", - "consent", - "select_account" - ] - }, - "x-nullable": true - }, - "enabled": { - "type": "boolean", - "description": "OAuth2 sign-in method status. Set to true to enable new session creation. Setting to true will trigger end-to-end credentials validation, and will throw if the credentials are invalid.", - "x-example": false, - "x-nullable": true - } - } - } - } + "parameters": [ + { + "name": "projectId", + "description": "Project unique ID.", + "required": true, + "schema": { + "type": "string", + "x-example": "<PROJECT_ID>" + }, + "in": "path" } - } - } - }, - "\/project\/oauth2\/keycloak": { + ] + }, "patch": { - "summary": "Update project OAuth2 Keycloak", - "operationId": "projectUpdateOAuth2Keycloak", + "summary": "Update organization project", + "operationId": "organizationUpdateProject", "tags": [ - "project" + "organization" ], - "description": "Update the project OAuth2 Keycloak configuration.", + "description": "Update a project by its unique ID.", "responses": { "200": { - "description": "OAuth2Keycloak", + "description": "Project", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/oAuth2Keycloak" + "$ref": "#\/components\/schemas\/project" } } } @@ -37313,18 +37583,15 @@ }, "deprecated": false, "x-appwrite": { - "method": "updateOAuth2Keycloak", - "group": "oauth2", + "method": "updateProject", + "group": "projects", "cookies": false, "type": "", - "demo": "project\/update-o-auth-2-keycloak.md", + "demo": "organization\/update-project.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": [ - "oauth2.write", - "project.oauth2.write" - ], + "scope": "projects.write", "platforms": [ "console", "server" @@ -37342,64 +37609,107 @@ "Key": [] } ], - "requestBody": { - "content": { - "application\/json": { - "schema": { + "parameters": [ + { + "name": "projectId", + "description": "Project unique ID.", + "required": true, + "schema": { + "type": "string", + "x-example": "<PROJECT_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { "type": "object", "properties": { - "clientId": { - "type": "string", - "description": "'Client ID' of Keycloak OAuth2 app. For example: appwrite-o0000000st-app", - "x-example": "<CLIENT_ID>", - "x-nullable": true - }, - "clientSecret": { - "type": "string", - "description": "'Client Secret' of Keycloak OAuth2 app. For example: jdjrJd00000000000000000000HUsaZO", - "x-example": "<CLIENT_SECRET>", - "x-nullable": true - }, - "endpoint": { - "type": "string", - "description": "Domain of Keycloak instance. For example: keycloak.example.com", - "x-example": "<ENDPOINT>", - "x-nullable": true - }, - "realmName": { + "name": { "type": "string", - "description": "Keycloak realm name. For example: appwrite-realm", - "x-example": "<REALM_NAME>", - "x-nullable": true - }, - "enabled": { - "type": "boolean", - "description": "OAuth2 sign-in method status. Set to true to enable new session creation. Setting to true will trigger end-to-end credentials validation, and will throw if the credentials are invalid.", - "x-example": false, - "x-nullable": true + "description": "Project name. Max length: 128 chars.", + "x-example": "<NAME>" } - } + }, + "required": [ + "name" + ] } } } } + }, + "delete": { + "summary": "Delete organization project", + "operationId": "organizationDeleteProject", + "tags": [ + "organization" + ], + "description": "Delete a project by its unique ID.", + "responses": { + "204": { + "description": "No content" + } + }, + "deprecated": false, + "x-appwrite": { + "method": "deleteProject", + "group": "projects", + "cookies": false, + "type": "", + "demo": "organization\/delete-project.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "projects.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "projectId", + "description": "Project unique ID.", + "required": true, + "schema": { + "type": "string", + "x-example": "<PROJECT_ID>" + }, + "in": "path" + } + ] } }, - "\/project\/oauth2\/kick": { - "patch": { - "summary": "Update project OAuth2 Kick", - "operationId": "projectUpdateOAuth2Kick", + "\/ping": { + "get": { + "summary": "Test the connection between the Appwrite and the SDK.", + "operationId": "pingGet", "tags": [ - "project" + "ping" ], - "description": "Update the project OAuth2 Kick configuration.", + "description": "Send a ping to project as part of onboarding.", "responses": { "200": { - "description": "OAuth2Kick", + "description": "Any", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/oAuth2Kick" + "$ref": "#\/components\/schemas\/any" } } } @@ -37407,21 +37717,19 @@ }, "deprecated": false, "x-appwrite": { - "method": "updateOAuth2Kick", - "group": "oauth2", + "method": "get", + "group": null, "cookies": false, "type": "", - "demo": "project\/update-o-auth-2-kick.md", + "demo": "ping\/get.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": [ - "oauth2.write", - "project.oauth2.write" - ], + "scope": "global", "platforms": [ "console", - "server" + "server", + "client" ], "packaging": false, "public": true, @@ -37433,55 +37741,28 @@ "security": [ { "Project": [], - "Key": [] - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "clientId": { - "type": "string", - "description": "'Client ID' of Kick OAuth2 app. For example: 01KQ7C00000000000001MFHS32", - "x-example": "<CLIENT_ID>", - "x-nullable": true - }, - "clientSecret": { - "type": "string", - "description": "'Client Secret' of Kick OAuth2 app. For example: 34ac5600000000000000000000000000000000000000000000000000e830c8b", - "x-example": "<CLIENT_SECRET>", - "x-nullable": true - }, - "enabled": { - "type": "boolean", - "description": "OAuth2 sign-in method status. Set to true to enable new session creation. Setting to true will trigger end-to-end credentials validation, and will throw if the credentials are invalid.", - "x-example": false, - "x-nullable": true - } - } - } - } + "Key": [], + "JWT": [], + "Session": [] } - } + ] } }, - "\/project\/oauth2\/linkedin": { - "patch": { - "summary": "Update project OAuth2 Linkedin", - "operationId": "projectUpdateOAuth2Linkedin", + "\/postgresql": { + "get": { + "summary": "List dedicated databases.", + "operationId": "postgresqlList", "tags": [ - "project" + "postgresql" ], - "description": "Update the project OAuth2 Linkedin configuration.", + "description": "List all dedicated databases. Results support pagination.", "responses": { "200": { - "description": "OAuth2Linkedin", + "description": "Dedicated databases list", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/oAuth2Linkedin" + "$ref": "#\/components\/schemas\/dedicatedDatabaseList" } } } @@ -37489,18 +37770,15 @@ }, "deprecated": false, "x-appwrite": { - "method": "updateOAuth2Linkedin", - "group": "oauth2", + "method": "list", + "group": "databases", "cookies": false, "type": "", - "demo": "project\/update-o-auth-2-linkedin.md", + "demo": "postgresql\/list.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": [ - "oauth2.write", - "project.oauth2.write" - ], + "scope": "databases.read", "platforms": [ "console", "server" @@ -37518,52 +37796,36 @@ "Key": [] } ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "clientId": { - "type": "string", - "description": "'Client ID' of Linkedin OAuth2 app. For example: 770000000000dv", - "x-example": "<CLIENT_ID>", - "x-nullable": true - }, - "primaryClientSecret": { - "type": "string", - "description": "'Primary Client Secret or Secondary Client Secret' of Linkedin OAuth2 app. For example: WPL_AP1.2Bf0000000000000.\/HtlYw==", - "x-example": "<PRIMARY_CLIENT_SECRET>", - "x-nullable": true - }, - "enabled": { - "type": "boolean", - "description": "OAuth2 sign-in method status. Set to true to enable new session creation. Setting to true will trigger end-to-end credentials validation, and will throw if the credentials are invalid.", - "x-example": false, - "x-nullable": true - } - } - } - } + "parameters": [ + { + "name": "queries", + "description": "Array of query strings.", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string" + }, + "default": [] + }, + "in": "query" } - } - } - }, - "\/project\/oauth2\/microsoft": { - "patch": { - "summary": "Update project OAuth2 Microsoft", - "operationId": "projectUpdateOAuth2Microsoft", + ] + }, + "post": { + "summary": "Create a dedicated database.", + "operationId": "postgresqlCreate", "tags": [ - "project" + "postgresql" ], - "description": "Update the project OAuth2 Microsoft configuration.", + "description": "Create a new dedicated database with the chosen engine and configuration. Status will be 'provisioning' until the database is ready.", "responses": { - "200": { - "description": "OAuth2Microsoft", + "201": { + "description": "DedicatedDatabase", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/oAuth2Microsoft" + "$ref": "#\/components\/schemas\/dedicatedDatabase" } } } @@ -37571,18 +37833,15 @@ }, "deprecated": false, "x-appwrite": { - "method": "updateOAuth2Microsoft", - "group": "oauth2", + "method": "create", + "group": "databases", "cookies": false, "type": "", - "demo": "project\/update-o-auth-2-microsoft.md", + "demo": "postgresql\/create.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": [ - "oauth2.write", - "project.oauth2.write" - ], + "scope": "databases.write", "platforms": [ "console", "server" @@ -37606,52 +37865,137 @@ "schema": { "type": "object", "properties": { - "applicationId": { + "databaseId": { "type": "string", - "description": "'Entra ID Application ID, also known as Client ID' of Microsoft OAuth2 app. For example: 00001111-aaaa-2222-bbbb-3333cccc4444", - "x-example": "<APPLICATION_ID>", + "description": "Database ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.", + "x-example": "<DATABASE_ID>", + "x-appwrite": { + "idGenerator": "ID.unique" + } + }, + "name": { + "type": "string", + "description": "Database display name. Max length: 128 chars.", + "x-example": "<NAME>" + }, + "version": { + "type": "string", + "description": "Database engine version. Defaults to latest for selected engine.", + "x-example": "17", "x-nullable": true }, - "applicationSecret": { + "specification": { "type": "string", - "description": "'Entra ID Application Secret, also known as Client Secret' of Microsoft OAuth2 app. For example: A1bC2dE3fH4iJ5kL6mN7oP8qR9sT0u", - "x-example": "<APPLICATION_SECRET>", + "description": "Specification identifier. Drives the allocated CPU, memory, storage, storage class, and connection ceiling.", + "default": "s-1vcpu-1gb", + "x-example": "<SPECIFICATION>" + }, + "replicas": { + "type": "integer", + "description": "Number of high availability replicas (0-5). High availability is enabled when greater than 0.", + "default": 0, + "x-example": 0, + "format": "int32" + }, + "syncMode": { + "type": "string", + "description": "Replication sync mode preference. Allowed values: async, sync, quorum.", + "x-example": "async", "x-nullable": true }, - "tenant": { + "standbyRegion": { "type": "string", - "description": "Microsoft Entra ID tenant identifier. Use 'common', 'organizations', 'consumers' or a specific tenant ID. For example: common", - "x-example": "<TENANT>", + "description": "Standby region for a cross-region replica. When set, a replica is provisioned in this region for cross-region high availability. Must differ from the database region.", + "x-example": "<STANDBY_REGION>", "x-nullable": true }, - "enabled": { - "type": "boolean", - "description": "OAuth2 sign-in method status. Set to true to enable new session creation. Setting to true will trigger end-to-end credentials validation, and will throw if the credentials are invalid.", - "x-example": false, + "networkIdleTimeoutSeconds": { + "type": "integer", + "description": "Connection idle timeout in seconds.", + "default": 900, + "x-example": 60, + "format": "int32" + }, + "networkIPAllowlist": { + "type": "array", + "description": "IP addresses\/CIDR ranges allowed to connect.", + "x-example": null, + "items": { + "type": "string" + }, "x-nullable": true + }, + "idleTimeoutMinutes": { + "type": "integer", + "description": "Minutes of inactivity before container scales to zero.", + "default": 15, + "x-example": 5, + "format": "int32" + }, + "pitr": { + "type": "boolean", + "description": "Enable point-in-time recovery (PITR). Continuously archives changes so the database can be restored to any moment within the retention window.", + "default": true, + "x-example": false + }, + "pitrRetentionDays": { + "type": "integer", + "description": "Number of days to retain PITR data.", + "default": 7, + "x-example": 1, + "format": "int32" + }, + "storageAutoscaling": { + "type": "boolean", + "description": "Enable automatic storage expansion when usage exceeds threshold.", + "default": false, + "x-example": false + }, + "storageAutoscalingThresholdPercent": { + "type": "integer", + "description": "Storage usage percentage (50-95) that triggers automatic expansion.", + "default": 85, + "x-example": 50, + "format": "int32" + }, + "storageAutoscalingMaxGb": { + "type": "integer", + "description": "Maximum storage size in GB for autoscaling. 0 means no limit.", + "default": 0, + "x-example": 0, + "format": "int32" + }, + "api": { + "type": "string", + "description": "Product API that owns this database: tablesdb, documentsdb, or vectorsdb. Omit for a raw database reached directly; its api is its engine. tablesdb\/documentsdb\/vectorsdb databases are reached only through their product APIs.", + "x-example": "tablesdb" } - } + }, + "required": [ + "databaseId", + "name" + ] } } } } } }, - "\/project\/oauth2\/notion": { - "patch": { - "summary": "Update project OAuth2 Notion", - "operationId": "projectUpdateOAuth2Notion", + "\/postgresql\/specifications": { + "get": { + "summary": "List dedicated database specifications.", + "operationId": "postgresqlListSpecifications", "tags": [ - "project" + "postgresql" ], - "description": "Update the project OAuth2 Notion configuration.", + "description": "List the dedicated database specifications available on the current plan. Each specification reports its resource limits, pricing, and whether it is enabled for the organization.", "responses": { "200": { - "description": "OAuth2Notion", + "description": "SpecificationList", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/oAuth2Notion" + "$ref": "#\/components\/schemas\/dedicatedDatabaseSpecificationList" } } } @@ -37659,18 +38003,15 @@ }, "deprecated": false, "x-appwrite": { - "method": "updateOAuth2Notion", - "group": "oauth2", + "method": "listSpecifications", + "group": "databases", "cookies": false, "type": "", - "demo": "project\/update-o-auth-2-notion.md", + "demo": "postgresql\/list-specifications.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": [ - "oauth2.write", - "project.oauth2.write" - ], + "scope": "databases.read", "platforms": [ "console", "server" @@ -37687,53 +38028,84 @@ "Project": [], "Key": [] } + ] + } + }, + "\/postgresql\/{databaseId}": { + "get": { + "summary": "Get dedicated database.", + "operationId": "postgresqlGet", + "tags": [ + "postgresql" ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "oauthClientId": { - "type": "string", - "description": "'OAuth Client ID' of Notion OAuth2 app. For example: 341d8700-0000-0000-0000-000000446ee3", - "x-example": "<OAUTH_CLIENT_ID>", - "x-nullable": true - }, - "oauthClientSecret": { - "type": "string", - "description": "'OAuth Client Secret' of Notion OAuth2 app. For example: secret_dLUr4b000000000000000000000000000000lFHAa9", - "x-example": "<OAUTH_CLIENT_SECRET>", - "x-nullable": true - }, - "enabled": { - "type": "boolean", - "description": "OAuth2 sign-in method status. Set to true to enable new session creation. Setting to true will trigger end-to-end credentials validation, and will throw if the credentials are invalid.", - "x-example": false, - "x-nullable": true - } + "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" } } } } - } - } - }, - "\/project\/oauth2\/oidc": { + }, + "deprecated": false, + "x-appwrite": { + "method": "get", + "group": "databases", + "cookies": false, + "type": "", + "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", + "x-example": "<DATABASE_ID>" + }, + "in": "path" + } + ] + }, "patch": { - "summary": "Update project OAuth2 Oidc", - "operationId": "projectUpdateOAuth2Oidc", + "summary": "Update dedicated database.", + "operationId": "postgresqlUpdate", "tags": [ - "project" + "postgresql" ], - "description": "Update the project OAuth2 Oidc configuration.", + "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": "OAuth2Oidc", + "description": "DedicatedDatabase", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/oAuth2Oidc" + "$ref": "#\/components\/schemas\/dedicatedDatabase" } } } @@ -37741,18 +38113,15 @@ }, "deprecated": false, "x-appwrite": { - "method": "updateOAuth2Oidc", - "group": "oauth2", + "method": "update", + "group": "databases", "cookies": false, "type": "", - "demo": "project\/update-o-auth-2-oidc.md", + "demo": "postgresql\/update.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": [ - "oauth2.write", - "project.oauth2.write" - ], + "scope": "databases.write", "platforms": [ "console", "server" @@ -37770,134 +38139,212 @@ "Key": [] } ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "x-example": "<DATABASE_ID>" + }, + "in": "path" + } + ], "requestBody": { "content": { "application\/json": { "schema": { "type": "object", "properties": { - "clientId": { + "name": { "type": "string", - "description": "'Client ID' of Oidc OAuth2 app. For example: qibI2x0000000000000000000000000006L2YFoG", - "x-example": "<CLIENT_ID>", + "description": "Database display name.", + "x-example": "<NAME>", "x-nullable": true }, - "clientSecret": { + "status": { "type": "string", - "description": "'Client Secret' of Oidc OAuth2 app. For example: Ah68ed000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003qpcHV", - "x-example": "<CLIENT_SECRET>", + "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.", + "x-example": "ready", "x-nullable": true }, - "wellKnownURL": { + "specification": { "type": "string", - "description": "OpenID Connect well-known configuration URL. When provided, authorization, token, and user info endpoints can be discovered automatically. For example: https:\/\/myoauth.com\/.well-known\/openid-configuration", - "x-example": "https:\/\/example.com", - "format": "url", + "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.", + "x-example": "<SPECIFICATION>", "x-nullable": true }, - "authorizationURL": { - "type": "string", - "description": "OpenID Connect authorization endpoint URL. Required when wellKnownURL is not provided. For example: https:\/\/myoauth.com\/oauth2\/authorize", - "x-example": "https:\/\/example.com", - "format": "url", + "replicas": { + "type": "integer", + "description": "Number of high availability replicas (0-5). High availability is enabled when greater than 0.", + "x-example": 0, + "format": "int32", "x-nullable": true }, - "tokenURL": { + "syncMode": { "type": "string", - "description": "OpenID Connect token endpoint URL. Required when wellKnownURL is not provided. For example: https:\/\/myoauth.com\/oauth2\/token", - "x-example": "https:\/\/example.com", - "format": "url", + "description": "Replication sync mode preference. Allowed values: async, sync, quorum.", + "x-example": "async", "x-nullable": true }, - "userInfoURL": { + "crossRegionReplicas": { + "type": "integer", + "description": "Number of cross-region standby replicas (0-1). Cross-region replication is enabled when greater than 0.", + "x-example": 0, + "format": "int32", + "x-nullable": true + }, + "standbyRegion": { "type": "string", - "description": "OpenID Connect user info endpoint URL. Required when wellKnownURL is not provided. For example: https:\/\/myoauth.com\/oauth2\/userinfo", - "x-example": "https:\/\/example.com", - "format": "url", + "description": "Standby region for the cross-region replica. Required when enabling cross-region replication and no standby region is already configured. Must differ from the database region.", + "x-example": "<STANDBY_REGION>", "x-nullable": true }, - "prompt": { + "networkIdleTimeoutSeconds": { + "type": "integer", + "description": "Connection idle timeout in seconds (60-86400).", + "x-example": 60, + "format": "int32", + "x-nullable": true + }, + "networkIPAllowlist": { "type": "array", - "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.", + "description": "IP addresses\/CIDR ranges allowed to connect.", "x-example": null, "items": { - "type": "string", - "enum": [ - "none", - "login", - "consent", - "select_account" - ], - "x-enum-name": "ProjectOAuth2OidcPrompt", - "x-enum-keys": [ - "none", - "login", - "consent", - "select_account" - ] + "type": "string" }, "x-nullable": true }, - "maxAge": { + "idleTimeoutMinutes": { "type": "integer", - "description": "Maximum authentication age in seconds. When set, the user must have authenticated within this many seconds, otherwise they are prompted to re-authenticate.", - "x-example": 0, + "description": "Minutes before container scales to zero.", + "x-example": 5, "format": "int32", "x-nullable": true }, - "enabled": { + "pitr": { "type": "boolean", - "description": "OAuth2 sign-in method status. Set to true to enable new session creation. Setting to true will trigger end-to-end credentials validation, and will throw if the credentials are invalid.", + "description": "Enable or disable point-in-time recovery (PITR).", "x-example": false, "x-nullable": true - } - } - } - } + }, + "pitrRetentionDays": { + "type": "integer", + "description": "Days to retain PITR data.", + "x-example": 1, + "format": "int32", + "x-nullable": true + }, + "storageAutoscaling": { + "type": "boolean", + "description": "Enable automatic storage expansion when usage exceeds threshold.", + "x-example": false, + "x-nullable": true + }, + "storageAutoscalingThresholdPercent": { + "type": "integer", + "description": "Storage usage percentage (50-95) that triggers automatic expansion.", + "x-example": 50, + "format": "int32", + "x-nullable": true + }, + "storageAutoscalingMaxGb": { + "type": "integer", + "description": "Maximum storage size in GB for autoscaling. 0 means no limit.", + "x-example": 0, + "format": "int32", + "x-nullable": true + }, + "metricsTraceSampleRate": { + "type": "number", + "description": "Fraction of queries to trace (0.0\u20131.0). Forwarded to the sidecar.", + "x-example": null, + "format": "float", + "x-nullable": true + }, + "metricsSlowQueryLogThresholdMs": { + "type": "integer", + "description": "Threshold in ms above which queries are logged as slow. Forwarded to the sidecar.", + "x-example": 0, + "format": "int32", + "x-nullable": true + }, + "sqlApiEnabled": { + "type": "boolean", + "description": "Enable the SQL API sidecar for this database.", + "x-example": false, + "x-nullable": true + }, + "sqlApiAllowedStatements": { + "type": "array", + "description": "Statement types the SQL API accepts. Allowed values: SELECT, INSERT, UPDATE, DELETE, CREATE, ALTER, DROP, TRUNCATE, GRANT, REVOKE.", + "x-example": null, + "items": { + "type": "string" + }, + "x-nullable": true + }, + "sqlApiMaxRows": { + "type": "integer", + "description": "Maximum rows returned per SQL API execution (1-1000000).", + "x-example": 1, + "format": "int32", + "x-nullable": true + }, + "sqlApiMaxBytes": { + "type": "integer", + "description": "Maximum serialised SQL API result payload in bytes (1024-104857600).", + "x-example": 1024, + "format": "int32", + "x-nullable": true + }, + "sqlApiTimeoutSeconds": { + "type": "integer", + "description": "Per-call SQL API execution timeout in seconds (1-300).", + "x-example": 1, + "format": "int32", + "x-nullable": true + } + } + } + } } } - } - }, - "\/project\/oauth2\/okta": { - "patch": { - "summary": "Update project OAuth2 Okta", - "operationId": "projectUpdateOAuth2Okta", + }, + "delete": { + "summary": "Delete dedicated database.", + "operationId": "postgresqlDelete", "tags": [ - "project" + "postgresql" ], - "description": "Update the project OAuth2 Okta configuration.", + "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": { - "200": { - "description": "OAuth2Okta", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/oAuth2Okta" - } - } - } + "204": { + "description": "No content" } }, "deprecated": false, "x-appwrite": { - "method": "updateOAuth2Okta", - "group": "oauth2", + "method": "delete", + "group": "databases", "cookies": false, "type": "", - "demo": "project\/update-o-auth-2-okta.md", + "demo": "postgresql\/delete.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": [ - "oauth2.write", - "project.oauth2.write" - ], + "scope": "databases.write", "platforms": [ "console", "server" ], "packaging": false, "public": true, + "produces": [ + "application\/json" + ], "auth": { "Project": [], "Key": [] @@ -37909,64 +38356,35 @@ "Key": [] } ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "clientId": { - "type": "string", - "description": "'Client ID' of Okta OAuth2 app. For example: 0oa00000000000000698", - "x-example": "<CLIENT_ID>", - "x-nullable": true - }, - "clientSecret": { - "type": "string", - "description": "'Client Secret' of Okta OAuth2 app. For example: Kiq0000000000000000000000000000000000000-00000000000H2L5-3SJ-vRV", - "x-example": "<CLIENT_SECRET>", - "x-nullable": true - }, - "domain": { - "type": "string", - "description": "Okta company domain. Required when enabling the provider. For example: trial-6400025.okta.com. Example of wrong value: trial-6400025-admin.okta.com, or https:\/\/trial-6400025.okta.com\/", - "x-example": null, - "x-nullable": true - }, - "authorizationServerId": { - "type": "string", - "description": "Custom Authorization Servers. Optional, can be left empty or unconfigured. For example: aus000000000000000h7z", - "x-example": "<AUTHORIZATION_SERVER_ID>", - "x-nullable": true - }, - "enabled": { - "type": "boolean", - "description": "OAuth2 sign-in method status. Set to true to enable new session creation. Setting to true will trigger end-to-end credentials validation, and will throw if the credentials are invalid.", - "x-example": false, - "x-nullable": true - } - } - } - } + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "x-example": "<DATABASE_ID>" + }, + "in": "path" } - } + ] } }, - "\/project\/oauth2\/paypal": { - "patch": { - "summary": "Update project OAuth2 Paypal", - "operationId": "projectUpdateOAuth2Paypal", + "\/postgresql\/{databaseId}\/backups": { + "get": { + "summary": "List database backups.", + "operationId": "postgresqlListBackups", "tags": [ - "project" + "postgresql" ], - "description": "Update the project OAuth2 Paypal configuration.", + "description": "List all backups for a dedicated database. Results can be filtered by status and type.", "responses": { "200": { - "description": "OAuth2Paypal", + "description": "BackupList", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/oAuth2Paypal" + "$ref": "#\/components\/schemas\/dedicatedDatabaseBackupList" } } } @@ -37974,18 +38392,15 @@ }, "deprecated": false, "x-appwrite": { - "method": "updateOAuth2Paypal", - "group": "oauth2", + "method": "listBackups", + "group": "databases", "cookies": false, "type": "", - "demo": "project\/update-o-auth-2-paypal.md", + "demo": "postgresql\/list-backups.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": [ - "oauth2.write", - "project.oauth2.write" - ], + "scope": "databases.read", "platforms": [ "console", "server" @@ -38003,52 +38418,46 @@ "Key": [] } ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "clientId": { - "type": "string", - "description": "'Client ID' of Paypal OAuth2 app. For example: AdhIEG7-000000000000-0000000000000000000000000000000-0000000000000000000000-2pyB", - "x-example": "<CLIENT_ID>", - "x-nullable": true - }, - "secretKey": { - "type": "string", - "description": "'Secret Key 1 or Secret Key 2' of Paypal OAuth2 app. For example: EH8KCXtew--000000000000000000000000000000000000000_C-1_5UP_000000000000000CB7KDp", - "x-example": "<SECRET_KEY>", - "x-nullable": true - }, - "enabled": { - "type": "boolean", - "description": "OAuth2 sign-in method status. Set to true to enable new session creation. Setting to true will trigger end-to-end credentials validation, and will throw if the credentials are invalid.", - "x-example": false, - "x-nullable": true - } - } - } - } + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "x-example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "queries", + "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/queries). Maximum of 100 queries are allowed, each 4096 characters long. You may filter on the following attributes: status, type, databaseId", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string" + }, + "default": [] + }, + "in": "query" } - } - } - }, - "\/project\/oauth2\/paypalSandbox": { - "patch": { - "summary": "Update project OAuth2 PaypalSandbox", - "operationId": "projectUpdateOAuth2PaypalSandbox", + ] + }, + "post": { + "summary": "Create a database backup.", + "operationId": "postgresqlCreateBackup", "tags": [ - "project" + "postgresql" ], - "description": "Update the project OAuth2 PaypalSandbox configuration.", + "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": { - "200": { - "description": "OAuth2Paypal", + "202": { + "description": "Backup", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/oAuth2Paypal" + "$ref": "#\/components\/schemas\/dedicatedDatabaseBackup" } } } @@ -38056,18 +38465,15 @@ }, "deprecated": false, "x-appwrite": { - "method": "updateOAuth2PaypalSandbox", - "group": "oauth2", + "method": "createBackup", + "group": "databases", "cookies": false, "type": "", - "demo": "project\/update-o-auth-2-paypal-sandbox.md", + "demo": "postgresql\/create-backup.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": [ - "oauth2.write", - "project.oauth2.write" - ], + "scope": "databases.write", "platforms": [ "console", "server" @@ -38085,29 +38491,29 @@ "Key": [] } ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "x-example": "<DATABASE_ID>" + }, + "in": "path" + } + ], "requestBody": { "content": { "application\/json": { "schema": { "type": "object", "properties": { - "clientId": { - "type": "string", - "description": "'Client ID' of PaypalSandbox OAuth2 app. For example: AdhIEG7-000000000000-0000000000000000000000000000000-0000000000000000000000-2pyB", - "x-example": "<CLIENT_ID>", - "x-nullable": true - }, - "secretKey": { + "type": { "type": "string", - "description": "'Secret Key 1 or Secret Key 2' of PaypalSandbox OAuth2 app. For example: EH8KCXtew--000000000000000000000000000000000000000_C-1_5UP_000000000000000CB7KDp", - "x-example": "<SECRET_KEY>", - "x-nullable": true - }, - "enabled": { - "type": "boolean", - "description": "OAuth2 sign-in method status. Set to true to enable new session creation. Setting to true will trigger end-to-end credentials validation, and will throw if the credentials are invalid.", - "x-example": false, - "x-nullable": true + "description": "Backup type: full or incremental.", + "default": "full", + "x-example": "full" } } } @@ -38116,21 +38522,21 @@ } } }, - "\/project\/oauth2\/podio": { - "patch": { - "summary": "Update project OAuth2 Podio", - "operationId": "projectUpdateOAuth2Podio", + "\/postgresql\/{databaseId}\/backups\/policies": { + "get": { + "summary": "List database backup policies.", + "operationId": "postgresqlListBackupPolicies", "tags": [ - "project" + "postgresql" ], - "description": "Update the project OAuth2 Podio configuration.", + "description": "List scheduled backup policies for a dedicated database.", "responses": { "200": { - "description": "OAuth2Podio", + "description": "Backup policy list", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/oAuth2Podio" + "$ref": "#\/components\/schemas\/backupPolicyList" } } } @@ -38138,18 +38544,15 @@ }, "deprecated": false, "x-appwrite": { - "method": "updateOAuth2Podio", - "group": "oauth2", + "method": "listBackupPolicies", + "group": "databases", "cookies": false, "type": "", - "demo": "project\/update-o-auth-2-podio.md", + "demo": "postgresql\/list-backup-policies.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": [ - "oauth2.write", - "project.oauth2.write" - ], + "scope": "databases.read", "platforms": [ "console", "server" @@ -38167,52 +38570,46 @@ "Key": [] } ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "clientId": { - "type": "string", - "description": "'Client ID' of Podio OAuth2 app. For example: appwrite-o0000000st-app", - "x-example": "<CLIENT_ID>", - "x-nullable": true - }, - "clientSecret": { - "type": "string", - "description": "'Client Secret' of Podio OAuth2 app. For example: Rn247T0000000000000000000000000000000000000000000000000000W2zWTN", - "x-example": "<CLIENT_SECRET>", - "x-nullable": true - }, - "enabled": { - "type": "boolean", - "description": "OAuth2 sign-in method status. Set to true to enable new session creation. Setting to true will trigger end-to-end credentials validation, and will throw if the credentials are invalid.", - "x-example": false, - "x-nullable": true - } - } - } - } + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "x-example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "queries", + "description": "Array of query strings generated using the Query class provided by the SDK.", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string" + }, + "default": [] + }, + "in": "query" } - } - } - }, - "\/project\/oauth2\/salesforce": { - "patch": { - "summary": "Update project OAuth2 Salesforce", - "operationId": "projectUpdateOAuth2Salesforce", + ] + }, + "post": { + "summary": "Create a database backup policy.", + "operationId": "postgresqlCreateBackupPolicy", "tags": [ - "project" + "postgresql" ], - "description": "Update the project OAuth2 Salesforce configuration.", + "description": "Create a scheduled backup policy for a dedicated database.", "responses": { - "200": { - "description": "OAuth2Salesforce", + "201": { + "description": "backup", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/oAuth2Salesforce" + "$ref": "#\/components\/schemas\/backupPolicy" } } } @@ -38220,18 +38617,15 @@ }, "deprecated": false, "x-appwrite": { - "method": "updateOAuth2Salesforce", - "group": "oauth2", + "method": "createBackupPolicy", + "group": "databases", "cookies": false, "type": "", - "demo": "project\/update-o-auth-2-salesforce.md", + "demo": "postgresql\/create-backup-policy.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": [ - "oauth2.write", - "project.oauth2.write" - ], + "scope": "databases.write", "platforms": [ "console", "server" @@ -38249,52 +38643,88 @@ "Key": [] } ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "x-example": "<DATABASE_ID>" + }, + "in": "path" + } + ], "requestBody": { "content": { "application\/json": { "schema": { "type": "object", "properties": { - "customerKey": { + "policyId": { "type": "string", - "description": "'Consumer Key' of Salesforce OAuth2 app. For example: 3MVG9I0000000000000000000000000000000000000000000000000000000000000000000000000C5Aejq", - "x-example": "<CUSTOMER_KEY>", - "x-nullable": true + "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.", + "x-example": "<POLICY_ID>", + "x-appwrite": { + "idGenerator": "ID.unique" + } }, - "customerSecret": { + "name": { "type": "string", - "description": "'Consumer Secret' of Salesforce OAuth2 app. For example: 3w000000000000e2", - "x-example": "<CUSTOMER_SECRET>", - "x-nullable": true + "description": "Policy name. Max length: 128 chars.", + "x-example": "<NAME>" + }, + "schedule": { + "type": "string", + "description": "Schedule CRON syntax.", + "x-example": null + }, + "retention": { + "type": "integer", + "description": "Days to keep backups before deletion.", + "x-example": 1, + "format": "int32" + }, + "type": { + "type": "string", + "description": "Backup type: full or incremental.", + "default": "full", + "x-example": "full" }, "enabled": { "type": "boolean", - "description": "OAuth2 sign-in method status. Set to true to enable new session creation. Setting to true will trigger end-to-end credentials validation, and will throw if the credentials are invalid.", - "x-example": false, - "x-nullable": true + "description": "Is policy enabled? When disabled, no backups will be taken.", + "default": true, + "x-example": false } - } + }, + "required": [ + "policyId", + "name", + "schedule", + "retention" + ] } } } } } }, - "\/project\/oauth2\/slack": { - "patch": { - "summary": "Update project OAuth2 Slack", - "operationId": "projectUpdateOAuth2Slack", + "\/postgresql\/{databaseId}\/backups\/policies\/{policyId}": { + "get": { + "summary": "Get a database backup policy.", + "operationId": "postgresqlGetBackupPolicy", "tags": [ - "project" + "postgresql" ], - "description": "Update the project OAuth2 Slack configuration.", + "description": "Get a scheduled backup policy for a dedicated database.", "responses": { "200": { - "description": "OAuth2Slack", + "description": "backup", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/oAuth2Slack" + "$ref": "#\/components\/schemas\/backupPolicy" } } } @@ -38302,18 +38732,15 @@ }, "deprecated": false, "x-appwrite": { - "method": "updateOAuth2Slack", - "group": "oauth2", + "method": "getBackupPolicy", + "group": "databases", "cookies": false, "type": "", - "demo": "project\/update-o-auth-2-slack.md", + "demo": "postgresql\/get-backup-policy.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": [ - "oauth2.write", - "project.oauth2.write" - ], + "scope": "databases.read", "platforms": [ "console", "server" @@ -38331,52 +38758,43 @@ "Key": [] } ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "clientId": { - "type": "string", - "description": "'Client ID' of Slack OAuth2 app. For example: 23000000089.15000000000023", - "x-example": "<CLIENT_ID>", - "x-nullable": true - }, - "clientSecret": { - "type": "string", - "description": "'Client Secret' of Slack OAuth2 app. For example: 81656000000000000000000000f3d2fd", - "x-example": "<CLIENT_SECRET>", - "x-nullable": true - }, - "enabled": { - "type": "boolean", - "description": "OAuth2 sign-in method status. Set to true to enable new session creation. Setting to true will trigger end-to-end credentials validation, and will throw if the credentials are invalid.", - "x-example": false, - "x-nullable": true - } - } - } - } + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "x-example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "policyId", + "description": "Policy ID.", + "required": true, + "schema": { + "type": "string", + "x-example": "<POLICY_ID>" + }, + "in": "path" } - } - } - }, - "\/project\/oauth2\/spotify": { + ] + }, "patch": { - "summary": "Update project OAuth2 Spotify", - "operationId": "projectUpdateOAuth2Spotify", + "summary": "Update a database backup policy.", + "operationId": "postgresqlUpdateBackupPolicy", "tags": [ - "project" + "postgresql" ], - "description": "Update the project OAuth2 Spotify configuration.", + "description": "Update a scheduled backup policy for a dedicated database.", "responses": { "200": { - "description": "OAuth2Spotify", + "description": "backup", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/oAuth2Spotify" + "$ref": "#\/components\/schemas\/backupPolicy" } } } @@ -38384,18 +38802,15 @@ }, "deprecated": false, "x-appwrite": { - "method": "updateOAuth2Spotify", - "group": "oauth2", + "method": "updateBackupPolicy", + "group": "databases", "cookies": false, "type": "", - "demo": "project\/update-o-auth-2-spotify.md", + "demo": "postgresql\/update-backup-policy.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": [ - "oauth2.write", - "project.oauth2.write" - ], + "scope": "databases.write", "platforms": [ "console", "server" @@ -38413,27 +38828,55 @@ "Key": [] } ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "x-example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "policyId", + "description": "Policy ID.", + "required": true, + "schema": { + "type": "string", + "x-example": "<POLICY_ID>" + }, + "in": "path" + } + ], "requestBody": { "content": { "application\/json": { "schema": { "type": "object", "properties": { - "clientId": { + "name": { "type": "string", - "description": "'Client ID' of Spotify OAuth2 app. For example: 6ec271000000000000000000009beace", - "x-example": "<CLIENT_ID>", + "description": "Policy name. Max length: 128 chars.", + "x-example": "<NAME>", "x-nullable": true }, - "clientSecret": { + "schedule": { "type": "string", - "description": "'Client Secret' of Spotify OAuth2 app. For example: db068a000000000000000000008b5b9f", - "x-example": "<CLIENT_SECRET>", + "description": "Schedule CRON syntax.", + "x-example": null + }, + "retention": { + "type": "integer", + "description": "Days to keep backups before deletion.", + "x-example": 1, + "format": "int32", "x-nullable": true }, "enabled": { "type": "boolean", - "description": "OAuth2 sign-in method status. Set to true to enable new session creation. Setting to true will trigger end-to-end credentials validation, and will throw if the credentials are invalid.", + "description": "Is policy enabled? When disabled, no backups will be taken.", "x-example": false, "x-nullable": true } @@ -38442,48 +38885,39 @@ } } } - } - }, - "\/project\/oauth2\/stripe": { - "patch": { - "summary": "Update project OAuth2 Stripe", - "operationId": "projectUpdateOAuth2Stripe", + }, + "delete": { + "summary": "Delete a database backup policy.", + "operationId": "postgresqlDeleteBackupPolicy", "tags": [ - "project" + "postgresql" ], - "description": "Update the project OAuth2 Stripe configuration.", + "description": "Delete a scheduled backup policy for a dedicated database. Backups already taken by the policy are kept until their retention expires.", "responses": { - "200": { - "description": "OAuth2Stripe", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/oAuth2Stripe" - } - } - } + "204": { + "description": "No content" } }, "deprecated": false, "x-appwrite": { - "method": "updateOAuth2Stripe", - "group": "oauth2", + "method": "deleteBackupPolicy", + "group": "databases", "cookies": false, "type": "", - "demo": "project\/update-o-auth-2-stripe.md", + "demo": "postgresql\/delete-backup-policy.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": [ - "oauth2.write", - "project.oauth2.write" - ], + "scope": "databases.write", "platforms": [ "console", "server" ], "packaging": false, "public": true, + "produces": [ + "application\/json" + ], "auth": { "Project": [], "Key": [] @@ -38495,52 +38929,45 @@ "Key": [] } ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "clientId": { - "type": "string", - "description": "'Client ID' of Stripe OAuth2 app. For example: ca_UKibXX0000000000000000000006byvR", - "x-example": "<CLIENT_ID>", - "x-nullable": true - }, - "apiSecretKey": { - "type": "string", - "description": "'API Secret Key' of Stripe OAuth2 app. For example: sk_51SfOd000000000000000000000000000000000000000000000000000000000000000000000000000000000000000QGWYfp", - "x-example": "<API_SECRET_KEY>", - "x-nullable": true - }, - "enabled": { - "type": "boolean", - "description": "OAuth2 sign-in method status. Set to true to enable new session creation. Setting to true will trigger end-to-end credentials validation, and will throw if the credentials are invalid.", - "x-example": false, - "x-nullable": true - } - } - } - } + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "x-example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "policyId", + "description": "Policy ID.", + "required": true, + "schema": { + "type": "string", + "x-example": "<POLICY_ID>" + }, + "in": "path" } - } + ] } }, - "\/project\/oauth2\/tradeshift": { - "patch": { - "summary": "Update project OAuth2 Tradeshift", - "operationId": "projectUpdateOAuth2Tradeshift", + "\/postgresql\/{databaseId}\/backups\/storage": { + "put": { + "summary": "Update database backup storage.", + "operationId": "postgresqlUpdateBackupStorage", "tags": [ - "project" + "postgresql" ], - "description": "Update the project OAuth2 Tradeshift configuration.", + "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": "OAuth2Tradeshift", + "description": "BackupStorageConfig", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/oAuth2Tradeshift" + "$ref": "#\/components\/schemas\/dedicatedDatabaseBackupStorage" } } } @@ -38548,18 +38975,15 @@ }, "deprecated": false, "x-appwrite": { - "method": "updateOAuth2Tradeshift", - "group": "oauth2", + "method": "updateBackupStorage", + "group": "databases", "cookies": false, "type": "", - "demo": "project\/update-o-auth-2-tradeshift.md", + "demo": "postgresql\/update-backup-storage.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": [ - "oauth2.write", - "project.oauth2.write" - ], + "scope": "databases.write", "platforms": [ "console", "server" @@ -38577,52 +39001,90 @@ "Key": [] } ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "x-example": "<DATABASE_ID>" + }, + "in": "path" + } + ], "requestBody": { "content": { "application\/json": { "schema": { "type": "object", "properties": { - "oauth2ClientId": { + "provider": { "type": "string", - "description": "'OAuth2 Client ID' of Tradeshift OAuth2 app. For example: appwrite-tes00000.0000000000est-app", - "x-example": "<OAUTH2_CLIENT_ID>", - "x-nullable": true + "description": "Storage provider for off-cluster backups. Allowed values: s3 (Amazon S3 or S3-compatible), gcs (Google Cloud Storage), azure (Azure Blob Storage).", + "x-example": "s3" }, - "oauth2ClientSecret": { + "bucket": { "type": "string", - "description": "'OAuth2 Client Secret' of Tradeshift OAuth2 app. For example: 7cb52700-0000-0000-0000-000000ca5b83", - "x-example": "<OAUTH2_CLIENT_SECRET>", - "x-nullable": true + "description": "Storage bucket or container name.", + "x-example": "<BUCKET>" }, - "enabled": { - "type": "boolean", - "description": "OAuth2 sign-in method status. Set to true to enable new session creation. Setting to true will trigger end-to-end credentials validation, and will throw if the credentials are invalid.", - "x-example": false, - "x-nullable": true + "region": { + "type": "string", + "description": "Storage region.", + "default": "", + "x-example": "<REGION>" + }, + "prefix": { + "type": "string", + "description": "Object key prefix for backups.", + "default": "backups\/", + "x-example": "<PREFIX>" + }, + "endpoint": { + "type": "string", + "description": "Custom endpoint for S3-compatible storage (e.g. MinIO).", + "default": "", + "x-example": "<ENDPOINT>" + }, + "accessKey": { + "type": "string", + "description": "Access key or client ID for authentication.", + "x-example": "<ACCESS_KEY>" + }, + "secretKey": { + "type": "string", + "description": "Secret key or service account JSON for authentication.", + "x-example": "<SECRET_KEY>" } - } + }, + "required": [ + "provider", + "bucket", + "accessKey", + "secretKey" + ] } } } } } }, - "\/project\/oauth2\/tradeshiftBox": { - "patch": { - "summary": "Update project OAuth2 Tradeshift Sandbox", - "operationId": "projectUpdateOAuth2TradeshiftSandbox", + "\/postgresql\/{databaseId}\/backups\/{backupId}": { + "get": { + "summary": "Get a database backup.", + "operationId": "postgresqlGetBackup", "tags": [ - "project" + "postgresql" ], - "description": "Update the project OAuth2 Tradeshift Sandbox configuration.", + "description": "Get details of a specific database backup including its status, size, and timestamps.", "responses": { "200": { - "description": "OAuth2Tradeshift", + "description": "Backup", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/oAuth2Tradeshift" + "$ref": "#\/components\/schemas\/dedicatedDatabaseBackup" } } } @@ -38630,18 +39092,15 @@ }, "deprecated": false, "x-appwrite": { - "method": "updateOAuth2TradeshiftSandbox", - "group": "oauth2", + "method": "getBackup", + "group": "databases", "cookies": false, "type": "", - "demo": "project\/update-o-auth-2-tradeshift-sandbox.md", + "demo": "postgresql\/get-backup.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": [ - "oauth2.write", - "project.oauth2.write" - ], + "scope": "databases.read", "platforms": [ "console", "server" @@ -38659,77 +39118,61 @@ "Key": [] } ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "oauth2ClientId": { - "type": "string", - "description": "'OAuth2 Client ID' of Tradeshift Sandbox OAuth2 app. For example: appwrite-tes00000.0000000000est-app", - "x-example": "<OAUTH2_CLIENT_ID>", - "x-nullable": true - }, - "oauth2ClientSecret": { - "type": "string", - "description": "'OAuth2 Client Secret' of Tradeshift Sandbox OAuth2 app. For example: 7cb52700-0000-0000-0000-000000ca5b83", - "x-example": "<OAUTH2_CLIENT_SECRET>", - "x-nullable": true - }, - "enabled": { - "type": "boolean", - "description": "OAuth2 sign-in method status. Set to true to enable new session creation. Setting to true will trigger end-to-end credentials validation, and will throw if the credentials are invalid.", - "x-example": false, - "x-nullable": true - } - } - } - } + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "x-example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "backupId", + "description": "Backup ID.", + "required": true, + "schema": { + "type": "string", + "x-example": "<BACKUP_ID>" + }, + "in": "path" } - } - } - }, - "\/project\/oauth2\/twitch": { - "patch": { - "summary": "Update project OAuth2 Twitch", - "operationId": "projectUpdateOAuth2Twitch", + ] + }, + "delete": { + "summary": "Delete a database backup.", + "operationId": "postgresqlDeleteBackup", "tags": [ - "project" + "postgresql" ], - "description": "Update the project OAuth2 Twitch configuration.", + "description": "Delete a database backup. This will permanently remove the backup from storage and cannot be undone.", "responses": { - "200": { - "description": "OAuth2Twitch", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/oAuth2Twitch" - } - } - } + "204": { + "description": "No content" } }, "deprecated": false, "x-appwrite": { - "method": "updateOAuth2Twitch", - "group": "oauth2", + "method": "deleteBackup", + "group": "databases", "cookies": false, "type": "", - "demo": "project\/update-o-auth-2-twitch.md", + "demo": "postgresql\/delete-backup.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": [ - "oauth2.write", - "project.oauth2.write" - ], + "scope": "databases.write", "platforms": [ "console", "server" ], "packaging": false, "public": true, + "produces": [ + "application\/json" + ], "auth": { "Project": [], "Key": [] @@ -38741,52 +39184,45 @@ "Key": [] } ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "clientId": { - "type": "string", - "description": "'Client ID' of Twitch OAuth2 app. For example: vvi0in000000000000000000ikmt9p", - "x-example": "<CLIENT_ID>", - "x-nullable": true - }, - "clientSecret": { - "type": "string", - "description": "'Client Secret' of Twitch OAuth2 app. For example: pmapue000000000000000000zylw3v", - "x-example": "<CLIENT_SECRET>", - "x-nullable": true - }, - "enabled": { - "type": "boolean", - "description": "OAuth2 sign-in method status. Set to true to enable new session creation. Setting to true will trigger end-to-end credentials validation, and will throw if the credentials are invalid.", - "x-example": false, - "x-nullable": true - } - } - } - } + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "x-example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "backupId", + "description": "Backup ID.", + "required": true, + "schema": { + "type": "string", + "x-example": "<BACKUP_ID>" + }, + "in": "path" } - } + ] } }, - "\/project\/oauth2\/wordpress": { - "patch": { - "summary": "Update project OAuth2 WordPress", - "operationId": "projectUpdateOAuth2WordPress", + "\/postgresql\/{databaseId}\/branches": { + "get": { + "summary": "List database branches.", + "operationId": "postgresqlListBranches", "tags": [ - "project" + "postgresql" ], - "description": "Update the project OAuth2 WordPress configuration.", + "description": "List all ephemeral branches for a dedicated database. Returns branch metadata including ID, name, namespace, and expiration time.", "responses": { "200": { - "description": "OAuth2WordPress", + "description": "BranchList", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/oAuth2WordPress" + "$ref": "#\/components\/schemas\/dedicatedDatabaseBranchList" } } } @@ -38794,18 +39230,15 @@ }, "deprecated": false, "x-appwrite": { - "method": "updateOAuth2WordPress", - "group": "oauth2", + "method": "listBranches", + "group": "databases", "cookies": false, "type": "", - "demo": "project\/update-o-auth-2-word-press.md", + "demo": "postgresql\/list-branches.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": [ - "oauth2.write", - "project.oauth2.write" - ], + "scope": "databases.read", "platforms": [ "console", "server" @@ -38823,52 +39256,33 @@ "Key": [] } ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "clientId": { - "type": "string", - "description": "'Client ID' of WordPress OAuth2 app. For example: 130005", - "x-example": "<CLIENT_ID>", - "x-nullable": true - }, - "clientSecret": { - "type": "string", - "description": "'Client Secret' of WordPress OAuth2 app. For example: PlBfJS0000000000000000000000000000000000000000000000000000EdUZJk", - "x-example": "<CLIENT_SECRET>", - "x-nullable": true - }, - "enabled": { - "type": "boolean", - "description": "OAuth2 sign-in method status. Set to true to enable new session creation. Setting to true will trigger end-to-end credentials validation, and will throw if the credentials are invalid.", - "x-example": false, - "x-nullable": true - } - } - } - } + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "x-example": "<DATABASE_ID>" + }, + "in": "path" } - } - } - }, - "\/project\/oauth2\/x": { - "patch": { - "summary": "Update project OAuth2 X", - "operationId": "projectUpdateOAuth2X", + ] + }, + "post": { + "summary": "Create a database branch.", + "operationId": "postgresqlCreateBranch", "tags": [ - "project" + "postgresql" ], - "description": "Update the project OAuth2 X configuration.", + "description": "Create an ephemeral database branch from the primary via PVC snapshot. The branch is a full copy of the database at the current point in time, useful for testing schema migrations or running experiments without affecting production data. Branches expire after the configured TTL (default 24 hours). The branch is created asynchronously.", "responses": { - "200": { - "description": "OAuth2X", + "202": { + "description": "DedicatedDatabase", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/oAuth2X" + "$ref": "#\/components\/schemas\/dedicatedDatabase" } } } @@ -38876,18 +39290,15 @@ }, "deprecated": false, "x-appwrite": { - "method": "updateOAuth2X", - "group": "oauth2", + "method": "createBranch", + "group": "databases", "cookies": false, "type": "", - "demo": "project\/update-o-auth-2x.md", + "demo": "postgresql\/create-branch.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": [ - "oauth2.write", - "project.oauth2.write" - ], + "scope": "databases.write", "platforms": [ "console", "server" @@ -38905,29 +39316,39 @@ "Key": [] } ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "x-example": "<DATABASE_ID>" + }, + "in": "path" + } + ], "requestBody": { "content": { "application\/json": { "schema": { "type": "object", "properties": { - "customerKey": { - "type": "string", - "description": "'Customer Key' of X OAuth2 app. For example: slzZV0000000000000NFLaWT", - "x-example": "<CUSTOMER_KEY>", - "x-nullable": true - }, - "secretKey": { + "branchId": { "type": "string", - "description": "'Secret Key' of X OAuth2 app. For example: tkEPkp00000000000000000000000000000000000000FTxbI9", - "x-example": "<SECRET_KEY>", - "x-nullable": true + "description": "Branch ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.", + "default": "", + "x-example": "<BRANCH_ID>", + "x-appwrite": { + "idGenerator": "ID.unique" + } }, - "enabled": { - "type": "boolean", - "description": "OAuth2 sign-in method status. Set to true to enable new session creation. Setting to true will trigger end-to-end credentials validation, and will throw if the credentials are invalid.", - "x-example": false, - "x-nullable": true + "ttl": { + "type": "integer", + "description": "Time-to-live in seconds before the branch expires. Min 300 (5 min), max 604800 (7 days). Default: 86400 (24h).", + "default": 86400, + "x-example": 300, + "format": "int32" } } } @@ -38936,21 +39357,21 @@ } } }, - "\/project\/oauth2\/yahoo": { - "patch": { - "summary": "Update project OAuth2 Yahoo", - "operationId": "projectUpdateOAuth2Yahoo", + "\/postgresql\/{databaseId}\/branches\/{branchId}": { + "delete": { + "summary": "Delete a database branch.", + "operationId": "postgresqlDeleteBranch", "tags": [ - "project" + "postgresql" ], - "description": "Update the project OAuth2 Yahoo configuration.", + "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": { - "200": { - "description": "OAuth2Yahoo", + "202": { + "description": "DedicatedDatabase", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/oAuth2Yahoo" + "$ref": "#\/components\/schemas\/dedicatedDatabase" } } } @@ -38958,18 +39379,15 @@ }, "deprecated": false, "x-appwrite": { - "method": "updateOAuth2Yahoo", - "group": "oauth2", + "method": "deleteBranch", + "group": "databases", "cookies": false, "type": "", - "demo": "project\/update-o-auth-2-yahoo.md", + "demo": "postgresql\/delete-branch.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": [ - "oauth2.write", - "project.oauth2.write" - ], + "scope": "databases.write", "platforms": [ "console", "server" @@ -38987,52 +39405,45 @@ "Key": [] } ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "clientId": { - "type": "string", - "description": "'Client ID, also known as Customer Key' of Yahoo OAuth2 app. For example: dj0yJm000000000000000000000000000000000000000000000000000000000000000000000000000000000000Z4PWRm", - "x-example": "<CLIENT_ID>", - "x-nullable": true - }, - "clientSecret": { - "type": "string", - "description": "'Client Secret, also known as Customer Secret' of Yahoo OAuth2 app. For example: cf978f0000000000000000000000000000c5e2e9", - "x-example": "<CLIENT_SECRET>", - "x-nullable": true - }, - "enabled": { - "type": "boolean", - "description": "OAuth2 sign-in method status. Set to true to enable new session creation. Setting to true will trigger end-to-end credentials validation, and will throw if the credentials are invalid.", - "x-example": false, - "x-nullable": true - } - } - } - } + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "x-example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "branchId", + "description": "Branch ID.", + "required": true, + "schema": { + "type": "string", + "x-example": "<BRANCH_ID>" + }, + "in": "path" } - } + ] } }, - "\/project\/oauth2\/yandex": { + "\/postgresql\/{databaseId}\/credentials": { "patch": { - "summary": "Update project OAuth2 Yandex", - "operationId": "projectUpdateOAuth2Yandex", + "summary": "Rotate database credentials.", + "operationId": "postgresqlUpdateCredentials", "tags": [ - "project" + "postgresql" ], - "description": "Update the project OAuth2 Yandex configuration.", + "description": "Rotate the primary connection credentials for a dedicated database. Generates a new password and updates the database atomically. Previous credentials stop working immediately. Returns the database with a refreshed connection string carrying the new password.", "responses": { "200": { - "description": "OAuth2Yandex", + "description": "DedicatedDatabase", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/oAuth2Yandex" + "$ref": "#\/components\/schemas\/dedicatedDatabase" } } } @@ -39040,18 +39451,15 @@ }, "deprecated": false, "x-appwrite": { - "method": "updateOAuth2Yandex", - "group": "oauth2", + "method": "updateCredentials", + "group": "databases", "cookies": false, "type": "", - "demo": "project\/update-o-auth-2-yandex.md", + "demo": "postgresql\/update-credentials.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": [ - "oauth2.write", - "project.oauth2.write" - ], + "scope": "databases.write", "platforms": [ "console", "server" @@ -39069,52 +39477,35 @@ "Key": [] } ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "clientId": { - "type": "string", - "description": "'Client ID' of Yandex OAuth2 app. For example: 6a8a6a0000000000000000000091483c", - "x-example": "<CLIENT_ID>", - "x-nullable": true - }, - "clientSecret": { - "type": "string", - "description": "'Client Secret' of Yandex OAuth2 app. For example: bbf98500000000000000000000c75a63", - "x-example": "<CLIENT_SECRET>", - "x-nullable": true - }, - "enabled": { - "type": "boolean", - "description": "OAuth2 sign-in method status. Set to true to enable new session creation. Setting to true will trigger end-to-end credentials validation, and will throw if the credentials are invalid.", - "x-example": false, - "x-nullable": true - } - } - } - } + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "x-example": "<DATABASE_ID>" + }, + "in": "path" } - } + ] } }, - "\/project\/oauth2\/zoho": { - "patch": { - "summary": "Update project OAuth2 Zoho", - "operationId": "projectUpdateOAuth2Zoho", + "\/postgresql\/{databaseId}\/executions": { + "post": { + "summary": "Execute a SQL statement against a dedicated database.", + "operationId": "postgresqlCreateExecution", "tags": [ - "project" + "postgresql" ], - "description": "Update the project OAuth2 Zoho configuration.", + "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": "OAuth2Zoho", + "description": "Execution", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/oAuth2Zoho" + "$ref": "#\/components\/schemas\/dedicatedDatabaseExecution" } } } @@ -39122,18 +39513,15 @@ }, "deprecated": false, "x-appwrite": { - "method": "updateOAuth2Zoho", - "group": "oauth2", + "method": "createExecution", + "group": "databases", "cookies": false, "type": "", - "demo": "project\/update-o-auth-2-zoho.md", + "demo": "postgresql\/create-execution.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": [ - "oauth2.write", - "project.oauth2.write" - ], + "scope": "databases.write", "platforms": [ "console", "server" @@ -39151,52 +39539,68 @@ "Key": [] } ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "x-example": "<DATABASE_ID>" + }, + "in": "path" + } + ], "requestBody": { "content": { "application\/json": { "schema": { "type": "object", "properties": { - "clientId": { + "sql": { "type": "string", - "description": "'Client ID' of Zoho OAuth2 app. For example: 1000.83C178000000000000000000RPNX0B", - "x-example": "<CLIENT_ID>", - "x-nullable": true + "description": "SQL statement to execute. Exactly one statement per request.", + "x-example": "<SQL>" }, - "clientSecret": { - "type": "string", - "description": "'Client Secret' of Zoho OAuth2 app. For example: fb5cac000000000000000000000000000000a68f6e", - "x-example": "<CLIENT_SECRET>", + "bindings": { + "type": "object", + "description": "Optional bound parameters. Pass either a positional list or a name => value map matching the placeholder style used in the SQL.", + "default": {}, + "x-example": "{}", "x-nullable": true }, - "enabled": { - "type": "boolean", - "description": "OAuth2 sign-in method status. Set to true to enable new session creation. Setting to true will trigger end-to-end credentials validation, and will throw if the credentials are invalid.", - "x-example": false, + "timeoutSeconds": { + "type": "integer", + "description": "Per-call execution timeout override. Must be less than or equal to the database's configured sqlApiTimeoutSeconds.", + "x-example": 1, + "format": "int32", "x-nullable": true } - } + }, + "required": [ + "sql" + ] } } } } } }, - "\/project\/oauth2\/zoom": { - "patch": { - "summary": "Update project OAuth2 Zoom", - "operationId": "projectUpdateOAuth2Zoom", + "\/postgresql\/{databaseId}\/extensions": { + "get": { + "summary": "List database extensions.", + "operationId": "postgresqlListExtensions", "tags": [ - "project" + "postgresql" ], - "description": "Update the project OAuth2 Zoom configuration.", + "description": "List installed and available extensions for a PostgreSQL database.", "responses": { "200": { - "description": "OAuth2Zoom", + "description": "Extensions", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/oAuth2Zoom" + "$ref": "#\/components\/schemas\/dedicatedDatabaseExtensions" } } } @@ -39204,18 +39608,15 @@ }, "deprecated": false, "x-appwrite": { - "method": "updateOAuth2Zoom", - "group": "oauth2", + "method": "listExtensions", + "group": "databases", "cookies": false, "type": "", - "demo": "project\/update-o-auth-2-zoom.md", + "demo": "postgresql\/list-extensions.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": [ - "oauth2.write", - "project.oauth2.write" - ], + "scope": "databases.read", "platforms": [ "console", "server" @@ -39233,220 +39634,33 @@ "Key": [] } ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "clientId": { - "type": "string", - "description": "'Client ID' of Zoom OAuth2 app. For example: QMAC00000000000000w0AQ", - "x-example": "<CLIENT_ID>", - "x-nullable": true - }, - "clientSecret": { - "type": "string", - "description": "'Client Secret' of Zoom OAuth2 app. For example: GAWsG4000000000000000000007U01ON", - "x-example": "<CLIENT_SECRET>", - "x-nullable": true - }, - "enabled": { - "type": "boolean", - "description": "OAuth2 sign-in method status. Set to true to enable new session creation. Setting to true will trigger end-to-end credentials validation, and will throw if the credentials are invalid.", - "x-example": false, - "x-nullable": true - } - } - } - } + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "x-example": "<DATABASE_ID>" + }, + "in": "path" } - } - } - }, - "\/project\/oauth2\/{providerId}": { - "get": { - "summary": "Get project OAuth2 provider", - "operationId": "projectGetOAuth2Provider", + ] + }, + "post": { + "summary": "Install a database extension.", + "operationId": "postgresqlCreateExtension", "tags": [ - "project" + "postgresql" ], - "description": "Get a single OAuth2 provider configuration. Credential fields (client secret, p8 file, key\/team IDs) are write-only and always returned empty.", + "description": "Install a database extension. Only available for PostgreSQL databases. The install runs asynchronously; poll the extensions list endpoint for status.", "responses": { - "200": { - "description": "OAuth2GitHub, or OAuth2Discord, or OAuth2Figma, or OAuth2Dropbox, or OAuth2Dailymotion, or OAuth2Bitbucket, or OAuth2Bitly, or OAuth2Box, or OAuth2Autodesk, or OAuth2Google, or OAuth2Zoom, or OAuth2Zoho, or OAuth2Yandex, or OAuth2X, or OAuth2WordPress, or OAuth2Twitch, or OAuth2Stripe, or OAuth2Spotify, or OAuth2Slack, or OAuth2Podio, or OAuth2Notion, or OAuth2Salesforce, or OAuth2Yahoo, or OAuth2Linkedin, or OAuth2Disqus, or OAuth2Amazon, or OAuth2Etsy, or OAuth2Facebook, or OAuth2Tradeshift, or OAuth2Paypal, or OAuth2Gitlab, or OAuth2Authentik, or OAuth2Auth0, or OAuth2FusionAuth, or OAuth2Keycloak, or OAuth2Oidc, or OAuth2Apple, or OAuth2Okta, or OAuth2Kick, or OAuth2Microsoft", + "202": { + "description": "DedicatedDatabase", "content": { "application\/json": { "schema": { - "oneOf": [ - { - "$ref": "#\/components\/schemas\/oAuth2Github" - }, - { - "$ref": "#\/components\/schemas\/oAuth2Discord" - }, - { - "$ref": "#\/components\/schemas\/oAuth2Figma" - }, - { - "$ref": "#\/components\/schemas\/oAuth2Dropbox" - }, - { - "$ref": "#\/components\/schemas\/oAuth2Dailymotion" - }, - { - "$ref": "#\/components\/schemas\/oAuth2Bitbucket" - }, - { - "$ref": "#\/components\/schemas\/oAuth2Bitly" - }, - { - "$ref": "#\/components\/schemas\/oAuth2Box" - }, - { - "$ref": "#\/components\/schemas\/oAuth2Autodesk" - }, - { - "$ref": "#\/components\/schemas\/oAuth2Google" - }, - { - "$ref": "#\/components\/schemas\/oAuth2Zoom" - }, - { - "$ref": "#\/components\/schemas\/oAuth2Zoho" - }, - { - "$ref": "#\/components\/schemas\/oAuth2Yandex" - }, - { - "$ref": "#\/components\/schemas\/oAuth2X" - }, - { - "$ref": "#\/components\/schemas\/oAuth2WordPress" - }, - { - "$ref": "#\/components\/schemas\/oAuth2Twitch" - }, - { - "$ref": "#\/components\/schemas\/oAuth2Stripe" - }, - { - "$ref": "#\/components\/schemas\/oAuth2Spotify" - }, - { - "$ref": "#\/components\/schemas\/oAuth2Slack" - }, - { - "$ref": "#\/components\/schemas\/oAuth2Podio" - }, - { - "$ref": "#\/components\/schemas\/oAuth2Notion" - }, - { - "$ref": "#\/components\/schemas\/oAuth2Salesforce" - }, - { - "$ref": "#\/components\/schemas\/oAuth2Yahoo" - }, - { - "$ref": "#\/components\/schemas\/oAuth2Linkedin" - }, - { - "$ref": "#\/components\/schemas\/oAuth2Disqus" - }, - { - "$ref": "#\/components\/schemas\/oAuth2Amazon" - }, - { - "$ref": "#\/components\/schemas\/oAuth2Etsy" - }, - { - "$ref": "#\/components\/schemas\/oAuth2Facebook" - }, - { - "$ref": "#\/components\/schemas\/oAuth2Tradeshift" - }, - { - "$ref": "#\/components\/schemas\/oAuth2Paypal" - }, - { - "$ref": "#\/components\/schemas\/oAuth2Gitlab" - }, - { - "$ref": "#\/components\/schemas\/oAuth2Authentik" - }, - { - "$ref": "#\/components\/schemas\/oAuth2Auth0" - }, - { - "$ref": "#\/components\/schemas\/oAuth2FusionAuth" - }, - { - "$ref": "#\/components\/schemas\/oAuth2Keycloak" - }, - { - "$ref": "#\/components\/schemas\/oAuth2Oidc" - }, - { - "$ref": "#\/components\/schemas\/oAuth2Apple" - }, - { - "$ref": "#\/components\/schemas\/oAuth2Okta" - }, - { - "$ref": "#\/components\/schemas\/oAuth2Kick" - }, - { - "$ref": "#\/components\/schemas\/oAuth2Microsoft" - } - ], - "discriminator": { - "propertyName": "$id", - "mapping": { - "github": "#\/components\/schemas\/oAuth2Github", - "discord": "#\/components\/schemas\/oAuth2Discord", - "figma": "#\/components\/schemas\/oAuth2Figma", - "dropbox": "#\/components\/schemas\/oAuth2Dropbox", - "dailymotion": "#\/components\/schemas\/oAuth2Dailymotion", - "bitbucket": "#\/components\/schemas\/oAuth2Bitbucket", - "bitly": "#\/components\/schemas\/oAuth2Bitly", - "box": "#\/components\/schemas\/oAuth2Box", - "autodesk": "#\/components\/schemas\/oAuth2Autodesk", - "google": "#\/components\/schemas\/oAuth2Google", - "zoom": "#\/components\/schemas\/oAuth2Zoom", - "zoho": "#\/components\/schemas\/oAuth2Zoho", - "yandex": "#\/components\/schemas\/oAuth2Yandex", - "x": "#\/components\/schemas\/oAuth2X", - "wordpress": "#\/components\/schemas\/oAuth2WordPress", - "twitch": "#\/components\/schemas\/oAuth2Twitch", - "stripe": "#\/components\/schemas\/oAuth2Stripe", - "spotify": "#\/components\/schemas\/oAuth2Spotify", - "slack": "#\/components\/schemas\/oAuth2Slack", - "podio": "#\/components\/schemas\/oAuth2Podio", - "notion": "#\/components\/schemas\/oAuth2Notion", - "salesforce": "#\/components\/schemas\/oAuth2Salesforce", - "yahoo": "#\/components\/schemas\/oAuth2Yahoo", - "linkedin": "#\/components\/schemas\/oAuth2Linkedin", - "disqus": "#\/components\/schemas\/oAuth2Disqus", - "amazon": "#\/components\/schemas\/oAuth2Amazon", - "etsy": "#\/components\/schemas\/oAuth2Etsy", - "facebook": "#\/components\/schemas\/oAuth2Facebook", - "tradeshift": "#\/components\/schemas\/oAuth2Tradeshift", - "tradeshiftBox": "#\/components\/schemas\/oAuth2Tradeshift", - "paypal": "#\/components\/schemas\/oAuth2Paypal", - "paypalSandbox": "#\/components\/schemas\/oAuth2Paypal", - "gitlab": "#\/components\/schemas\/oAuth2Gitlab", - "authentik": "#\/components\/schemas\/oAuth2Authentik", - "auth0": "#\/components\/schemas\/oAuth2Auth0", - "fusionauth": "#\/components\/schemas\/oAuth2FusionAuth", - "keycloak": "#\/components\/schemas\/oAuth2Keycloak", - "oidc": "#\/components\/schemas\/oAuth2Oidc", - "apple": "#\/components\/schemas\/oAuth2Apple", - "okta": "#\/components\/schemas\/oAuth2Okta", - "kick": "#\/components\/schemas\/oAuth2Kick", - "microsoft": "#\/components\/schemas\/oAuth2Microsoft" - } - } + "$ref": "#\/components\/schemas\/dedicatedDatabase" } } } @@ -39454,18 +39668,15 @@ }, "deprecated": false, "x-appwrite": { - "method": "getOAuth2Provider", - "group": "oauth2", + "method": "createExtension", + "group": "databases", "cookies": false, "type": "", - "demo": "project\/get-o-auth-2-provider.md", + "demo": "postgresql\/create-extension.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": [ - "oauth2.read", - "project.oauth2.read" - ], + "scope": "databases.write", "platforms": [ "console", "server" @@ -39485,124 +39696,52 @@ ], "parameters": [ { - "name": "providerId", - "description": "OAuth2 provider key. For example: github, google, apple.", + "name": "databaseId", + "description": "Database ID.", "required": true, "schema": { "type": "string", - "x-example": "amazon", - "enum": [ - "amazon", - "apple", - "auth0", - "authentik", - "autodesk", - "bitbucket", - "bitly", - "box", - "dailymotion", - "discord", - "disqus", - "dropbox", - "etsy", - "facebook", - "figma", - "fusionauth", - "github", - "gitlab", - "google", - "keycloak", - "kick", - "linkedin", - "microsoft", - "notion", - "oidc", - "okta", - "paypal", - "paypalSandbox", - "podio", - "salesforce", - "slack", - "spotify", - "stripe", - "tradeshift", - "tradeshiftBox", - "twitch", - "wordpress", - "x", - "yahoo", - "yammer", - "yandex", - "zoho", - "zoom" - ], - "x-enum-name": "ProjectOAuthProviderId", - "x-enum-keys": [ - "amazon", - "apple", - "auth0", - "authentik", - "autodesk", - "bitbucket", - "bitly", - "box", - "dailymotion", - "discord", - "disqus", - "dropbox", - "etsy", - "facebook", - "figma", - "fusionauth", - "github", - "gitlab", - "google", - "keycloak", - "kick", - "linkedin", - "microsoft", - "notion", - "oidc", - "okta", - "paypal", - "paypalSandbox", - "podio", - "salesforce", - "slack", - "spotify", - "stripe", - "tradeshift", - "tradeshiftBox", - "twitch", - "wordpress", - "x", - "yahoo", - "yammer", - "yandex", - "zoho", - "zoom" - ] + "x-example": "<DATABASE_ID>" }, "in": "path" } - ] + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "Extension name (e.g., pgvector, postgis, uuid-ossp).", + "x-example": "<NAME>" + } + }, + "required": [ + "name" + ] + } + } + } + } } }, - "\/project\/platforms": { - "get": { - "summary": "List project platforms", - "operationId": "projectListPlatforms", + "\/postgresql\/{databaseId}\/extensions\/{extensionName}": { + "delete": { + "summary": "Uninstall a database extension.", + "operationId": "postgresqlDeleteExtension", "tags": [ - "project" + "postgresql" ], - "description": "Get a list of all platforms in the project. This endpoint returns an array of all platforms and their configurations.", + "description": "Uninstall a database extension from a PostgreSQL database. The uninstall runs asynchronously; poll the extensions list endpoint for status.", "responses": { - "200": { - "description": "Platforms List", + "202": { + "description": "DedicatedDatabase", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/platformList" + "$ref": "#\/components\/schemas\/dedicatedDatabase" } } } @@ -39610,15 +39749,15 @@ }, "deprecated": false, "x-appwrite": { - "method": "listPlatforms", - "group": "platforms", + "method": "deleteExtension", + "group": "databases", "cookies": false, "type": "", - "demo": "project\/list-platforms.md", + "demo": "postgresql\/delete-extension.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "platforms.read", + "scope": "databases.write", "platforms": [ "console", "server" @@ -39638,47 +39777,43 @@ ], "parameters": [ { - "name": "queries", - "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/queries). Maximum of 100 queries are allowed, each 4096 characters long. You may filter on the following attributes: type, name, hostname, bundleIdentifier, applicationId, packageIdentifierName, packageName", - "required": false, + "name": "databaseId", + "description": "Database ID.", + "required": true, "schema": { - "type": "array", - "items": { - "type": "string" - }, - "default": [] + "type": "string", + "x-example": "<DATABASE_ID>" }, - "in": "query" + "in": "path" }, { - "name": "total", - "description": "When set to false, the total count returned will be 0 and will not be calculated.", - "required": false, + "name": "extensionName", + "description": "Extension name to uninstall.", + "required": true, "schema": { - "type": "boolean", - "x-example": false, - "default": true + "type": "string", + "x-example": "<EXTENSION_NAME>" }, - "in": "query" + "in": "path" } ] } }, - "\/project\/platforms\/android": { + "\/postgresql\/{databaseId}\/failovers": { "post": { - "summary": "Create project Android platform", - "operationId": "projectCreateAndroidPlatform", + "summary": "Trigger manual failover.", + "operationId": "postgresqlCreateFailover", "tags": [ - "project" + "postgresql" ], - "description": "Create a new Android platform for your project. Use this endpoint to register a new Android platform where your users will run your application which will interact with the Appwrite API.", + "description": "Trigger a manual failover for a dedicated database with high availability enabled. Promotes a replica to primary. The failover runs asynchronously; poll the database document for status updates.", "responses": { - "201": { - "description": "Platform Android", + "202": { + "description": "DedicatedDatabase", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/platformAndroid" + "$ref": "#\/components\/schemas\/dedicatedDatabase" } } } @@ -39686,15 +39821,15 @@ }, "deprecated": false, "x-appwrite": { - "method": "createAndroidPlatform", - "group": "platforms", + "method": "createFailover", + "group": "databases", "cookies": false, "type": "", - "demo": "project\/create-android-platform.md", + "demo": "postgresql\/create-failover.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "platforms.write", + "scope": "databases.write", "platforms": [ "console", "server" @@ -39712,57 +39847,52 @@ "Key": [] } ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "x-example": "<DATABASE_ID>" + }, + "in": "path" + } + ], "requestBody": { "content": { "application\/json": { "schema": { "type": "object", "properties": { - "platformId": { - "type": "string", - "description": "Platform ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.", - "x-example": "<PLATFORM_ID>", - "x-appwrite": { - "idGenerator": "ID.unique" - } - }, - "name": { - "type": "string", - "description": "Platform name. Max length: 128 chars.", - "x-example": "<NAME>" - }, - "applicationId": { + "targetReplicaId": { "type": "string", - "description": "Android application ID. Max length: 256 chars.", - "x-example": "<APPLICATION_ID>" + "description": "Target replica ID to promote. If not specified, the healthiest replica is selected.", + "x-example": "<TARGET_REPLICA_ID>", + "x-nullable": true } - }, - "required": [ - "platformId", - "name", - "applicationId" - ] + } } } } } } }, - "\/project\/platforms\/android\/{platformId}": { - "put": { - "summary": "Update project Android platform", - "operationId": "projectUpdateAndroidPlatform", + "\/postgresql\/{databaseId}\/maintenance": { + "patch": { + "summary": "Update database maintenance window.", + "operationId": "postgresqlUpdateMaintenance", "tags": [ - "project" + "postgresql" ], - "description": "Update an Android platform by its unique ID. Use this endpoint to update the platform's name or application ID.", + "description": "Update the maintenance window for a dedicated database. Maintenance operations like minor version upgrades will be performed during this window.", "responses": { "200": { - "description": "Platform Android", + "description": "DedicatedDatabase", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/platformAndroid" + "$ref": "#\/components\/schemas\/dedicatedDatabase" } } } @@ -39770,15 +39900,15 @@ }, "deprecated": false, "x-appwrite": { - "method": "updateAndroidPlatform", - "group": "platforms", + "method": "updateMaintenance", + "group": "databases", "cookies": false, "type": "", - "demo": "project\/update-android-platform.md", + "demo": "postgresql\/update-maintenance.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "platforms.write", + "scope": "databases.write", "platforms": [ "console", "server" @@ -39798,12 +39928,12 @@ ], "parameters": [ { - "name": "platformId", - "description": "Platform ID.", + "name": "databaseId", + "description": "Database ID.", "required": true, "schema": { "type": "string", - "x-example": "<PLATFORM_ID>" + "x-example": "<DATABASE_ID>" }, "in": "path" } @@ -39814,20 +39944,21 @@ "schema": { "type": "object", "properties": { - "name": { + "day": { "type": "string", - "description": "Platform name. Max length: 128 chars.", - "x-example": "<NAME>" + "description": "Day of the week for the maintenance window. Allowed values: sun, mon, tue, wed, thu, fri, sat.", + "x-example": "sun" }, - "applicationId": { - "type": "string", - "description": "Android application ID. Max length: 256 chars.", - "x-example": "<APPLICATION_ID>" + "hourUtc": { + "type": "integer", + "description": "Hour in UTC (0-23) for maintenance window start.", + "x-example": 0, + "format": "int32" } }, "required": [ - "name", - "applicationId" + "day", + "hourUtc" ] } } @@ -39835,21 +39966,21 @@ } } }, - "\/project\/platforms\/apple": { + "\/postgresql\/{databaseId}\/migrations": { "post": { - "summary": "Create project Apple platform", - "operationId": "projectCreateApplePlatform", + "summary": "Migrate database between shared and dedicated.", + "operationId": "postgresqlCreateMigration", "tags": [ - "project" + "postgresql" ], - "description": "Create a new Apple platform for your project. Use this endpoint to register a new Apple platform where your users will run your application which will interact with the Appwrite API.", + "description": "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": { - "201": { - "description": "Platform Apple", + "200": { + "description": "DedicatedDatabase", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/platformApple" + "$ref": "#\/components\/schemas\/dedicatedDatabase" } } } @@ -39857,15 +39988,15 @@ }, "deprecated": false, "x-appwrite": { - "method": "createApplePlatform", - "group": "platforms", + "method": "createMigration", + "group": "databases", "cookies": false, "type": "", - "demo": "project\/create-apple-platform.md", + "demo": "postgresql\/create-migration.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "platforms.write", + "scope": "databases.write", "platforms": [ "console", "server" @@ -39883,35 +40014,38 @@ "Key": [] } ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "x-example": "<DATABASE_ID>" + }, + "in": "path" + } + ], "requestBody": { "content": { "application\/json": { "schema": { "type": "object", "properties": { - "platformId": { - "type": "string", - "description": "Platform ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.", - "x-example": "<PLATFORM_ID>", - "x-appwrite": { - "idGenerator": "ID.unique" - } - }, - "name": { + "targetType": { "type": "string", - "description": "Platform name. Max length: 128 chars.", - "x-example": "<NAME>" + "description": "Target database type to migrate to. Allowed values: shared (serverless, scales to zero when idle), dedicated (always-on with persistent resources).", + "x-example": "shared" }, - "bundleIdentifier": { + "specification": { "type": "string", - "description": "Apple bundle identifier. Max length: 256 chars.", - "x-example": "<BUNDLE_IDENTIFIER>" + "description": "Target specification to provision when migrating to dedicated. Ignored for shared. Defaults to the database's current specification.", + "x-example": "<SPECIFICATION>", + "x-nullable": true } }, "required": [ - "platformId", - "name", - "bundleIdentifier" + "targetType" ] } } @@ -39919,21 +40053,21 @@ } } }, - "\/project\/platforms\/apple\/{platformId}": { - "put": { - "summary": "Update project Apple platform", - "operationId": "projectUpdateApplePlatform", + "\/postgresql\/{databaseId}\/pitr": { + "get": { + "summary": "Get PITR recovery windows.", + "operationId": "postgresqlGetPitr", "tags": [ - "project" + "postgresql" ], - "description": "Update an Apple platform by its unique ID. Use this endpoint to update the platform's name or bundle identifier.", + "description": "Get available point-in-time recovery windows for a dedicated database. Returns the earliest and latest recovery points.", "responses": { "200": { - "description": "Platform Apple", + "description": "PITRWindows", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/platformApple" + "$ref": "#\/components\/schemas\/dedicatedDatabasePITRWindows" } } } @@ -39941,15 +40075,15 @@ }, "deprecated": false, "x-appwrite": { - "method": "updateApplePlatform", - "group": "platforms", + "method": "getPitr", + "group": "databases", "cookies": false, "type": "", - "demo": "project\/update-apple-platform.md", + "demo": "postgresql\/get-pitr.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "platforms.write", + "scope": "databases.read", "platforms": [ "console", "server" @@ -39969,58 +40103,33 @@ ], "parameters": [ { - "name": "platformId", - "description": "Platform ID.", + "name": "databaseId", + "description": "Database ID.", "required": true, "schema": { "type": "string", - "x-example": "<PLATFORM_ID>" + "x-example": "<DATABASE_ID>" }, "in": "path" } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "name": { - "type": "string", - "description": "Platform name. Max length: 128 chars.", - "x-example": "<NAME>" - }, - "bundleIdentifier": { - "type": "string", - "description": "Apple bundle identifier. Max length: 256 chars.", - "x-example": "<BUNDLE_IDENTIFIER>" - } - }, - "required": [ - "name", - "bundleIdentifier" - ] - } - } - } - } + ] } }, - "\/project\/platforms\/linux": { - "post": { - "summary": "Create project Linux platform", - "operationId": "projectCreateLinuxPlatform", + "\/postgresql\/{databaseId}\/pooler": { + "get": { + "summary": "Get connection pooler configuration.", + "operationId": "postgresqlGetPooler", "tags": [ - "project" + "postgresql" ], - "description": "Create a new Linux platform for your project. Use this endpoint to register a new Linux platform where your users will run your application which will interact with the Appwrite API.", + "description": "Get the connection pooler configuration for a dedicated database. Returns pooler mode, max connections, and pool size settings.", "responses": { - "201": { - "description": "Platform Linux", + "200": { + "description": "PoolerConfig", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/platformLinux" + "$ref": "#\/components\/schemas\/dedicatedDatabasePooler" } } } @@ -40028,15 +40137,15 @@ }, "deprecated": false, "x-appwrite": { - "method": "createLinuxPlatform", - "group": "platforms", + "method": "getPooler", + "group": "databases", "cookies": false, "type": "", - "demo": "project\/create-linux-platform.md", + "demo": "postgresql\/get-pooler.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "platforms.write", + "scope": "databases.read", "platforms": [ "console", "server" @@ -40054,57 +40163,33 @@ "Key": [] } ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "platformId": { - "type": "string", - "description": "Platform ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.", - "x-example": "<PLATFORM_ID>", - "x-appwrite": { - "idGenerator": "ID.unique" - } - }, - "name": { - "type": "string", - "description": "Platform name. Max length: 128 chars.", - "x-example": "<NAME>" - }, - "packageName": { - "type": "string", - "description": "Linux package name. Max length: 256 chars.", - "x-example": "<PACKAGE_NAME>" - } - }, - "required": [ - "platformId", - "name", - "packageName" - ] - } - } + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "x-example": "<DATABASE_ID>" + }, + "in": "path" } - } - } - }, - "\/project\/platforms\/linux\/{platformId}": { - "put": { - "summary": "Update project Linux platform", - "operationId": "projectUpdateLinuxPlatform", + ] + }, + "patch": { + "summary": "Update connection pooler configuration.", + "operationId": "postgresqlUpdatePooler", "tags": [ - "project" + "postgresql" ], - "description": "Update a Linux platform by its unique ID. Use this endpoint to update the platform's name or package name.", + "description": "Update the connection pooler configuration for a dedicated database. Configure pool mode, max connections, and pool sizes.", "responses": { "200": { - "description": "Platform Linux", + "description": "PoolerConfig", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/platformLinux" + "$ref": "#\/components\/schemas\/dedicatedDatabasePooler" } } } @@ -40112,15 +40197,15 @@ }, "deprecated": false, "x-appwrite": { - "method": "updateLinuxPlatform", - "group": "platforms", + "method": "updatePooler", + "group": "databases", "cookies": false, "type": "", - "demo": "project\/update-linux-platform.md", + "demo": "postgresql\/update-pooler.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "platforms.write", + "scope": "databases.write", "platforms": [ "console", "server" @@ -40140,12 +40225,12 @@ ], "parameters": [ { - "name": "platformId", - "description": "Platform ID.", + "name": "databaseId", + "description": "Database ID.", "required": true, "schema": { "type": "string", - "x-example": "<PLATFORM_ID>" + "x-example": "<DATABASE_ID>" }, "in": "path" } @@ -40156,42 +40241,78 @@ "schema": { "type": "object", "properties": { - "name": { + "mode": { "type": "string", - "description": "Platform name. Max length: 128 chars.", - "x-example": "<NAME>" + "description": "Connection pool mode. Allowed values: transaction, session. Transaction mode returns connections to the pool after each transaction; session mode holds connections for the entire session lifetime.", + "x-example": "transaction", + "x-nullable": true }, - "packageName": { + "maxConnections": { + "type": "integer", + "description": "Maximum pooled connections.", + "x-example": 10, + "format": "int32", + "x-nullable": true + }, + "defaultPoolSize": { + "type": "integer", + "description": "Default pool size per user.", + "x-example": 1, + "format": "int32", + "x-nullable": true + }, + "readWriteSplitting": { + "type": "boolean", + "description": "Route SELECTs to HA replicas, writes and locked reads to the primary. Defaults to true when HA is enabled.", + "x-example": false, + "x-nullable": true + }, + "poolerCpuRequest": { "type": "string", - "description": "Linux package name. Max length: 256 chars.", - "x-example": "<PACKAGE_NAME>" + "description": "Pooler sidecar CPU request override (Kubernetes quantity, e.g. \"250m\" or \"1\"). Leave null for the proportional default (5% of DB CPU, floor 100m).", + "x-example": "<POOLER_CPU_REQUEST>", + "x-nullable": true + }, + "poolerCpuLimit": { + "type": "string", + "description": "Pooler sidecar CPU limit override (Kubernetes quantity, e.g. \"500m\" or \"1\"). Leave null for the proportional default (10% of DB CPU, floor 200m). Changing this field rolls the database pod.", + "x-example": "<POOLER_CPU_LIMIT>", + "x-nullable": true + }, + "poolerMemoryRequest": { + "type": "string", + "description": "Pooler sidecar memory request override (Kubernetes quantity, e.g. \"128Mi\" or \"1Gi\"). Leave null for the proportional default (7.5% of DB memory, floor 64Mi).", + "x-example": "<POOLER_MEMORY_REQUEST>", + "x-nullable": true + }, + "poolerMemoryLimit": { + "type": "string", + "description": "Pooler sidecar memory limit override (Kubernetes quantity, e.g. \"256Mi\" or \"1Gi\"). Leave null for the proportional default (15% of DB memory, floor 128Mi). Changing this field rolls the database pod.", + "x-example": "<POOLER_MEMORY_LIMIT>", + "x-nullable": true } - }, - "required": [ - "name", - "packageName" - ] + } } } } } } }, - "\/project\/platforms\/web": { - "post": { - "summary": "Create project web platform", - "operationId": "projectCreateWebPlatform", + "\/postgresql\/{databaseId}\/replicas": { + "get": { + "summary": "Get replica status.", + "operationId": "postgresqlGetReplicas", "tags": [ - "project" + "postgresql" ], - "description": "Create a new web platform for your project. Use this endpoint to register a new platform where your users will run your application which will interact with the Appwrite API.", + "description": "Get high availability status for a dedicated database. Returns replica statuses, replication lag, and sync mode.", "responses": { - "201": { - "description": "Platform Web", + "200": { + "description": "Replicas", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/platformWeb" + "$ref": "#\/components\/schemas\/dedicatedDatabaseReplicas" } } } @@ -40199,15 +40320,15 @@ }, "deprecated": false, "x-appwrite": { - "method": "createWebPlatform", - "group": "platforms", + "method": "getReplicas", + "group": "databases", "cookies": false, "type": "", - "demo": "project\/create-web-platform.md", + "demo": "postgresql\/get-replicas.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "platforms.write", + "scope": "databases.read", "platforms": [ "console", "server" @@ -40225,57 +40346,35 @@ "Key": [] } ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "platformId": { - "type": "string", - "description": "Platform ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.", - "x-example": "<PLATFORM_ID>", - "x-appwrite": { - "idGenerator": "ID.unique" - } - }, - "name": { - "type": "string", - "description": "Platform name. Max length: 128 chars.", - "x-example": "<NAME>" - }, - "hostname": { - "type": "string", - "description": "Platform web hostname. Max length: 256 chars.", - "x-example": "app.example.com" - } - }, - "required": [ - "platformId", - "name", - "hostname" - ] - } - } + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "x-example": "<DATABASE_ID>" + }, + "in": "path" } - } + ] } }, - "\/project\/platforms\/web\/{platformId}": { - "put": { - "summary": "Update project web platform", - "operationId": "projectUpdateWebPlatform", + "\/postgresql\/{databaseId}\/restorations": { + "get": { + "summary": "List database restorations.", + "operationId": "postgresqlListRestorations", "tags": [ - "project" + "postgresql" ], - "description": "Update a web platform by its unique ID. Use this endpoint to update the platform's name or hostname.", + "description": "List all restorations for a dedicated database. Results can be filtered by status and type.", "responses": { "200": { - "description": "Platform Web", + "description": "Dedicated database restorations list", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/platformWeb" + "$ref": "#\/components\/schemas\/dedicatedDatabaseRestorationList" } } } @@ -40283,15 +40382,15 @@ }, "deprecated": false, "x-appwrite": { - "method": "updateWebPlatform", - "group": "platforms", + "method": "listRestorations", + "group": "databases", "cookies": false, "type": "", - "demo": "project\/update-web-platform.md", + "demo": "postgresql\/list-restorations.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "platforms.write", + "scope": "databases.read", "platforms": [ "console", "server" @@ -40311,58 +40410,75 @@ ], "parameters": [ { - "name": "platformId", - "description": "Platform ID.", + "name": "databaseId", + "description": "Database ID.", "required": true, "schema": { "type": "string", - "x-example": "<PLATFORM_ID>" + "x-example": "<DATABASE_ID>" }, "in": "path" + }, + { + "name": "status", + "description": "Filter by restoration status.", + "required": false, + "schema": { + "type": "string", + "x-example": "pending" + }, + "in": "query" + }, + { + "name": "type", + "description": "Filter by restoration type.", + "required": false, + "schema": { + "type": "string", + "x-example": "backup" + }, + "in": "query" + }, + { + "name": "limit", + "description": "Maximum number of restorations to return.", + "required": false, + "schema": { + "type": "integer", + "format": "int32", + "x-example": 1, + "default": 25 + }, + "in": "query" + }, + { + "name": "offset", + "description": "Number of restorations to skip.", + "required": false, + "schema": { + "type": "integer", + "format": "int32", + "x-example": 0, + "default": 0 + }, + "in": "query" } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "name": { - "type": "string", - "description": "Platform name. Max length: 128 chars.", - "x-example": "<NAME>" - }, - "hostname": { - "type": "string", - "description": "Platform web hostname. Max length: 256 chars.", - "x-example": "app.example.com" - } - }, - "required": [ - "name", - "hostname" - ] - } - } - } - } - } - }, - "\/project\/platforms\/windows": { + ] + }, "post": { - "summary": "Create project Windows platform", - "operationId": "projectCreateWindowsPlatform", + "summary": "Create a database restoration.", + "operationId": "postgresqlCreateRestoration", "tags": [ - "project" + "postgresql" ], - "description": "Create a new Windows platform for your project. Use this endpoint to register a new Windows platform where your users will run your application which will interact with the Appwrite API.", + "description": "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": { - "201": { - "description": "Platform Windows", + "202": { + "description": "Restoration", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/platformWindows" + "$ref": "#\/components\/schemas\/dedicatedDatabaseRestoration" } } } @@ -40370,15 +40486,15 @@ }, "deprecated": false, "x-appwrite": { - "method": "createWindowsPlatform", - "group": "platforms", + "method": "createRestoration", + "group": "databases", "cookies": false, "type": "", - "demo": "project\/create-windows-platform.md", + "demo": "postgresql\/create-restoration.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "platforms.write", + "scope": "databases.write", "platforms": [ "console", "server" @@ -40396,57 +40512,65 @@ "Key": [] } ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "x-example": "<DATABASE_ID>" + }, + "in": "path" + } + ], "requestBody": { "content": { "application\/json": { "schema": { "type": "object", "properties": { - "platformId": { + "type": { "type": "string", - "description": "Platform ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.", - "x-example": "<PLATFORM_ID>", - "x-appwrite": { - "idGenerator": "ID.unique" - } + "description": "Restoration type. Allowed values: backup, pitr. Use \"backup\" to restore from a specific backup, or \"pitr\" for point-in-time recovery.", + "default": "backup", + "x-example": "backup" }, - "name": { + "backupId": { "type": "string", - "description": "Platform name. Max length: 128 chars.", - "x-example": "<NAME>" + "description": "Backup ID to restore from (required for backup type).", + "x-example": "<BACKUP_ID>", + "x-nullable": true }, - "packageIdentifierName": { + "targetTime": { "type": "string", - "description": "Windows package identifier name. Max length: 256 chars.", - "x-example": "<PACKAGE_IDENTIFIER_NAME>" + "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.", + "x-example": "2020-10-15T06:38:00.000+00:00", + "format": "datetime", + "x-nullable": true } - }, - "required": [ - "platformId", - "name", - "packageIdentifierName" - ] + } } } } } } }, - "\/project\/platforms\/windows\/{platformId}": { - "put": { - "summary": "Update project Windows platform", - "operationId": "projectUpdateWindowsPlatform", + "\/postgresql\/{databaseId}\/restorations\/{restorationId}": { + "get": { + "summary": "Get a database restoration.", + "operationId": "postgresqlGetRestoration", "tags": [ - "project" + "postgresql" ], - "description": "Update a Windows platform by its unique ID. Use this endpoint to update the platform's name or package identifier name.", + "description": "Get details of a specific database restoration including its status, type, and timestamps.", "responses": { "200": { - "description": "Platform Windows", + "description": "Restoration", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/platformWindows" + "$ref": "#\/components\/schemas\/dedicatedDatabaseRestoration" } } } @@ -40454,15 +40578,15 @@ }, "deprecated": false, "x-appwrite": { - "method": "updateWindowsPlatform", - "group": "platforms", + "method": "getRestoration", + "group": "databases", "cookies": false, "type": "", - "demo": "project\/update-windows-platform.md", + "demo": "postgresql\/get-restoration.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "platforms.write", + "scope": "databases.read", "platforms": [ "console", "server" @@ -40482,84 +40606,43 @@ ], "parameters": [ { - "name": "platformId", - "description": "Platform ID.", + "name": "databaseId", + "description": "Database ID.", "required": true, "schema": { "type": "string", - "x-example": "<PLATFORM_ID>" + "x-example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "restorationId", + "description": "Restoration ID.", + "required": true, + "schema": { + "type": "string", + "x-example": "<RESTORATION_ID>" }, "in": "path" } + ] + } + }, + "\/postgresql\/{databaseId}\/status": { + "get": { + "summary": "Get database status.", + "operationId": "postgresqlGetStatus", + "tags": [ + "postgresql" ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "name": { - "type": "string", - "description": "Platform name. Max length: 128 chars.", - "x-example": "<NAME>" - }, - "packageIdentifierName": { - "type": "string", - "description": "Windows package identifier name. Max length: 256 chars.", - "x-example": "<PACKAGE_IDENTIFIER_NAME>" - } - }, - "required": [ - "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.", + "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": "Platform Web, or Platform Apple, or Platform Android, or Platform Windows, or Platform Linux", + "description": "Status", "content": { "application\/json": { "schema": { - "oneOf": [ - { - "$ref": "#\/components\/schemas\/platformWeb" - }, - { - "$ref": "#\/components\/schemas\/platformApple" - }, - { - "$ref": "#\/components\/schemas\/platformAndroid" - }, - { - "$ref": "#\/components\/schemas\/platformWindows" - }, - { - "$ref": "#\/components\/schemas\/platformLinux" - } - ], - "discriminator": { - "propertyName": "type", - "mapping": { - "web": "#\/components\/schemas\/platformWeb", - "apple": "#\/components\/schemas\/platformApple", - "android": "#\/components\/schemas\/platformAndroid", - "windows": "#\/components\/schemas\/platformWindows", - "linux": "#\/components\/schemas\/platformLinux" - } - } + "$ref": "#\/components\/schemas\/databaseStatus" } } } @@ -40567,15 +40650,15 @@ }, "deprecated": false, "x-appwrite": { - "method": "getPlatform", - "group": "platforms", + "method": "getStatus", + "group": "databases", "cookies": false, "type": "", - "demo": "project\/get-platform.md", + "demo": "postgresql\/get-status.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "platforms.read", + "scope": "databases.read", "platforms": [ "console", "server" @@ -40595,40 +40678,49 @@ ], "parameters": [ { - "name": "platformId", - "description": "Platform ID.", + "name": "databaseId", + "description": "Database ID.", "required": true, "schema": { "type": "string", - "x-example": "<PLATFORM_ID>" + "x-example": "<DATABASE_ID>" }, "in": "path" } ] - }, - "delete": { - "summary": "Delete project platform", - "operationId": "projectDeletePlatform", + } + }, + "\/postgresql\/{databaseId}\/upgrades": { + "post": { + "summary": "Upgrade database version.", + "operationId": "postgresqlCreateUpgrade", "tags": [ - "project" + "postgresql" ], - "description": "Delete a platform by its unique ID. This endpoint removes the platform and all its configurations from the project.", + "description": "Upgrade a dedicated database to a new engine version. Uses blue-green deployment for zero-downtime cutover.", "responses": { - "204": { - "description": "No content" + "200": { + "description": "DedicatedDatabase", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/dedicatedDatabase" + } + } + } } }, "deprecated": false, "x-appwrite": { - "method": "deletePlatform", - "group": "platforms", + "method": "createUpgrade", + "group": "databases", "cookies": false, "type": "", - "demo": "project\/delete-platform.md", + "demo": "postgresql\/create-upgrade.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "platforms.write", + "scope": "databases.write", "platforms": [ "console", "server" @@ -40648,33 +40740,52 @@ ], "parameters": [ { - "name": "platformId", - "description": "Platform ID.", + "name": "databaseId", + "description": "Database ID.", "required": true, "schema": { "type": "string", - "x-example": "<PLATFORM_ID>" + "x-example": "<DATABASE_ID>" }, "in": "path" } - ] + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "targetVersion": { + "type": "string", + "description": "Target engine version to upgrade to.", + "x-example": "<TARGET_VERSION>" + } + }, + "required": [ + "targetVersion" + ] + } + } + } + } } }, - "\/project\/policies": { + "\/presences": { "get": { - "summary": "List project policies", - "operationId": "projectListPolicies", + "summary": "List presences", + "operationId": "presencesList", "tags": [ - "project" + "presences" ], - "description": "Get a list of all project policies and their current configuration.", + "description": "List presence logs. Expired entries are filtered out automatically.\n", "responses": { "200": { - "description": "Policies List", + "description": "Presences List", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/policyList" + "$ref": "#\/components\/schemas\/presenceList" } } } @@ -40682,24 +40793,23 @@ }, "deprecated": false, "x-appwrite": { - "method": "listPolicies", - "group": "policies", + "method": "list", + "group": "presences", "cookies": false, "type": "", - "demo": "project\/list-policies.md", + "demo": "presences\/list.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": [ - "policies.read", - "project.policies.read" - ], + "scope": "presences.read", "platforms": [ "console", - "server" + "server", + "client" ], "packaging": false, "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/presences\/list.md", "auth": { "Project": [], "Key": [] @@ -40708,13 +40818,15 @@ "security": [ { "Project": [], - "Key": [] + "Key": [], + "Session": [], + "JWT": [] } ], "parameters": [ { "name": "queries", - "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/queries). Only supported methods are limit and offset", + "description": "Array of query strings generated using the Query class provided by the SDK.", "required": false, "schema": { "type": "array", @@ -40735,25 +40847,37 @@ "default": true }, "in": "query" + }, + { + "name": "ttl", + "description": "TTL (seconds) for caching list responses. Responses are stored in an in-memory key-value cache, keyed per project, collection, schema version (attributes and indexes), caller authorization roles, and the exact query \u2014 so users with different permissions never share cached entries. Schema changes invalidate cached entries automatically; document writes do not, so choose a TTL you are comfortable serving as stale data. Set to 0 to disable caching. Must be between 0 and 86400 (24 hours).", + "required": false, + "schema": { + "type": "integer", + "format": "int32", + "x-example": 0, + "default": 0 + }, + "in": "query" } ] } }, - "\/project\/policies\/deny-aliased-email": { - "patch": { - "summary": "Update deny aliased email policy", - "operationId": "projectUpdateDenyAliasedEmailPolicy", + "\/presences\/{presenceId}": { + "get": { + "summary": "Get presence", + "operationId": "presencesGet", "tags": [ - "project" + "presences" ], - "description": "Configures if aliased emails such as subaddresses and emails with suffixes are denied during new users sign-ups and email updates.", + "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": "Project", + "description": "Presence", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/project" + "$ref": "#\/components\/schemas\/presence" } } } @@ -40761,24 +40885,23 @@ }, "deprecated": false, "x-appwrite": { - "method": "updateDenyAliasedEmailPolicy", - "group": "policies", + "method": "get", + "group": "presences", "cookies": false, "type": "", - "demo": "project\/update-deny-aliased-email-policy.md", + "demo": "presences\/get.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": [ - "policies.write", - "project.policies.write" - ], + "scope": "presences.read", "platforms": [ "console", - "server" + "server", + "client" ], "packaging": false, "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/presences\/get.md", "auth": { "Project": [], "Key": [] @@ -40787,45 +40910,38 @@ "security": [ { "Project": [], - "Key": [] + "Key": [], + "Session": [], + "JWT": [] } ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "enabled": { - "type": "boolean", - "description": "Set whether or not to block aliased emails during signup and email updates.", - "x-example": false - } - }, - "required": [ - "enabled" - ] - } - } + "parameters": [ + { + "name": "presenceId", + "description": "Presence unique ID.", + "required": true, + "schema": { + "type": "string", + "x-example": "<PRESENCE_ID>" + }, + "in": "path" } - } - } - }, - "\/project\/policies\/deny-corporate-email": { - "patch": { - "summary": "Update deny non-corporate email policy", - "operationId": "projectUpdateDenyCorporateEmailPolicy", + ] + }, + "put": { + "summary": "Upsert presence", + "operationId": "presencesUpsert", "tags": [ - "project" + "presences" ], - "description": "Configures if only corporate email addresses (non-free and non-disposable domains) are allowed during new user sign-ups and email updates.", + "description": "Create or update a presence log by its user ID.\n", "responses": { "200": { - "description": "Project", + "description": "Presence", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/project" + "$ref": "#\/components\/schemas\/presence" } } } @@ -40833,33 +40949,76 @@ }, "deprecated": false, "x-appwrite": { - "method": "updateDenyCorporateEmailPolicy", - "group": "policies", + "method": "upsert", + "group": "presences", "cookies": false, "type": "", - "demo": "project\/update-deny-corporate-email-policy.md", + "demo": "presences\/upsert.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": [ - "policies.write", - "project.policies.write" - ], + "scope": "presences.write", "platforms": [ - "console", - "server" + "client", + "console" ], "packaging": false, "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/presences\/upsert.md", + "methods": [ + { + "name": "upsert", + "namespace": "presences", + "desc": "Upsert presence", + "auth": { + "Project": [], + "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": [], - "Key": [] + "Session": [] } }, "security": [ { "Project": [], - "Key": [] + "Session": [] + } + ], + "parameters": [ + { + "name": "presenceId", + "description": "Presence unique ID.", + "required": true, + "schema": { + "type": "string", + "x-example": "<PRESENCE_ID>" + }, + "in": "path" } ], "requestBody": { @@ -40868,36 +41027,59 @@ "schema": { "type": "object", "properties": { - "enabled": { - "type": "boolean", - "description": "Set whether or not to restrict sign-ups and email updates to corporate email addresses only.", - "x-example": false + "userId": { + "type": "string", + "description": "User ID.", + "x-example": "<USER_ID>" + }, + "status": { + "type": "string", + "description": "Presence status.", + "x-example": "<STATUS>" + }, + "permissions": { + "type": "array", + "description": "An array of permissions strings. By default, only the current user is granted all permissions. [Learn more about permissions](https:\/\/appwrite.io\/docs\/permissions).", + "x-example": "[\"read(\"any\")\"]", + "items": { + "type": "string" + } + }, + "expiresAt": { + "type": "string", + "description": "Presence expiry datetime.", + "x-example": "2020-10-15T06:38:00.000+00:00", + "format": "datetime" + }, + "metadata": { + "type": "object", + "description": "Presence metadata object.", + "default": [], + "x-example": "{}" } }, "required": [ - "enabled" + "status" ] } } } } - } - }, - "\/project\/policies\/deny-disposable-email": { + }, "patch": { - "summary": "Update deny disposable email policy", - "operationId": "projectUpdateDenyDisposableEmailPolicy", + "summary": "Update presence", + "operationId": "presencesUpdate", "tags": [ - "project" + "presences" ], - "description": "Configures if disposable emails from known temporary domains are denied during new users sign-ups and email updates.", + "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": "Project", + "description": "Presence", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/project" + "$ref": "#\/components\/schemas\/presence" } } } @@ -40905,33 +41087,76 @@ }, "deprecated": false, "x-appwrite": { - "method": "updateDenyDisposableEmailPolicy", - "group": "policies", + "method": "update", + "group": "presences", "cookies": false, "type": "", - "demo": "project\/update-deny-disposable-email-policy.md", + "demo": "presences\/update.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": [ - "policies.write", - "project.policies.write" - ], + "scope": "presences.write", "platforms": [ - "console", - "server" + "client", + "console" ], "packaging": false, "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/presences\/update.md", + "methods": [ + { + "name": "update", + "namespace": "presences", + "desc": "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": [], - "Key": [] + "Session": [] } }, "security": [ { "Project": [], - "Key": [] + "Session": [] + } + ], + "parameters": [ + { + "name": "presenceId", + "description": "Presence unique ID.", + "required": true, + "schema": { + "type": "string", + "x-example": "<PRESENCE_ID>" + }, + "in": "path" } ], "requestBody": { @@ -40940,61 +41165,79 @@ "schema": { "type": "object", "properties": { - "enabled": { + "userId": { + "type": "string", + "description": "User ID.", + "x-example": "<USER_ID>" + }, + "status": { + "type": "string", + "description": "Presence status.", + "x-example": "<STATUS>" + }, + "expiresAt": { + "type": "string", + "description": "Presence expiry datetime.", + "x-example": "2020-10-15T06:38:00.000+00:00", + "format": "datetime" + }, + "metadata": { + "type": "object", + "description": "Presence metadata object.", + "default": {}, + "x-example": "{}" + }, + "permissions": { + "type": "array", + "description": "An array of permissions strings. By default, only the current user is granted all permissions. [Learn more about permissions](https:\/\/appwrite.io\/docs\/permissions).", + "x-example": "[\"read(\"any\")\"]", + "items": { + "type": "string" + } + }, + "purge": { "type": "boolean", - "description": "Set whether or not to block disposable email addresses during signup and email updates.", + "description": "When true, purge cached responses used by list presences endpoint.", + "default": false, "x-example": false } - }, - "required": [ - "enabled" - ] + } } } } } - } - }, - "\/project\/policies\/deny-free-email": { - "patch": { - "summary": "Update deny free email policy", - "operationId": "projectUpdateDenyFreeEmailPolicy", + }, + "delete": { + "summary": "Delete presence", + "operationId": "presencesDelete", "tags": [ - "project" + "presences" ], - "description": "Configures if emails from free providers such as Gmail or Yahoo are denied during new users sign-ups and email updates.", + "description": "Delete a presence log by its unique ID.\n", "responses": { - "200": { - "description": "Project", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/project" - } - } - } + "204": { + "description": "No content" } }, "deprecated": false, "x-appwrite": { - "method": "updateDenyFreeEmailPolicy", - "group": "policies", + "method": "delete", + "group": "presences", "cookies": false, "type": "", - "demo": "project\/update-deny-free-email-policy.md", + "demo": "presences\/delete.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": [ - "policies.write", - "project.policies.write" - ], + "scope": "presences.write", "platforms": [ "console", - "server" + "server", + "client" ], "packaging": false, "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/presences\/delete.md", "auth": { "Project": [], "Key": [] @@ -41003,43 +41246,38 @@ "security": [ { "Project": [], - "Key": [] + "Key": [], + "Session": [], + "JWT": [] } ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "enabled": { - "type": "boolean", - "description": "Set whether or not to block free email addresses during signup and email updates.", - "x-example": false - } - }, - "required": [ - "enabled" - ] - } - } + "parameters": [ + { + "name": "presenceId", + "description": "Presence unique ID.", + "required": true, + "schema": { + "type": "string", + "x-example": "<PRESENCE_ID>" + }, + "in": "path" } - } + ] } }, - "\/project\/policies\/membership-privacy": { - "patch": { - "summary": "Update membership privacy policy", - "operationId": "projectUpdateMembershipPrivacyPolicy", + "\/project": { + "get": { + "summary": "Get project", + "operationId": "projectGet", "tags": [ "project" ], - "description": "Updating this policy allows you to control if team members can see other members information. When enabled, all team members can see ID, name, email, phone number, and MFA status of other members..", + "description": "Get a project.", "responses": { "200": { "description": "Project", "content": { - "application\/json": { + "": { "schema": { "$ref": "#\/components\/schemas\/project" } @@ -41049,18 +41287,15 @@ }, "deprecated": false, "x-appwrite": { - "method": "updateMembershipPrivacyPolicy", - "group": "policies", + "method": "get", + "group": null, "cookies": false, "type": "", - "demo": "project\/update-membership-privacy-policy.md", + "demo": "project\/get.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": [ - "policies.write", - "project.policies.write" - ], + "scope": "project.read", "platforms": [ "console", "server" @@ -41077,84 +41312,31 @@ "Project": [], "Key": [] } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "userId": { - "type": "boolean", - "description": "Set to true if you want make user ID visible to all team members, or false to hide it.", - "x-example": false - }, - "userEmail": { - "type": "boolean", - "description": "Set to true if you want make user email visible to all team members, or false to hide it.", - "x-example": false - }, - "userPhone": { - "type": "boolean", - "description": "Set to true if you want make user phone number visible to all team members, or false to hide it.", - "x-example": false - }, - "userName": { - "type": "boolean", - "description": "Set to true if you want make user name visible to all team members, or false to hide it.", - "x-example": false - }, - "userMFA": { - "type": "boolean", - "description": "Set to true if you want make user MFA status visible to all team members, or false to hide it.", - "x-example": false - }, - "userAccessedAt": { - "type": "boolean", - "description": "Set to true if you want make user last access time visible to all team members, or false to hide it.", - "x-example": false - } - } - } - } - } - } - } - }, - "\/project\/policies\/password-dictionary": { - "patch": { - "summary": "Update password dictionary policy", - "operationId": "projectUpdatePasswordDictionaryPolicy", + ] + }, + "delete": { + "summary": "Delete project", + "operationId": "projectDelete", "tags": [ "project" ], - "description": "Updating this policy allows you to control if new passwords are checked against most common passwords dictionary. When enabled, and user changes their password, password must not be contained in the dictionary.", + "description": "Delete a project.", "responses": { - "200": { - "description": "Project", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/project" - } - } - } + "204": { + "description": "No content" } }, "deprecated": false, "x-appwrite": { - "method": "updatePasswordDictionaryPolicy", - "group": "policies", + "method": "delete", + "group": null, "cookies": false, "type": "", - "demo": "project\/update-password-dictionary-policy.md", + "demo": "project\/delete.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": [ - "policies.write", - "project.policies.write" - ], + "scope": "project.write", "platforms": [ "console", "server" @@ -41171,36 +41353,17 @@ "Project": [], "Key": [] } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "enabled": { - "type": "boolean", - "description": "Toggle password dictionary policy. Set to true if you want password change to block passwords in the dictionary, or false to allow them. When changing this policy, existing passwords remain valid.", - "x-example": false - } - }, - "required": [ - "enabled" - ] - } - } - } - } + ] } }, - "\/project\/policies\/password-history": { + "\/project\/auth-methods\/{methodId}": { "patch": { - "summary": "Update password history policy", - "operationId": "projectUpdatePasswordHistoryPolicy", + "summary": "Update project auth method status", + "operationId": "projectUpdateAuthMethod", "tags": [ "project" ], - "description": "Updates one of password strength policies. Based on total length configured, previous password hashes are stored, and users cannot choose a new password that is already stored in the passwird history list, when updating an user password, or setting new one through password recovery.\n\nKeep in mind, while password history policy is disabled, the history is not being stored. Enabling the policy will not have any history on existing users, and it will only start to collect and enforce the policy on password changes since the policy is enabled.", + "description": "Update properties of a specific auth method. Use this endpoint to enable or disable a method in your project. ", "responses": { "200": { "description": "Project", @@ -41215,18 +41378,15 @@ }, "deprecated": false, "x-appwrite": { - "method": "updatePasswordHistoryPolicy", - "group": "policies", + "method": "updateAuthMethod", + "group": null, "cookies": false, "type": "", - "demo": "project\/update-password-history-policy.md", + "demo": "project\/update-auth-method.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": [ - "policies.write", - "project.policies.write" - ], + "scope": "project.write", "platforms": [ "console", "server" @@ -41244,78 +41404,35 @@ "Key": [] } ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "total": { - "type": "integer", - "description": "Set the password history length per user. Value can be between 1 and 5000, or null to disable the limit.", - "x-example": 1, - "format": "int32", - "x-nullable": true - } - }, - "required": [ - "total" - ] - } - } - } - } - } - }, - "\/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": { - "method": "updatePasswordPersonalDataPolicy", - "group": "policies", - "cookies": false, - "type": "", - "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": [ + "parameters": [ { - "Project": [], - "Key": [] + "name": "methodId", + "description": "Auth Method ID. Possible values: email-password,magic-url,email-otp,anonymous,invites,jwt,phone", + "required": true, + "schema": { + "type": "string", + "x-example": "email-password", + "enum": [ + "email-password", + "magic-url", + "email-otp", + "anonymous", + "invites", + "jwt", + "phone" + ], + "x-enum-name": "ProjectAuthMethodId", + "x-enum-keys": [ + "email-password", + "magic-url", + "email-otp", + "anonymous", + "invites", + "jwt", + "phone" + ] + }, + "in": "path" } ], "requestBody": { @@ -41326,7 +41443,7 @@ "properties": { "enabled": { "type": "boolean", - "description": "Toggle password personal data policy. Set to true if you want to block passwords including user's personal data, or false to allow it. When changing this policy, existing passwords remain valid.", + "description": "Auth method status.", "x-example": false } }, @@ -41339,21 +41456,21 @@ } } }, - "\/project\/policies\/password-strength": { - "patch": { - "summary": "Update password strength policy", - "operationId": "projectUpdatePasswordStrengthPolicy", + "\/project\/keys": { + "get": { + "summary": "List project keys", + "operationId": "projectListKeys", "tags": [ "project" ], - "description": "Update the password strength requirements for users in the project.", + "description": "Get a list of all API keys from the current project.", "responses": { "200": { - "description": "Policy Password Strength", + "description": "API Keys List", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/policyPasswordStrength" + "$ref": "#\/components\/schemas\/keyList" } } } @@ -41361,18 +41478,15 @@ }, "deprecated": false, "x-appwrite": { - "method": "updatePasswordStrengthPolicy", - "group": "policies", + "method": "listKeys", + "group": "keys", "cookies": false, "type": "", - "demo": "project\/update-password-strength-policy.md", + "demo": "project\/list-keys.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": [ - "policies.write", - "project.policies.write" - ], + "scope": "keys.read", "platforms": [ "console", "server" @@ -41390,132 +41504,47 @@ "Key": [] } ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "min": { - "type": "integer", - "description": "Minimum password length. Value must be between 8 and 256. Default is 8.", - "x-example": 8, - "format": "int32" - }, - "uppercase": { - "type": "boolean", - "description": "Whether passwords must include at least one uppercase letter.", - "x-example": false - }, - "lowercase": { - "type": "boolean", - "description": "Whether passwords must include at least one lowercase letter.", - "x-example": false - }, - "number": { - "type": "boolean", - "description": "Whether passwords must include at least one number.", - "x-example": false - }, - "symbols": { - "type": "boolean", - "description": "Whether passwords must include at least one symbol.", - "x-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": { - "method": "updateSessionAlertPolicy", - "group": "policies", - "cookies": false, - "type": "", - "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": [ + "parameters": [ { - "Project": [], - "Key": [] - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "enabled": { - "type": "boolean", - "description": "Toggle session alert policy. Set to true if you want users to receive email notifications when a sessions are created for their users, or false to not send email alerts.", - "x-example": false - } - }, - "required": [ - "enabled" - ] - } - } + "name": "queries", + "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/queries). Maximum of 100 queries are allowed, each 4096 characters long. You may filter on the following attributes: expire, accessedAt, name, scopes", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string" + }, + "default": [] + }, + "in": "query" + }, + { + "name": "total", + "description": "When set to false, the total count returned will be 0 and will not be calculated.", + "required": false, + "schema": { + "type": "boolean", + "x-example": false, + "default": true + }, + "in": "query" } - } - } - }, - "\/project\/policies\/session-duration": { - "patch": { - "summary": "Update session duration policy", - "operationId": "projectUpdateSessionDurationPolicy", + ] + }, + "post": { + "summary": "Create project key", + "operationId": "projectCreateKey", "tags": [ "project" ], - "description": "Update maximum duration how long sessions created within a project should stay active for.", + "description": "Create a new API key. It's recommended to have multiple API keys with strict scopes for separate functions within your project.\n\nYou can also create an ephemeral API key if you need a short-lived key instead.", "responses": { - "200": { - "description": "Project", + "201": { + "description": "Key", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/project" + "$ref": "#\/components\/schemas\/key" } } } @@ -41523,18 +41552,15 @@ }, "deprecated": false, "x-appwrite": { - "method": "updateSessionDurationPolicy", - "group": "policies", + "method": "createKey", + "group": "keys", "cookies": false, "type": "", - "demo": "project\/update-session-duration-policy.md", + "demo": "project\/create-key.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": [ - "policies.write", - "project.policies.write" - ], + "scope": "keys.write", "platforms": [ "console", "server" @@ -41558,74 +41584,7535 @@ "schema": { "type": "object", "properties": { - "duration": { - "type": "integer", - "description": "Maximum session length in seconds. Minium allowed value is 5 second, and maximum is 1 year, which is 31536000 seconds.", - "x-example": 5, - "format": "int32" - } - }, - "required": [ - "duration" - ] - } - } - } - } - } - }, - "\/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": { - "method": "updateSessionInvalidationPolicy", - "group": "policies", - "cookies": false, - "type": "", - "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": { + "keyId": { + "type": "string", + "description": "Key ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.", + "x-example": "<KEY_ID>", + "x-appwrite": { + "idGenerator": "ID.unique" + } + }, + "name": { + "type": "string", + "description": "Key name. Max length: 128 chars.", + "x-example": "<NAME>" + }, + "scopes": { + "type": "array", + "description": "Key scopes list. Maximum of 200 scopes are allowed.", + "x-example": null, + "items": { + "type": "string", + "enum": [ + "project.read", + "project.write", + "keys.read", + "keys.write", + "platforms.read", + "platforms.write", + "mocks.read", + "mocks.write", + "policies.read", + "policies.write", + "project.policies.read", + "project.policies.write", + "project.oauth2.read", + "project.oauth2.write", + "templates.read", + "templates.write", + "stages.read", + "stages.write", + "users.read", + "users.write", + "sessions.read", + "sessions.write", + "teams.read", + "teams.write", + "databases.read", + "databases.write", + "tables.read", + "tables.write", + "columns.read", + "columns.write", + "indexes.read", + "indexes.write", + "rows.read", + "rows.write", + "collections.read", + "collections.write", + "attributes.read", + "attributes.write", + "documents.read", + "documents.write", + "buckets.read", + "buckets.write", + "files.read", + "files.write", + "tokens.read", + "tokens.write", + "functions.read", + "functions.write", + "executions.read", + "executions.write", + "execution.read", + "execution.write", + "sites.read", + "sites.write", + "log.read", + "log.write", + "providers.read", + "providers.write", + "topics.read", + "topics.write", + "subscribers.read", + "subscribers.write", + "targets.read", + "targets.write", + "messages.read", + "messages.write", + "rules.read", + "rules.write", + "webhooks.read", + "webhooks.write", + "locale.read", + "avatars.read", + "health.read", + "assistant.read", + "migrations.read", + "migrations.write", + "schedules.read", + "schedules.write", + "vcs.read", + "vcs.write", + "insights.read", + "insights.write", + "reports.read", + "reports.write", + "presences.read", + "presences.write", + "backups.policies.read", + "backups.policies.write", + "archives.read", + "archives.write", + "restorations.read", + "restorations.write", + "dedicatedDatabases.execute", + "domains.read", + "domains.write", + "wafRules.read", + "wafRules.write", + "events.read", + "apps.read", + "apps.write", + "oauth2.read", + "oauth2.write", + "oauth2.introspect", + "usage.read" + ], + "x-enum-name": "ProjectKeyScopes", + "x-enum-keys": [ + "project.read", + "project.write", + "keys.read", + "keys.write", + "platforms.read", + "platforms.write", + "mocks.read", + "mocks.write", + "policies.read", + "policies.write", + "project.policies.read", + "project.policies.write", + "project.oauth2.read", + "project.oauth2.write", + "templates.read", + "templates.write", + "stages.read", + "stages.write", + "users.read", + "users.write", + "sessions.read", + "sessions.write", + "teams.read", + "teams.write", + "databases.read", + "databases.write", + "tables.read", + "tables.write", + "columns.read", + "columns.write", + "indexes.read", + "indexes.write", + "rows.read", + "rows.write", + "collections.read", + "collections.write", + "attributes.read", + "attributes.write", + "documents.read", + "documents.write", + "buckets.read", + "buckets.write", + "files.read", + "files.write", + "tokens.read", + "tokens.write", + "functions.read", + "functions.write", + "executions.read", + "executions.write", + "execution.read", + "execution.write", + "sites.read", + "sites.write", + "log.read", + "log.write", + "providers.read", + "providers.write", + "topics.read", + "topics.write", + "subscribers.read", + "subscribers.write", + "targets.read", + "targets.write", + "messages.read", + "messages.write", + "rules.read", + "rules.write", + "webhooks.read", + "webhooks.write", + "locale.read", + "avatars.read", + "health.read", + "assistant.read", + "migrations.read", + "migrations.write", + "schedules.read", + "schedules.write", + "vcs.read", + "vcs.write", + "insights.read", + "insights.write", + "reports.read", + "reports.write", + "presences.read", + "presences.write", + "backups.policies.read", + "backups.policies.write", + "archives.read", + "archives.write", + "restorations.read", + "restorations.write", + "dedicatedDatabases.execute", + "domains.read", + "domains.write", + "wafRules.read", + "wafRules.write", + "events.read", + "apps.read", + "apps.write", + "oauth2.read", + "oauth2.write", + "oauth2.introspect", + "usage.read" + ] + } + }, + "expire": { + "type": "string", + "description": "Expiration time in [ISO 8601](https:\/\/www.iso.org\/iso-8601-date-and-time-format.html) format. Use null for unlimited expiration.", + "x-example": "2020-10-15T06:38:00.000+00:00", + "format": "datetime", + "x-nullable": true + } + }, + "required": [ + "keyId", + "name", + "scopes" + ] + } + } + } + } + } + }, + "\/project\/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": { + "method": "createEphemeralKey", + "group": "keys", + "cookies": false, + "type": "", + "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": { + "type": "array", + "description": "Key scopes list. Maximum of 200 scopes are allowed.", + "x-example": null, + "items": { + "type": "string", + "enum": [ + "project.read", + "project.write", + "keys.read", + "keys.write", + "platforms.read", + "platforms.write", + "mocks.read", + "mocks.write", + "policies.read", + "policies.write", + "project.policies.read", + "project.policies.write", + "project.oauth2.read", + "project.oauth2.write", + "templates.read", + "templates.write", + "stages.read", + "stages.write", + "users.read", + "users.write", + "sessions.read", + "sessions.write", + "teams.read", + "teams.write", + "databases.read", + "databases.write", + "tables.read", + "tables.write", + "columns.read", + "columns.write", + "indexes.read", + "indexes.write", + "rows.read", + "rows.write", + "collections.read", + "collections.write", + "attributes.read", + "attributes.write", + "documents.read", + "documents.write", + "buckets.read", + "buckets.write", + "files.read", + "files.write", + "tokens.read", + "tokens.write", + "functions.read", + "functions.write", + "executions.read", + "executions.write", + "execution.read", + "execution.write", + "sites.read", + "sites.write", + "log.read", + "log.write", + "providers.read", + "providers.write", + "topics.read", + "topics.write", + "subscribers.read", + "subscribers.write", + "targets.read", + "targets.write", + "messages.read", + "messages.write", + "rules.read", + "rules.write", + "webhooks.read", + "webhooks.write", + "locale.read", + "avatars.read", + "health.read", + "assistant.read", + "migrations.read", + "migrations.write", + "schedules.read", + "schedules.write", + "vcs.read", + "vcs.write", + "insights.read", + "insights.write", + "reports.read", + "reports.write", + "presences.read", + "presences.write", + "backups.policies.read", + "backups.policies.write", + "archives.read", + "archives.write", + "restorations.read", + "restorations.write", + "dedicatedDatabases.execute", + "domains.read", + "domains.write", + "wafRules.read", + "wafRules.write", + "events.read", + "apps.read", + "apps.write", + "oauth2.read", + "oauth2.write", + "oauth2.introspect", + "usage.read" + ], + "x-enum-name": "ProjectKeyScopes", + "x-enum-keys": [ + "project.read", + "project.write", + "keys.read", + "keys.write", + "platforms.read", + "platforms.write", + "mocks.read", + "mocks.write", + "policies.read", + "policies.write", + "project.policies.read", + "project.policies.write", + "project.oauth2.read", + "project.oauth2.write", + "templates.read", + "templates.write", + "stages.read", + "stages.write", + "users.read", + "users.write", + "sessions.read", + "sessions.write", + "teams.read", + "teams.write", + "databases.read", + "databases.write", + "tables.read", + "tables.write", + "columns.read", + "columns.write", + "indexes.read", + "indexes.write", + "rows.read", + "rows.write", + "collections.read", + "collections.write", + "attributes.read", + "attributes.write", + "documents.read", + "documents.write", + "buckets.read", + "buckets.write", + "files.read", + "files.write", + "tokens.read", + "tokens.write", + "functions.read", + "functions.write", + "executions.read", + "executions.write", + "execution.read", + "execution.write", + "sites.read", + "sites.write", + "log.read", + "log.write", + "providers.read", + "providers.write", + "topics.read", + "topics.write", + "subscribers.read", + "subscribers.write", + "targets.read", + "targets.write", + "messages.read", + "messages.write", + "rules.read", + "rules.write", + "webhooks.read", + "webhooks.write", + "locale.read", + "avatars.read", + "health.read", + "assistant.read", + "migrations.read", + "migrations.write", + "schedules.read", + "schedules.write", + "vcs.read", + "vcs.write", + "insights.read", + "insights.write", + "reports.read", + "reports.write", + "presences.read", + "presences.write", + "backups.policies.read", + "backups.policies.write", + "archives.read", + "archives.write", + "restorations.read", + "restorations.write", + "dedicatedDatabases.execute", + "domains.read", + "domains.write", + "wafRules.read", + "wafRules.write", + "events.read", + "apps.read", + "apps.write", + "oauth2.read", + "oauth2.write", + "oauth2.introspect", + "usage.read" + ] + } + }, + "duration": { + "type": "integer", + "description": "Time in seconds before ephemeral key expires. Maximum duration is 3600 seconds.", + "x-example": "600", + "format": "int32" + } + }, + "required": [ + "scopes", + "duration" + ] + } + } + } + } + } + }, + "\/project\/keys\/{keyId}": { + "get": { + "summary": "Get project key", + "operationId": "projectGetKey", + "tags": [ + "project" + ], + "description": "Get a key by its unique ID. ", + "responses": { + "200": { + "description": "Key", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/key" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "method": "getKey", + "group": "keys", + "cookies": false, + "type": "", + "demo": "project\/get-key.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "keys.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "keyId", + "description": "Key ID.", + "required": true, + "schema": { + "type": "string", + "x-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": { + "method": "updateKey", + "group": "keys", + "cookies": false, + "type": "", + "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", + "x-example": "<KEY_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "Key name. Max length: 128 chars.", + "x-example": "<NAME>" + }, + "scopes": { + "type": "array", + "description": "Key scopes list. Maximum of 200 scopes are allowed.", + "x-example": null, + "items": { + "type": "string", + "enum": [ + "project.read", + "project.write", + "keys.read", + "keys.write", + "platforms.read", + "platforms.write", + "mocks.read", + "mocks.write", + "policies.read", + "policies.write", + "project.policies.read", + "project.policies.write", + "project.oauth2.read", + "project.oauth2.write", + "templates.read", + "templates.write", + "stages.read", + "stages.write", + "users.read", + "users.write", + "sessions.read", + "sessions.write", + "teams.read", + "teams.write", + "databases.read", + "databases.write", + "tables.read", + "tables.write", + "columns.read", + "columns.write", + "indexes.read", + "indexes.write", + "rows.read", + "rows.write", + "collections.read", + "collections.write", + "attributes.read", + "attributes.write", + "documents.read", + "documents.write", + "buckets.read", + "buckets.write", + "files.read", + "files.write", + "tokens.read", + "tokens.write", + "functions.read", + "functions.write", + "executions.read", + "executions.write", + "execution.read", + "execution.write", + "sites.read", + "sites.write", + "log.read", + "log.write", + "providers.read", + "providers.write", + "topics.read", + "topics.write", + "subscribers.read", + "subscribers.write", + "targets.read", + "targets.write", + "messages.read", + "messages.write", + "rules.read", + "rules.write", + "webhooks.read", + "webhooks.write", + "locale.read", + "avatars.read", + "health.read", + "assistant.read", + "migrations.read", + "migrations.write", + "schedules.read", + "schedules.write", + "vcs.read", + "vcs.write", + "insights.read", + "insights.write", + "reports.read", + "reports.write", + "presences.read", + "presences.write", + "backups.policies.read", + "backups.policies.write", + "archives.read", + "archives.write", + "restorations.read", + "restorations.write", + "dedicatedDatabases.execute", + "domains.read", + "domains.write", + "wafRules.read", + "wafRules.write", + "events.read", + "apps.read", + "apps.write", + "oauth2.read", + "oauth2.write", + "oauth2.introspect", + "usage.read" + ], + "x-enum-name": "ProjectKeyScopes", + "x-enum-keys": [ + "project.read", + "project.write", + "keys.read", + "keys.write", + "platforms.read", + "platforms.write", + "mocks.read", + "mocks.write", + "policies.read", + "policies.write", + "project.policies.read", + "project.policies.write", + "project.oauth2.read", + "project.oauth2.write", + "templates.read", + "templates.write", + "stages.read", + "stages.write", + "users.read", + "users.write", + "sessions.read", + "sessions.write", + "teams.read", + "teams.write", + "databases.read", + "databases.write", + "tables.read", + "tables.write", + "columns.read", + "columns.write", + "indexes.read", + "indexes.write", + "rows.read", + "rows.write", + "collections.read", + "collections.write", + "attributes.read", + "attributes.write", + "documents.read", + "documents.write", + "buckets.read", + "buckets.write", + "files.read", + "files.write", + "tokens.read", + "tokens.write", + "functions.read", + "functions.write", + "executions.read", + "executions.write", + "execution.read", + "execution.write", + "sites.read", + "sites.write", + "log.read", + "log.write", + "providers.read", + "providers.write", + "topics.read", + "topics.write", + "subscribers.read", + "subscribers.write", + "targets.read", + "targets.write", + "messages.read", + "messages.write", + "rules.read", + "rules.write", + "webhooks.read", + "webhooks.write", + "locale.read", + "avatars.read", + "health.read", + "assistant.read", + "migrations.read", + "migrations.write", + "schedules.read", + "schedules.write", + "vcs.read", + "vcs.write", + "insights.read", + "insights.write", + "reports.read", + "reports.write", + "presences.read", + "presences.write", + "backups.policies.read", + "backups.policies.write", + "archives.read", + "archives.write", + "restorations.read", + "restorations.write", + "dedicatedDatabases.execute", + "domains.read", + "domains.write", + "wafRules.read", + "wafRules.write", + "events.read", + "apps.read", + "apps.write", + "oauth2.read", + "oauth2.write", + "oauth2.introspect", + "usage.read" + ] + } + }, + "expire": { + "type": "string", + "description": "Expiration time in [ISO 8601](https:\/\/www.iso.org\/iso-8601-date-and-time-format.html) format. Use null for unlimited expiration.", + "x-example": "2020-10-15T06:38:00.000+00:00", + "format": "datetime", + "x-nullable": true + } + }, + "required": [ + "name", + "scopes" + ] + } + } + } + } + }, + "delete": { + "summary": "Delete 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": { + "method": "deleteKey", + "group": "keys", + "cookies": false, + "type": "", + "demo": "project\/delete-key.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "keys.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "keyId", + "description": "Key ID.", + "required": true, + "schema": { + "type": "string", + "x-example": "<KEY_ID>" + }, + "in": "path" + } + ] + } + }, + "\/project\/labels": { + "put": { + "summary": "Update project labels", + "operationId": "projectUpdateLabels", + "tags": [ + "project" + ], + "description": "Update the project labels. Labels can be used to easily filter projects in an organization.", + "responses": { + "200": { + "description": "Project", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/project" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "method": "updateLabels", + "group": null, + "cookies": false, + "type": "", + "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": { + "type": "array", + "description": "Array of project labels. Replaces the previous labels. Maximum of 1000 labels are allowed, each up to 36 alphanumeric characters long.", + "x-example": null, + "items": { + "type": "string" + } + } + }, + "required": [ + "labels" + ] + } + } + } + } + } + }, + "\/project\/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": { + "method": "listMockPhones", + "group": "mocks", + "cookies": false, + "type": "", + "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", + "x-example": false, + "default": true + }, + "in": "query" + } + ] + }, + "post": { + "summary": "Create project mock phone", + "operationId": "projectCreateMockPhone", + "tags": [ + "project" + ], + "description": "Create a new mock phone for your project. Use this endpoint to register a mock phone number and its sign-in OTP for your testers.", + "responses": { + "201": { + "description": "Mock Number", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/mockNumber" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "method": "createMockPhone", + "group": "mocks", + "cookies": false, + "type": "", + "demo": "project\/create-mock-phone.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "mocks.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "number": { + "type": "string", + "description": "Phone number to associate with the mock phone. Must be a valid E.164 formatted phone number.", + "x-example": "+12065550100", + "format": "phone" + }, + "otp": { + "type": "string", + "description": "One-time password (OTP) to associate with the mock phone. Must be a 6-digit numeric code.", + "x-example": "<OTP>" + } + }, + "required": [ + "number", + "otp" + ] + } + } + } + } + } + }, + "\/project\/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": { + "method": "getMockPhone", + "group": "mocks", + "cookies": false, + "type": "", + "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", + "x-example": "+12065550100" + }, + "in": "path" + } + ] + }, + "put": { + "summary": "Update project mock phone", + "operationId": "projectUpdateMockPhone", + "tags": [ + "project" + ], + "description": "Update a mock phone by its unique number. Use this endpoint to update the mock phone's OTP.", + "responses": { + "200": { + "description": "Mock Number", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/mockNumber" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "method": "updateMockPhone", + "group": "mocks", + "cookies": false, + "type": "", + "demo": "project\/update-mock-phone.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "mocks.write", + "platforms": [ + "console", + "server" + ], + "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", + "x-example": "+12065550100" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "otp": { + "type": "string", + "description": "One-time password (OTP) to associate with the mock phone. Must be a 6-digit numeric code.", + "x-example": "<OTP>" + } + }, + "required": [ + "otp" + ] + } + } + } + } + }, + "delete": { + "summary": "Delete project mock phone", + "operationId": "projectDeleteMockPhone", + "tags": [ + "project" + ], + "description": "Delete a mock phone by its unique number. This endpoint removes the mock phone and its OTP configuration from the project.", + "responses": { + "204": { + "description": "No content" + } + }, + "deprecated": false, + "x-appwrite": { + "method": "deleteMockPhone", + "group": "mocks", + "cookies": false, + "type": "", + "demo": "project\/delete-mock-phone.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "mocks.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "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", + "x-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": { + "method": "listOAuth2Providers", + "group": "oauth2", + "cookies": false, + "type": "", + "demo": "project\/list-o-auth-2-providers.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "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", + "x-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": { + "method": "updateOAuth2Server", + "group": null, + "cookies": false, + "type": "", + "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": { + "type": "boolean", + "description": "Enable or disable the OAuth2 server.", + "x-example": false + }, + "authorizationUrl": { + "type": "string", + "description": "URL to your application with consent screen.", + "x-example": "https:\/\/example.com", + "format": "url" + }, + "scopes": { + "type": "array", + "description": "List of allowed OAuth2 scopes. Maximum of 100 scopes are allowed, each up to 128 characters long.", + "default": [], + "x-example": null, + "items": { + "type": "string" + } + }, + "authorizationDetailsTypes": { + "type": "array", + "description": "List of accepted `authorization_details` types. Maximum of 100 types are allowed, each up to 128 characters long.", + "default": [], + "x-example": null, + "items": { + "type": "string" + } + }, + "accessTokenDuration": { + "type": "integer", + "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.", + "x-example": 60, + "format": "int32", + "x-nullable": true + }, + "refreshTokenDuration": { + "type": "integer", + "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.", + "x-example": 60, + "format": "int32", + "x-nullable": true + }, + "publicAccessTokenDuration": { + "type": "integer", + "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.", + "x-example": 60, + "format": "int32", + "x-nullable": true + }, + "publicRefreshTokenDuration": { + "type": "integer", + "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.", + "x-example": 60, + "format": "int32", + "x-nullable": true + }, + "confidentialPkce": { + "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.", + "x-example": false, + "x-nullable": true + }, + "verificationUrl": { + "type": "string", + "description": "URL to your application page where users enter the device flow user code. Required to enable the Device Authorization Grant.", + "default": "", + "x-example": "https:\/\/example.com", + "format": "url" + }, + "userCodeLength": { + "type": "integer", + "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.", + "x-example": 6, + "format": "int32", + "x-nullable": true + }, + "userCodeFormat": { + "type": "string", + "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`.", + "default": "alphanumeric", + "x-example": "numeric" + }, + "deviceCodeDuration": { + "type": "integer", + "description": "Lifetime in seconds of device flow device codes and user codes. Device codes are intentionally short-lived. Leave empty to use default 600.", + "x-example": 60, + "format": "int32", + "x-nullable": true + }, + "defaultScopes": { + "type": "array", + "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.", + "default": [], + "x-example": null, + "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": { + "method": "updateOAuth2Amazon", + "group": "oauth2", + "cookies": false, + "type": "", + "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": { + "type": "string", + "description": "'Client ID' of Amazon OAuth2 app. For example: amzn1.application-oa2-client.87400c00000000000000000000063d5b2", + "x-example": "<CLIENT_ID>", + "x-nullable": true + }, + "clientSecret": { + "type": "string", + "description": "'Client Secret' of Amazon OAuth2 app. For example: 79ffe4000000000000000000000000000000000000000000000000000002de55", + "x-example": "<CLIENT_SECRET>", + "x-nullable": true + }, + "enabled": { + "type": "boolean", + "description": "OAuth2 sign-in method status. Set to true to enable new session creation. Setting to true will trigger end-to-end credentials validation, and will throw if the credentials are invalid.", + "x-example": false, + "x-nullable": true + } + } + } + } + } + } + } + }, + "\/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": { + "method": "updateOAuth2Apple", + "group": "oauth2", + "cookies": false, + "type": "", + "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": { + "type": "string", + "description": "'Service ID' of Apple OAuth2 app. For example: ip.appwrite.app.web", + "x-example": "<SERVICE_ID>", + "x-nullable": true + }, + "keyId": { + "type": "string", + "description": "'Key ID' of Apple OAuth2 app. For example: P4000000N8", + "x-example": "<KEY_ID>", + "x-nullable": true + }, + "teamId": { + "type": "string", + "description": "'Team ID' of Apple OAuth2 app. For example: D4000000R6", + "x-example": "<TEAM_ID>", + "x-nullable": true + }, + "p8File": { + "type": "string", + "description": "Contents of the Apple OAuth2 app .p8 private key file. The secret key wrapped by the PEM markers is 200 characters long. For example: -----BEGIN PRIVATE KEY-----MIGTAg...jy2Xbna-----END PRIVATE KEY-----", + "x-example": "<P8_FILE>", + "x-nullable": true + }, + "enabled": { + "type": "boolean", + "description": "OAuth2 sign-in method status. Set to true to enable new session creation. Setting to true will trigger end-to-end credentials validation, and will throw if the credentials are invalid.", + "x-example": false, + "x-nullable": true + } + } + } + } + } + } + } + }, + "\/project\/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": { + "method": "updateOAuth2Appwrite", + "group": "oauth2", + "cookies": false, + "type": "", + "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": { + "type": "string", + "description": "'Client ID' of Appwrite OAuth2 app. For example: 6a42000000000000b5a0", + "x-example": "<CLIENT_ID>", + "x-nullable": true + }, + "clientSecret": { + "type": "string", + "description": "'Client Secret' of Appwrite OAuth2 app. For example: b86afd000000000000000000000000000000000000000000000000000ced5f93", + "x-example": "<CLIENT_SECRET>", + "x-nullable": true + }, + "enabled": { + "type": "boolean", + "description": "OAuth2 sign-in method status. Set to true to enable new session creation. Setting to true will trigger end-to-end credentials validation, and will throw if the credentials are invalid.", + "x-example": false, + "x-nullable": true + } + } + } + } + } + } + } + }, + "\/project\/oauth2\/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": { + "method": "updateOAuth2Auth0", + "group": "oauth2", + "cookies": false, + "type": "", + "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": { + "type": "string", + "description": "'Client ID' of Auth0 OAuth2 app. For example: OaOkIA000000000000000000005KLSYq", + "x-example": "<CLIENT_ID>", + "x-nullable": true + }, + "clientSecret": { + "type": "string", + "description": "'Client Secret' of Auth0 OAuth2 app. For example: zXz0000-00000000000000000000000000000-00000000000000000000PJafnF", + "x-example": "<CLIENT_SECRET>", + "x-nullable": true + }, + "endpoint": { + "type": "string", + "description": "Domain of Auth0 instance. For example: example.us.auth0.com", + "x-example": "<ENDPOINT>", + "x-nullable": true + }, + "enabled": { + "type": "boolean", + "description": "OAuth2 sign-in method status. Set to true to enable new session creation. Setting to true will trigger end-to-end credentials validation, and will throw if the credentials are invalid.", + "x-example": false, + "x-nullable": true + } + } + } + } + } + } + } + }, + "\/project\/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": { + "method": "updateOAuth2Authentik", + "group": "oauth2", + "cookies": false, + "type": "", + "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": { + "type": "string", + "description": "'Client ID' of Authentik OAuth2 app. For example: dTKOPa0000000000000000000000000000e7G8hv", + "x-example": "<CLIENT_ID>", + "x-nullable": true + }, + "clientSecret": { + "type": "string", + "description": "'Client Secret' of Authentik OAuth2 app. For example: ntQadq000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000Hp5WK", + "x-example": "<CLIENT_SECRET>", + "x-nullable": true + }, + "endpoint": { + "type": "string", + "description": "Domain of Authentik instance. For example: example.authentik.com", + "x-example": "<ENDPOINT>", + "x-nullable": true + }, + "enabled": { + "type": "boolean", + "description": "OAuth2 sign-in method status. Set to true to enable new session creation. Setting to true will trigger end-to-end credentials validation, and will throw if the credentials are invalid.", + "x-example": false, + "x-nullable": true + } + } + } + } + } + } + } + }, + "\/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": { + "method": "updateOAuth2Autodesk", + "group": "oauth2", + "cookies": false, + "type": "", + "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": { + "type": "string", + "description": "'Client ID' of Autodesk OAuth2 app. For example: 5zw90v00000000000000000000kVYXN7", + "x-example": "<CLIENT_ID>", + "x-nullable": true + }, + "clientSecret": { + "type": "string", + "description": "'Client Secret' of Autodesk OAuth2 app. For example: 7I000000000000MW", + "x-example": "<CLIENT_SECRET>", + "x-nullable": true + }, + "enabled": { + "type": "boolean", + "description": "OAuth2 sign-in method status. Set to true to enable new session creation. Setting to true will trigger end-to-end credentials validation, and will throw if the credentials are invalid.", + "x-example": false, + "x-nullable": true + } + } + } + } + } + } + } + }, + "\/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": { + "method": "updateOAuth2Bitbucket", + "group": "oauth2", + "cookies": false, + "type": "", + "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": { + "type": "string", + "description": "'Key' of Bitbucket OAuth2 app. For example: Knt70000000000ByRc", + "x-example": "<KEY>", + "x-nullable": true + }, + "secret": { + "type": "string", + "description": "'Secret' of Bitbucket OAuth2 app. For example: NMfLZJ00000000000000000000TLQdDx", + "x-example": "<SECRET>", + "x-nullable": true + }, + "enabled": { + "type": "boolean", + "description": "OAuth2 sign-in method status. Set to true to enable new session creation. Setting to true will trigger end-to-end credentials validation, and will throw if the credentials are invalid.", + "x-example": false, + "x-nullable": true + } + } + } + } + } + } + } + }, + "\/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": { + "method": "updateOAuth2Bitly", + "group": "oauth2", + "cookies": false, + "type": "", + "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": { + "type": "string", + "description": "'Client ID' of Bitly OAuth2 app. For example: d95151000000000000000000000000000067af9b", + "x-example": "<CLIENT_ID>", + "x-nullable": true + }, + "clientSecret": { + "type": "string", + "description": "'Client Secret' of Bitly OAuth2 app. For example: a13e250000000000000000000000000000d73095", + "x-example": "<CLIENT_SECRET>", + "x-nullable": true + }, + "enabled": { + "type": "boolean", + "description": "OAuth2 sign-in method status. Set to true to enable new session creation. Setting to true will trigger end-to-end credentials validation, and will throw if the credentials are invalid.", + "x-example": false, + "x-nullable": true + } + } + } + } + } + } + } + }, + "\/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": { + "method": "updateOAuth2Box", + "group": "oauth2", + "cookies": false, + "type": "", + "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": { + "type": "string", + "description": "'Client ID' of Box OAuth2 app. For example: deglcs00000000000000000000x2og6y", + "x-example": "<CLIENT_ID>", + "x-nullable": true + }, + "clientSecret": { + "type": "string", + "description": "'Client Secret' of Box OAuth2 app. For example: OKM1f100000000000000000000eshEif", + "x-example": "<CLIENT_SECRET>", + "x-nullable": true + }, + "enabled": { + "type": "boolean", + "description": "OAuth2 sign-in method status. Set to true to enable new session creation. Setting to true will trigger end-to-end credentials validation, and will throw if the credentials are invalid.", + "x-example": false, + "x-nullable": true + } + } + } + } + } + } + } + }, + "\/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": { + "method": "updateOAuth2Dailymotion", + "group": "oauth2", + "cookies": false, + "type": "", + "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": { + "type": "string", + "description": "'API Key' of Dailymotion OAuth2 app. For example: 07a9000000000000067f", + "x-example": "<API_KEY>", + "x-nullable": true + }, + "apiSecret": { + "type": "string", + "description": "'API Secret' of Dailymotion OAuth2 app. For example: a399a90000000000000000000000000000d90639", + "x-example": "<API_SECRET>", + "x-nullable": true + }, + "enabled": { + "type": "boolean", + "description": "OAuth2 sign-in method status. Set to true to enable new session creation. Setting to true will trigger end-to-end credentials validation, and will throw if the credentials are invalid.", + "x-example": false, + "x-nullable": true + } + } + } + } + } + } + } + }, + "\/project\/oauth2\/discord": { + "patch": { + "summary": "Update project OAuth2 Discord", + "operationId": "projectUpdateOAuth2Discord", + "tags": [ + "project" + ], + "description": "Update the project OAuth2 Discord configuration.", + "responses": { + "200": { + "description": "OAuth2Discord", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/oAuth2Discord" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "method": "updateOAuth2Discord", + "group": "oauth2", + "cookies": false, + "type": "", + "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": { + "type": "string", + "description": "'Client ID' of Discord OAuth2 app. For example: 950722000000343754", + "x-example": "<CLIENT_ID>", + "x-nullable": true + }, + "clientSecret": { + "type": "string", + "description": "'Client Secret' of Discord OAuth2 app. For example: YmPXnM000000000000000000002zFg5D", + "x-example": "<CLIENT_SECRET>", + "x-nullable": true + }, + "enabled": { + "type": "boolean", + "description": "OAuth2 sign-in method status. Set to true to enable new session creation. Setting to true will trigger end-to-end credentials validation, and will throw if the credentials are invalid.", + "x-example": false, + "x-nullable": true + } + } + } + } + } + } + } + }, + "\/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": { + "method": "updateOAuth2Disqus", + "group": "oauth2", + "cookies": false, + "type": "", + "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": { + "type": "string", + "description": "'Public Key, also known as API Key' of Disqus OAuth2 app. For example: cgegH70000000000000000000000000000000000000000000000000000Hr1nYX", + "x-example": "<PUBLIC_KEY>", + "x-nullable": true + }, + "secretKey": { + "type": "string", + "description": "'Secret Key, also known as API Secret' of Disqus OAuth2 app. For example: W7Bykj00000000000000000000000000000000000000000000000000003o43w9", + "x-example": "<SECRET_KEY>", + "x-nullable": true + }, + "enabled": { + "type": "boolean", + "description": "OAuth2 sign-in method status. Set to true to enable new session creation. Setting to true will trigger end-to-end credentials validation, and will throw if the credentials are invalid.", + "x-example": false, + "x-nullable": true + } + } + } + } + } + } + } + }, + "\/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": { + "method": "updateOAuth2Dropbox", + "group": "oauth2", + "cookies": false, + "type": "", + "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": { + "type": "string", + "description": "'App Key' of Dropbox OAuth2 app. For example: jl000000000009t", + "x-example": "<APP_KEY>", + "x-nullable": true + }, + "appSecret": { + "type": "string", + "description": "'App Secret' of Dropbox OAuth2 app. For example: g200000000000vw", + "x-example": "<APP_SECRET>", + "x-nullable": true + }, + "enabled": { + "type": "boolean", + "description": "OAuth2 sign-in method status. Set to true to enable new session creation. Setting to true will trigger end-to-end credentials validation, and will throw if the credentials are invalid.", + "x-example": false, + "x-nullable": true + } + } + } + } + } + } + } + }, + "\/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": { + "method": "updateOAuth2Etsy", + "group": "oauth2", + "cookies": false, + "type": "", + "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": { + "type": "string", + "description": "'Keystring' of Etsy OAuth2 app. For example: nsgzxh0000000000008j85a2", + "x-example": "<KEY_STRING>", + "x-nullable": true + }, + "sharedSecret": { + "type": "string", + "description": "'Shared Secret' of Etsy OAuth2 app. For example: tp000000ru", + "x-example": "<SHARED_SECRET>", + "x-nullable": true + }, + "enabled": { + "type": "boolean", + "description": "OAuth2 sign-in method status. Set to true to enable new session creation. Setting to true will trigger end-to-end credentials validation, and will throw if the credentials are invalid.", + "x-example": false, + "x-nullable": true + } + } + } + } + } + } + } + }, + "\/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": { + "method": "updateOAuth2Facebook", + "group": "oauth2", + "cookies": false, + "type": "", + "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": { + "type": "string", + "description": "'App ID' of Facebook OAuth2 app. For example: 260600000007694", + "x-example": "<APP_ID>", + "x-nullable": true + }, + "appSecret": { + "type": "string", + "description": "'App Secret' of Facebook OAuth2 app. For example: 2d0b2800000000000000000000d38af4", + "x-example": "<APP_SECRET>", + "x-nullable": true + }, + "enabled": { + "type": "boolean", + "description": "OAuth2 sign-in method status. Set to true to enable new session creation. Setting to true will trigger end-to-end credentials validation, and will throw if the credentials are invalid.", + "x-example": false, + "x-nullable": true + } + } + } + } + } + } + } + }, + "\/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": { + "method": "updateOAuth2Figma", + "group": "oauth2", + "cookies": false, + "type": "", + "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": { + "type": "string", + "description": "'Client ID' of Figma OAuth2 app. For example: byay5H0000000000VtiI40", + "x-example": "<CLIENT_ID>", + "x-nullable": true + }, + "clientSecret": { + "type": "string", + "description": "'Client Secret' of Figma OAuth2 app. For example: yEpOYn0000000000000000004iIsU5", + "x-example": "<CLIENT_SECRET>", + "x-nullable": true + }, + "enabled": { + "type": "boolean", + "description": "OAuth2 sign-in method status. Set to true to enable new session creation. Setting to true will trigger end-to-end credentials validation, and will throw if the credentials are invalid.", + "x-example": false, + "x-nullable": true + } + } + } + } + } + } + } + }, + "\/project\/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": { + "method": "updateOAuth2FusionAuth", + "group": "oauth2", + "cookies": false, + "type": "", + "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": { + "type": "string", + "description": "'Client ID' of FusionAuth OAuth2 app. For example: b2222c00-0000-0000-0000-000000862097", + "x-example": "<CLIENT_ID>", + "x-nullable": true + }, + "clientSecret": { + "type": "string", + "description": "'Client Secret' of FusionAuth OAuth2 app. For example: Jx4s0C0000000000000000000000000000000wGqLsc", + "x-example": "<CLIENT_SECRET>", + "x-nullable": true + }, + "endpoint": { + "type": "string", + "description": "Domain of FusionAuth instance. For example: example.fusionauth.io", + "x-example": "<ENDPOINT>", + "x-nullable": true + }, + "enabled": { + "type": "boolean", + "description": "OAuth2 sign-in method status. Set to true to enable new session creation. Setting to true will trigger end-to-end credentials validation, and will throw if the credentials are invalid.", + "x-example": false, + "x-nullable": true + } + } + } + } + } + } + } + }, + "\/project\/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": { + "method": "updateOAuth2GitHub", + "group": "oauth2", + "cookies": false, + "type": "", + "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": { + "type": "string", + "description": "'OAuth2 app Client ID, or App ID' of GitHub OAuth2 app. For example: e4d87900000000540733. Example of wrong value: 370006", + "x-example": "<CLIENT_ID>", + "x-nullable": true + }, + "clientSecret": { + "type": "string", + "description": "'Client Secret' of GitHub OAuth2 app. For example: 5e07c00000000000000000000000000000198bcc", + "x-example": "<CLIENT_SECRET>", + "x-nullable": true + }, + "enabled": { + "type": "boolean", + "description": "OAuth2 sign-in method status. Set to true to enable new session creation. Setting to true will trigger end-to-end credentials validation, and will throw if the credentials are invalid.", + "x-example": false, + "x-nullable": true + } + } + } + } + } + } + } + }, + "\/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": { + "method": "updateOAuth2Gitlab", + "group": "oauth2", + "cookies": false, + "type": "", + "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": { + "type": "string", + "description": "'Application ID' of Gitlab OAuth2 app. For example: d41ffe0000000000000000000000000000000000000000000000000000d5e252", + "x-example": "<APPLICATION_ID>", + "x-nullable": true + }, + "secret": { + "type": "string", + "description": "'Secret' of Gitlab OAuth2 app. For example: gloas-838cfa0000000000000000000000000000000000000000000000000000ecbb38", + "x-example": "<SECRET>", + "x-nullable": true + }, + "endpoint": { + "type": "string", + "description": "Endpoint URL of self-hosted GitLab instance. For example: https:\/\/gitlab.com", + "x-example": "https:\/\/example.com", + "format": "url", + "x-nullable": true + }, + "enabled": { + "type": "boolean", + "description": "OAuth2 sign-in method status. Set to true to enable new session creation. Setting to true will trigger end-to-end credentials validation, and will throw if the credentials are invalid.", + "x-example": false, + "x-nullable": true + } + } + } + } + } + } + } + }, + "\/project\/oauth2\/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": { + "method": "updateOAuth2Google", + "group": "oauth2", + "cookies": false, + "type": "", + "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": { + "type": "string", + "description": "'Client ID' of Google OAuth2 app. For example: 120000000095-92ifjb00000000000000000000g7ijfb.apps.googleusercontent.com", + "x-example": "<CLIENT_ID>", + "x-nullable": true + }, + "clientSecret": { + "type": "string", + "description": "'Client Secret' of Google OAuth2 app. For example: GOCSPX-2k8gsR0000000000000000VNahJj", + "x-example": "<CLIENT_SECRET>", + "x-nullable": true + }, + "prompt": { + "type": "array", + "description": "Array of Google OAuth2 prompt values. If \"none\" is included, it must be the only element. \"none\" means: don't display any authentication or consent screens. Must not be specified with other values. \"consent\" means: prompt the user for consent. \"select_account\" means: prompt the user to select an account.", + "x-example": null, + "items": { + "type": "string", + "enum": [ + "none", + "consent", + "select_account" + ], + "x-enum-name": "ProjectOAuth2GooglePrompt", + "x-enum-keys": [ + "none", + "consent", + "select_account" + ] + }, + "x-nullable": true + }, + "enabled": { + "type": "boolean", + "description": "OAuth2 sign-in method status. Set to true to enable new session creation. Setting to true will trigger end-to-end credentials validation, and will throw if the credentials are invalid.", + "x-example": false, + "x-nullable": true + } + } + } + } + } + } + } + }, + "\/project\/oauth2\/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": { + "method": "updateOAuth2Keycloak", + "group": "oauth2", + "cookies": false, + "type": "", + "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": { + "type": "string", + "description": "'Client ID' of Keycloak OAuth2 app. For example: appwrite-o0000000st-app", + "x-example": "<CLIENT_ID>", + "x-nullable": true + }, + "clientSecret": { + "type": "string", + "description": "'Client Secret' of Keycloak OAuth2 app. For example: jdjrJd00000000000000000000HUsaZO", + "x-example": "<CLIENT_SECRET>", + "x-nullable": true + }, + "endpoint": { + "type": "string", + "description": "Domain of Keycloak instance. For example: keycloak.example.com", + "x-example": "<ENDPOINT>", + "x-nullable": true + }, + "realmName": { + "type": "string", + "description": "Keycloak realm name. For example: appwrite-realm", + "x-example": "<REALM_NAME>", + "x-nullable": true + }, + "enabled": { + "type": "boolean", + "description": "OAuth2 sign-in method status. Set to true to enable new session creation. Setting to true will trigger end-to-end credentials validation, and will throw if the credentials are invalid.", + "x-example": false, + "x-nullable": true + } + } + } + } + } + } + } + }, + "\/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": { + "method": "updateOAuth2Kick", + "group": "oauth2", + "cookies": false, + "type": "", + "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": { + "type": "string", + "description": "'Client ID' of Kick OAuth2 app. For example: 01KQ7C00000000000001MFHS32", + "x-example": "<CLIENT_ID>", + "x-nullable": true + }, + "clientSecret": { + "type": "string", + "description": "'Client Secret' of Kick OAuth2 app. For example: 34ac5600000000000000000000000000000000000000000000000000e830c8b", + "x-example": "<CLIENT_SECRET>", + "x-nullable": true + }, + "enabled": { + "type": "boolean", + "description": "OAuth2 sign-in method status. Set to true to enable new session creation. Setting to true will trigger end-to-end credentials validation, and will throw if the credentials are invalid.", + "x-example": false, + "x-nullable": true + } + } + } + } + } + } + } + }, + "\/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": { + "method": "updateOAuth2Linkedin", + "group": "oauth2", + "cookies": false, + "type": "", + "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": { + "type": "string", + "description": "'Client ID' of Linkedin OAuth2 app. For example: 770000000000dv", + "x-example": "<CLIENT_ID>", + "x-nullable": true + }, + "primaryClientSecret": { + "type": "string", + "description": "'Primary Client Secret or Secondary Client Secret' of Linkedin OAuth2 app. For example: WPL_AP1.2Bf0000000000000.\/HtlYw==", + "x-example": "<PRIMARY_CLIENT_SECRET>", + "x-nullable": true + }, + "enabled": { + "type": "boolean", + "description": "OAuth2 sign-in method status. Set to true to enable new session creation. Setting to true will trigger end-to-end credentials validation, and will throw if the credentials are invalid.", + "x-example": false, + "x-nullable": true + } + } + } + } + } + } + } + }, + "\/project\/oauth2\/microsoft": { + "patch": { + "summary": "Update project OAuth2 Microsoft", + "operationId": "projectUpdateOAuth2Microsoft", + "tags": [ + "project" + ], + "description": "Update the project OAuth2 Microsoft configuration.", + "responses": { + "200": { + "description": "OAuth2Microsoft", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/oAuth2Microsoft" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "method": "updateOAuth2Microsoft", + "group": "oauth2", + "cookies": false, + "type": "", + "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": { + "type": "string", + "description": "'Entra ID Application ID, also known as Client ID' of Microsoft OAuth2 app. For example: 00001111-aaaa-2222-bbbb-3333cccc4444", + "x-example": "<APPLICATION_ID>", + "x-nullable": true + }, + "applicationSecret": { + "type": "string", + "description": "'Entra ID Application Secret, also known as Client Secret' of Microsoft OAuth2 app. For example: A1bC2dE3fH4iJ5kL6mN7oP8qR9sT0u", + "x-example": "<APPLICATION_SECRET>", + "x-nullable": true + }, + "tenant": { + "type": "string", + "description": "Microsoft Entra ID tenant identifier. Use 'common', 'organizations', 'consumers' or a specific tenant ID. For example: common", + "x-example": "<TENANT>", + "x-nullable": true + }, + "enabled": { + "type": "boolean", + "description": "OAuth2 sign-in method status. Set to true to enable new session creation. Setting to true will trigger end-to-end credentials validation, and will throw if the credentials are invalid.", + "x-example": false, + "x-nullable": true + } + } + } + } + } + } + } + }, + "\/project\/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": { + "method": "updateOAuth2Notion", + "group": "oauth2", + "cookies": false, + "type": "", + "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": { + "type": "string", + "description": "'OAuth Client ID' of Notion OAuth2 app. For example: 341d8700-0000-0000-0000-000000446ee3", + "x-example": "<OAUTH_CLIENT_ID>", + "x-nullable": true + }, + "oauthClientSecret": { + "type": "string", + "description": "'OAuth Client Secret' of Notion OAuth2 app. For example: secret_dLUr4b000000000000000000000000000000lFHAa9", + "x-example": "<OAUTH_CLIENT_SECRET>", + "x-nullable": true + }, + "enabled": { + "type": "boolean", + "description": "OAuth2 sign-in method status. Set to true to enable new session creation. Setting to true will trigger end-to-end credentials validation, and will throw if the credentials are invalid.", + "x-example": false, + "x-nullable": true + } + } + } + } + } + } + } + }, + "\/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": { + "method": "updateOAuth2Oidc", + "group": "oauth2", + "cookies": false, + "type": "", + "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": { + "type": "string", + "description": "'Client ID' of Oidc OAuth2 app. For example: qibI2x0000000000000000000000000006L2YFoG", + "x-example": "<CLIENT_ID>", + "x-nullable": true + }, + "clientSecret": { + "type": "string", + "description": "'Client Secret' of Oidc OAuth2 app. For example: Ah68ed000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003qpcHV", + "x-example": "<CLIENT_SECRET>", + "x-nullable": true + }, + "wellKnownURL": { + "type": "string", + "description": "OpenID Connect well-known configuration URL. When provided, authorization, token, and user info endpoints can be discovered automatically. For example: https:\/\/myoauth.com\/.well-known\/openid-configuration", + "x-example": "https:\/\/example.com", + "format": "url", + "x-nullable": true + }, + "authorizationURL": { + "type": "string", + "description": "OpenID Connect authorization endpoint URL. Required when wellKnownURL is not provided. For example: https:\/\/myoauth.com\/oauth2\/authorize", + "x-example": "https:\/\/example.com", + "format": "url", + "x-nullable": true + }, + "tokenURL": { + "type": "string", + "description": "OpenID Connect token endpoint URL. Required when wellKnownURL is not provided. For example: https:\/\/myoauth.com\/oauth2\/token", + "x-example": "https:\/\/example.com", + "format": "url", + "x-nullable": true + }, + "userInfoURL": { + "type": "string", + "description": "OpenID Connect user info endpoint URL. Required when wellKnownURL is not provided. For example: https:\/\/myoauth.com\/oauth2\/userinfo", + "x-example": "https:\/\/example.com", + "format": "url", + "x-nullable": true + }, + "prompt": { + "type": "array", + "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.", + "x-example": null, + "items": { + "type": "string", + "enum": [ + "none", + "login", + "consent", + "select_account" + ], + "x-enum-name": "ProjectOAuth2OidcPrompt", + "x-enum-keys": [ + "none", + "login", + "consent", + "select_account" + ] + }, + "x-nullable": true + }, + "maxAge": { + "type": "integer", + "description": "Maximum authentication age in seconds. When set, the user must have authenticated within this many seconds, otherwise they are prompted to re-authenticate.", + "x-example": 0, + "format": "int32", + "x-nullable": true + }, + "enabled": { + "type": "boolean", + "description": "OAuth2 sign-in method status. Set to true to enable new session creation. Setting to true will trigger end-to-end credentials validation, and will throw if the credentials are invalid.", + "x-example": false, + "x-nullable": true + } + } + } + } + } + } + } + }, + "\/project\/oauth2\/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": { + "method": "updateOAuth2Okta", + "group": "oauth2", + "cookies": false, + "type": "", + "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": { + "type": "string", + "description": "'Client ID' of Okta OAuth2 app. For example: 0oa00000000000000698", + "x-example": "<CLIENT_ID>", + "x-nullable": true + }, + "clientSecret": { + "type": "string", + "description": "'Client Secret' of Okta OAuth2 app. For example: Kiq0000000000000000000000000000000000000-00000000000H2L5-3SJ-vRV", + "x-example": "<CLIENT_SECRET>", + "x-nullable": true + }, + "domain": { + "type": "string", + "description": "Okta company domain. Required when enabling the provider. For example: trial-6400025.okta.com. Example of wrong value: trial-6400025-admin.okta.com, or https:\/\/trial-6400025.okta.com\/", + "x-example": null, + "x-nullable": true + }, + "authorizationServerId": { + "type": "string", + "description": "Custom Authorization Servers. Optional, can be left empty or unconfigured. For example: aus000000000000000h7z", + "x-example": "<AUTHORIZATION_SERVER_ID>", + "x-nullable": true + }, + "enabled": { + "type": "boolean", + "description": "OAuth2 sign-in method status. Set to true to enable new session creation. Setting to true will trigger end-to-end credentials validation, and will throw if the credentials are invalid.", + "x-example": false, + "x-nullable": true + } + } + } + } + } + } + } + }, + "\/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": { + "method": "updateOAuth2Paypal", + "group": "oauth2", + "cookies": false, + "type": "", + "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": { + "type": "string", + "description": "'Client ID' of Paypal OAuth2 app. For example: AdhIEG7-000000000000-0000000000000000000000000000000-0000000000000000000000-2pyB", + "x-example": "<CLIENT_ID>", + "x-nullable": true + }, + "secretKey": { + "type": "string", + "description": "'Secret Key 1 or Secret Key 2' of Paypal OAuth2 app. For example: EH8KCXtew--000000000000000000000000000000000000000_C-1_5UP_000000000000000CB7KDp", + "x-example": "<SECRET_KEY>", + "x-nullable": true + }, + "enabled": { + "type": "boolean", + "description": "OAuth2 sign-in method status. Set to true to enable new session creation. Setting to true will trigger end-to-end credentials validation, and will throw if the credentials are invalid.", + "x-example": false, + "x-nullable": true + } + } + } + } + } + } + } + }, + "\/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": { + "method": "updateOAuth2PaypalSandbox", + "group": "oauth2", + "cookies": false, + "type": "", + "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": { + "type": "string", + "description": "'Client ID' of PaypalSandbox OAuth2 app. For example: AdhIEG7-000000000000-0000000000000000000000000000000-0000000000000000000000-2pyB", + "x-example": "<CLIENT_ID>", + "x-nullable": true + }, + "secretKey": { + "type": "string", + "description": "'Secret Key 1 or Secret Key 2' of PaypalSandbox OAuth2 app. For example: EH8KCXtew--000000000000000000000000000000000000000_C-1_5UP_000000000000000CB7KDp", + "x-example": "<SECRET_KEY>", + "x-nullable": true + }, + "enabled": { + "type": "boolean", + "description": "OAuth2 sign-in method status. Set to true to enable new session creation. Setting to true will trigger end-to-end credentials validation, and will throw if the credentials are invalid.", + "x-example": false, + "x-nullable": true + } + } + } + } + } + } + } + }, + "\/project\/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": { + "method": "updateOAuth2Podio", + "group": "oauth2", + "cookies": false, + "type": "", + "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": { + "type": "string", + "description": "'Client ID' of Podio OAuth2 app. For example: appwrite-o0000000st-app", + "x-example": "<CLIENT_ID>", + "x-nullable": true + }, + "clientSecret": { + "type": "string", + "description": "'Client Secret' of Podio OAuth2 app. For example: Rn247T0000000000000000000000000000000000000000000000000000W2zWTN", + "x-example": "<CLIENT_SECRET>", + "x-nullable": true + }, + "enabled": { + "type": "boolean", + "description": "OAuth2 sign-in method status. Set to true to enable new session creation. Setting to true will trigger end-to-end credentials validation, and will throw if the credentials are invalid.", + "x-example": false, + "x-nullable": true + } + } + } + } + } + } + } + }, + "\/project\/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": { + "method": "updateOAuth2Salesforce", + "group": "oauth2", + "cookies": false, + "type": "", + "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": { + "type": "string", + "description": "'Consumer Key' of Salesforce OAuth2 app. For example: 3MVG9I0000000000000000000000000000000000000000000000000000000000000000000000000C5Aejq", + "x-example": "<CUSTOMER_KEY>", + "x-nullable": true + }, + "customerSecret": { + "type": "string", + "description": "'Consumer Secret' of Salesforce OAuth2 app. For example: 3w000000000000e2", + "x-example": "<CUSTOMER_SECRET>", + "x-nullable": true + }, + "enabled": { + "type": "boolean", + "description": "OAuth2 sign-in method status. Set to true to enable new session creation. Setting to true will trigger end-to-end credentials validation, and will throw if the credentials are invalid.", + "x-example": false, + "x-nullable": true + } + } + } + } + } + } + } + }, + "\/project\/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": { + "method": "updateOAuth2Slack", + "group": "oauth2", + "cookies": false, + "type": "", + "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": { + "type": "string", + "description": "'Client ID' of Slack OAuth2 app. For example: 23000000089.15000000000023", + "x-example": "<CLIENT_ID>", + "x-nullable": true + }, + "clientSecret": { + "type": "string", + "description": "'Client Secret' of Slack OAuth2 app. For example: 81656000000000000000000000f3d2fd", + "x-example": "<CLIENT_SECRET>", + "x-nullable": true + }, + "enabled": { + "type": "boolean", + "description": "OAuth2 sign-in method status. Set to true to enable new session creation. Setting to true will trigger end-to-end credentials validation, and will throw if the credentials are invalid.", + "x-example": false, + "x-nullable": true + } + } + } + } + } + } + } + }, + "\/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": { + "method": "updateOAuth2Spotify", + "group": "oauth2", + "cookies": false, + "type": "", + "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": { + "type": "string", + "description": "'Client ID' of Spotify OAuth2 app. For example: 6ec271000000000000000000009beace", + "x-example": "<CLIENT_ID>", + "x-nullable": true + }, + "clientSecret": { + "type": "string", + "description": "'Client Secret' of Spotify OAuth2 app. For example: db068a000000000000000000008b5b9f", + "x-example": "<CLIENT_SECRET>", + "x-nullable": true + }, + "enabled": { + "type": "boolean", + "description": "OAuth2 sign-in method status. Set to true to enable new session creation. Setting to true will trigger end-to-end credentials validation, and will throw if the credentials are invalid.", + "x-example": false, + "x-nullable": true + } + } + } + } + } + } + } + }, + "\/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": { + "method": "updateOAuth2Stripe", + "group": "oauth2", + "cookies": false, + "type": "", + "demo": "project\/update-o-auth-2-stripe.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "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": { + "type": "string", + "description": "'Client ID' of Stripe OAuth2 app. For example: ca_UKibXX0000000000000000000006byvR", + "x-example": "<CLIENT_ID>", + "x-nullable": true + }, + "apiSecretKey": { + "type": "string", + "description": "'API Secret Key' of Stripe OAuth2 app. For example: sk_51SfOd000000000000000000000000000000000000000000000000000000000000000000000000000000000000000QGWYfp", + "x-example": "<API_SECRET_KEY>", + "x-nullable": true + }, + "enabled": { + "type": "boolean", + "description": "OAuth2 sign-in method status. Set to true to enable new session creation. Setting to true will trigger end-to-end credentials validation, and will throw if the credentials are invalid.", + "x-example": false, + "x-nullable": true + } + } + } + } + } + } + } + }, + "\/project\/oauth2\/tradeshift": { + "patch": { + "summary": "Update project 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": { + "method": "updateOAuth2Tradeshift", + "group": "oauth2", + "cookies": false, + "type": "", + "demo": "project\/update-o-auth-2-tradeshift.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "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": { + "type": "string", + "description": "'OAuth2 Client ID' of Tradeshift OAuth2 app. For example: appwrite-tes00000.0000000000est-app", + "x-example": "<OAUTH2_CLIENT_ID>", + "x-nullable": true + }, + "oauth2ClientSecret": { + "type": "string", + "description": "'OAuth2 Client Secret' of Tradeshift OAuth2 app. For example: 7cb52700-0000-0000-0000-000000ca5b83", + "x-example": "<OAUTH2_CLIENT_SECRET>", + "x-nullable": true + }, + "enabled": { + "type": "boolean", + "description": "OAuth2 sign-in method status. Set to true to enable new session creation. Setting to true will trigger end-to-end credentials validation, and will throw if the credentials are invalid.", + "x-example": false, + "x-nullable": true + } + } + } + } + } + } + } + }, + "\/project\/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": { + "method": "updateOAuth2TradeshiftSandbox", + "group": "oauth2", + "cookies": false, + "type": "", + "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": { + "type": "string", + "description": "'OAuth2 Client ID' of Tradeshift Sandbox OAuth2 app. For example: appwrite-tes00000.0000000000est-app", + "x-example": "<OAUTH2_CLIENT_ID>", + "x-nullable": true + }, + "oauth2ClientSecret": { + "type": "string", + "description": "'OAuth2 Client Secret' of Tradeshift Sandbox OAuth2 app. For example: 7cb52700-0000-0000-0000-000000ca5b83", + "x-example": "<OAUTH2_CLIENT_SECRET>", + "x-nullable": true + }, + "enabled": { + "type": "boolean", + "description": "OAuth2 sign-in method status. Set to true to enable new session creation. Setting to true will trigger end-to-end credentials validation, and will throw if the credentials are invalid.", + "x-example": false, + "x-nullable": true + } + } + } + } + } + } + } + }, + "\/project\/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": { + "method": "updateOAuth2Twitch", + "group": "oauth2", + "cookies": false, + "type": "", + "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": { + "type": "string", + "description": "'Client ID' of Twitch OAuth2 app. For example: vvi0in000000000000000000ikmt9p", + "x-example": "<CLIENT_ID>", + "x-nullable": true + }, + "clientSecret": { + "type": "string", + "description": "'Client Secret' of Twitch OAuth2 app. For example: pmapue000000000000000000zylw3v", + "x-example": "<CLIENT_SECRET>", + "x-nullable": true + }, + "enabled": { + "type": "boolean", + "description": "OAuth2 sign-in method status. Set to true to enable new session creation. Setting to true will trigger end-to-end credentials validation, and will throw if the credentials are invalid.", + "x-example": false, + "x-nullable": true + } + } + } + } + } + } + } + }, + "\/project\/oauth2\/wordpress": { + "patch": { + "summary": "Update project 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": { + "method": "updateOAuth2WordPress", + "group": "oauth2", + "cookies": false, + "type": "", + "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": { + "type": "string", + "description": "'Client ID' of WordPress OAuth2 app. For example: 130005", + "x-example": "<CLIENT_ID>", + "x-nullable": true + }, + "clientSecret": { + "type": "string", + "description": "'Client Secret' of WordPress OAuth2 app. For example: PlBfJS0000000000000000000000000000000000000000000000000000EdUZJk", + "x-example": "<CLIENT_SECRET>", + "x-nullable": true + }, + "enabled": { + "type": "boolean", + "description": "OAuth2 sign-in method status. Set to true to enable new session creation. Setting to true will trigger end-to-end credentials validation, and will throw if the credentials are invalid.", + "x-example": false, + "x-nullable": true + } + } + } + } + } + } + } + }, + "\/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": { + "method": "updateOAuth2X", + "group": "oauth2", + "cookies": false, + "type": "", + "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": { + "type": "string", + "description": "'Customer Key' of X OAuth2 app. For example: slzZV0000000000000NFLaWT", + "x-example": "<CUSTOMER_KEY>", + "x-nullable": true + }, + "secretKey": { + "type": "string", + "description": "'Secret Key' of X OAuth2 app. For example: tkEPkp00000000000000000000000000000000000000FTxbI9", + "x-example": "<SECRET_KEY>", + "x-nullable": true + }, + "enabled": { + "type": "boolean", + "description": "OAuth2 sign-in method status. Set to true to enable new session creation. Setting to true will trigger end-to-end credentials validation, and will throw if the credentials are invalid.", + "x-example": false, + "x-nullable": true + } + } + } + } + } + } + } + }, + "\/project\/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": { + "method": "updateOAuth2Yahoo", + "group": "oauth2", + "cookies": false, + "type": "", + "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": { + "type": "string", + "description": "'Client ID, also known as Customer Key' of Yahoo OAuth2 app. For example: dj0yJm000000000000000000000000000000000000000000000000000000000000000000000000000000000000Z4PWRm", + "x-example": "<CLIENT_ID>", + "x-nullable": true + }, + "clientSecret": { + "type": "string", + "description": "'Client Secret, also known as Customer Secret' of Yahoo OAuth2 app. For example: cf978f0000000000000000000000000000c5e2e9", + "x-example": "<CLIENT_SECRET>", + "x-nullable": true + }, + "enabled": { + "type": "boolean", + "description": "OAuth2 sign-in method status. Set to true to enable new session creation. Setting to true will trigger end-to-end credentials validation, and will throw if the credentials are invalid.", + "x-example": false, + "x-nullable": true + } + } + } + } + } + } + } + }, + "\/project\/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": { + "method": "updateOAuth2Yandex", + "group": "oauth2", + "cookies": false, + "type": "", + "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": { + "type": "string", + "description": "'Client ID' of Yandex OAuth2 app. For example: 6a8a6a0000000000000000000091483c", + "x-example": "<CLIENT_ID>", + "x-nullable": true + }, + "clientSecret": { + "type": "string", + "description": "'Client Secret' of Yandex OAuth2 app. For example: bbf98500000000000000000000c75a63", + "x-example": "<CLIENT_SECRET>", + "x-nullable": true + }, + "enabled": { + "type": "boolean", + "description": "OAuth2 sign-in method status. Set to true to enable new session creation. Setting to true will trigger end-to-end credentials validation, and will throw if the credentials are invalid.", + "x-example": false, + "x-nullable": true + } + } + } + } + } + } + } + }, + "\/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": { + "method": "updateOAuth2Zoho", + "group": "oauth2", + "cookies": false, + "type": "", + "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": { + "type": "string", + "description": "'Client ID' of Zoho OAuth2 app. For example: 1000.83C178000000000000000000RPNX0B", + "x-example": "<CLIENT_ID>", + "x-nullable": true + }, + "clientSecret": { + "type": "string", + "description": "'Client Secret' of Zoho OAuth2 app. For example: fb5cac000000000000000000000000000000a68f6e", + "x-example": "<CLIENT_SECRET>", + "x-nullable": true + }, + "enabled": { + "type": "boolean", + "description": "OAuth2 sign-in method status. Set to true to enable new session creation. Setting to true will trigger end-to-end credentials validation, and will throw if the credentials are invalid.", + "x-example": false, + "x-nullable": true + } + } + } + } + } + } + } + }, + "\/project\/oauth2\/zoom": { + "patch": { + "summary": "Update project OAuth2 Zoom", + "operationId": "projectUpdateOAuth2Zoom", + "tags": [ + "project" + ], + "description": "Update the project OAuth2 Zoom configuration.", + "responses": { + "200": { + "description": "OAuth2Zoom", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/oAuth2Zoom" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "method": "updateOAuth2Zoom", + "group": "oauth2", + "cookies": false, + "type": "", + "demo": "project\/update-o-auth-2-zoom.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "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": { + "type": "string", + "description": "'Client ID' of Zoom OAuth2 app. For example: QMAC00000000000000w0AQ", + "x-example": "<CLIENT_ID>", + "x-nullable": true + }, + "clientSecret": { + "type": "string", + "description": "'Client Secret' of Zoom OAuth2 app. For example: GAWsG4000000000000000000007U01ON", + "x-example": "<CLIENT_SECRET>", + "x-nullable": true + }, + "enabled": { + "type": "boolean", + "description": "OAuth2 sign-in method status. Set to true to enable new session creation. Setting to true will trigger end-to-end credentials validation, and will throw if the credentials are invalid.", + "x-example": false, + "x-nullable": true + } + } + } + } + } + } + } + }, + "\/project\/oauth2\/{providerId}": { + "get": { + "summary": "Get project OAuth2 provider", + "operationId": "projectGetOAuth2Provider", + "tags": [ + "project" + ], + "description": "Get a single OAuth2 provider configuration. Credential fields (client secret, p8 file, key\/team IDs) are write-only and always returned empty.", + "responses": { + "200": { + "description": "OAuth2GitHub, or OAuth2Discord, or OAuth2Figma, or OAuth2Dropbox, or OAuth2Dailymotion, or OAuth2Bitbucket, or OAuth2Bitly, or OAuth2Box, or OAuth2Autodesk, or OAuth2Google, or OAuth2Zoom, or OAuth2Zoho, or OAuth2Yandex, or OAuth2X, or OAuth2WordPress, or OAuth2Twitch, or OAuth2Stripe, or OAuth2Spotify, or OAuth2Slack, or OAuth2Podio, or OAuth2Notion, or OAuth2Salesforce, or OAuth2Yahoo, or OAuth2Linkedin, or OAuth2Disqus, or OAuth2Amazon, or OAuth2Etsy, or OAuth2Facebook, or OAuth2Tradeshift, or OAuth2Paypal, or OAuth2Gitlab, or OAuth2Authentik, or OAuth2Auth0, or OAuth2FusionAuth, or OAuth2Keycloak, or OAuth2Oidc, or OAuth2Apple, or OAuth2Okta, or OAuth2Kick, or OAuth2Microsoft", + "content": { + "application\/json": { + "schema": { + "oneOf": [ + { + "$ref": "#\/components\/schemas\/oAuth2Github" + }, + { + "$ref": "#\/components\/schemas\/oAuth2Discord" + }, + { + "$ref": "#\/components\/schemas\/oAuth2Figma" + }, + { + "$ref": "#\/components\/schemas\/oAuth2Dropbox" + }, + { + "$ref": "#\/components\/schemas\/oAuth2Dailymotion" + }, + { + "$ref": "#\/components\/schemas\/oAuth2Bitbucket" + }, + { + "$ref": "#\/components\/schemas\/oAuth2Bitly" + }, + { + "$ref": "#\/components\/schemas\/oAuth2Box" + }, + { + "$ref": "#\/components\/schemas\/oAuth2Autodesk" + }, + { + "$ref": "#\/components\/schemas\/oAuth2Google" + }, + { + "$ref": "#\/components\/schemas\/oAuth2Zoom" + }, + { + "$ref": "#\/components\/schemas\/oAuth2Zoho" + }, + { + "$ref": "#\/components\/schemas\/oAuth2Yandex" + }, + { + "$ref": "#\/components\/schemas\/oAuth2X" + }, + { + "$ref": "#\/components\/schemas\/oAuth2WordPress" + }, + { + "$ref": "#\/components\/schemas\/oAuth2Twitch" + }, + { + "$ref": "#\/components\/schemas\/oAuth2Stripe" + }, + { + "$ref": "#\/components\/schemas\/oAuth2Spotify" + }, + { + "$ref": "#\/components\/schemas\/oAuth2Slack" + }, + { + "$ref": "#\/components\/schemas\/oAuth2Podio" + }, + { + "$ref": "#\/components\/schemas\/oAuth2Notion" + }, + { + "$ref": "#\/components\/schemas\/oAuth2Salesforce" + }, + { + "$ref": "#\/components\/schemas\/oAuth2Yahoo" + }, + { + "$ref": "#\/components\/schemas\/oAuth2Linkedin" + }, + { + "$ref": "#\/components\/schemas\/oAuth2Disqus" + }, + { + "$ref": "#\/components\/schemas\/oAuth2Amazon" + }, + { + "$ref": "#\/components\/schemas\/oAuth2Etsy" + }, + { + "$ref": "#\/components\/schemas\/oAuth2Facebook" + }, + { + "$ref": "#\/components\/schemas\/oAuth2Tradeshift" + }, + { + "$ref": "#\/components\/schemas\/oAuth2Paypal" + }, + { + "$ref": "#\/components\/schemas\/oAuth2Gitlab" + }, + { + "$ref": "#\/components\/schemas\/oAuth2Authentik" + }, + { + "$ref": "#\/components\/schemas\/oAuth2Auth0" + }, + { + "$ref": "#\/components\/schemas\/oAuth2FusionAuth" + }, + { + "$ref": "#\/components\/schemas\/oAuth2Keycloak" + }, + { + "$ref": "#\/components\/schemas\/oAuth2Oidc" + }, + { + "$ref": "#\/components\/schemas\/oAuth2Apple" + }, + { + "$ref": "#\/components\/schemas\/oAuth2Okta" + }, + { + "$ref": "#\/components\/schemas\/oAuth2Kick" + }, + { + "$ref": "#\/components\/schemas\/oAuth2Microsoft" + } + ], + "discriminator": { + "propertyName": "$id", + "mapping": { + "github": "#\/components\/schemas\/oAuth2Github", + "discord": "#\/components\/schemas\/oAuth2Discord", + "figma": "#\/components\/schemas\/oAuth2Figma", + "dropbox": "#\/components\/schemas\/oAuth2Dropbox", + "dailymotion": "#\/components\/schemas\/oAuth2Dailymotion", + "bitbucket": "#\/components\/schemas\/oAuth2Bitbucket", + "bitly": "#\/components\/schemas\/oAuth2Bitly", + "box": "#\/components\/schemas\/oAuth2Box", + "autodesk": "#\/components\/schemas\/oAuth2Autodesk", + "google": "#\/components\/schemas\/oAuth2Google", + "zoom": "#\/components\/schemas\/oAuth2Zoom", + "zoho": "#\/components\/schemas\/oAuth2Zoho", + "yandex": "#\/components\/schemas\/oAuth2Yandex", + "x": "#\/components\/schemas\/oAuth2X", + "wordpress": "#\/components\/schemas\/oAuth2WordPress", + "twitch": "#\/components\/schemas\/oAuth2Twitch", + "stripe": "#\/components\/schemas\/oAuth2Stripe", + "spotify": "#\/components\/schemas\/oAuth2Spotify", + "slack": "#\/components\/schemas\/oAuth2Slack", + "podio": "#\/components\/schemas\/oAuth2Podio", + "notion": "#\/components\/schemas\/oAuth2Notion", + "salesforce": "#\/components\/schemas\/oAuth2Salesforce", + "yahoo": "#\/components\/schemas\/oAuth2Yahoo", + "linkedin": "#\/components\/schemas\/oAuth2Linkedin", + "disqus": "#\/components\/schemas\/oAuth2Disqus", + "amazon": "#\/components\/schemas\/oAuth2Amazon", + "etsy": "#\/components\/schemas\/oAuth2Etsy", + "facebook": "#\/components\/schemas\/oAuth2Facebook", + "tradeshift": "#\/components\/schemas\/oAuth2Tradeshift", + "tradeshiftBox": "#\/components\/schemas\/oAuth2Tradeshift", + "paypal": "#\/components\/schemas\/oAuth2Paypal", + "paypalSandbox": "#\/components\/schemas\/oAuth2Paypal", + "gitlab": "#\/components\/schemas\/oAuth2Gitlab", + "authentik": "#\/components\/schemas\/oAuth2Authentik", + "auth0": "#\/components\/schemas\/oAuth2Auth0", + "fusionauth": "#\/components\/schemas\/oAuth2FusionAuth", + "keycloak": "#\/components\/schemas\/oAuth2Keycloak", + "oidc": "#\/components\/schemas\/oAuth2Oidc", + "apple": "#\/components\/schemas\/oAuth2Apple", + "okta": "#\/components\/schemas\/oAuth2Okta", + "kick": "#\/components\/schemas\/oAuth2Kick", + "microsoft": "#\/components\/schemas\/oAuth2Microsoft" + } + } + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "method": "getOAuth2Provider", + "group": "oauth2", + "cookies": false, + "type": "", + "demo": "project\/get-o-auth-2-provider.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "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", + "x-example": "amazon", + "enum": [ + "amazon", + "apple", + "appwrite", + "auth0", + "authentik", + "autodesk", + "bitbucket", + "bitly", + "box", + "dailymotion", + "discord", + "disqus", + "dropbox", + "etsy", + "facebook", + "figma", + "fusionauth", + "github", + "gitlab", + "google", + "keycloak", + "kick", + "linkedin", + "microsoft", + "notion", + "oidc", + "okta", + "paypal", + "paypalSandbox", + "podio", + "salesforce", + "slack", + "spotify", + "stripe", + "tradeshift", + "tradeshiftBox", + "twitch", + "wordpress", + "x", + "yahoo", + "yammer", + "yandex", + "zoho", + "zoom" + ], + "x-enum-name": "ProjectOAuthProviderId", + "x-enum-keys": [ + "amazon", + "apple", + "appwrite", + "auth0", + "authentik", + "autodesk", + "bitbucket", + "bitly", + "box", + "dailymotion", + "discord", + "disqus", + "dropbox", + "etsy", + "facebook", + "figma", + "fusionauth", + "github", + "gitlab", + "google", + "keycloak", + "kick", + "linkedin", + "microsoft", + "notion", + "oidc", + "okta", + "paypal", + "paypalSandbox", + "podio", + "salesforce", + "slack", + "spotify", + "stripe", + "tradeshift", + "tradeshiftBox", + "twitch", + "wordpress", + "x", + "yahoo", + "yammer", + "yandex", + "zoho", + "zoom" + ] + }, + "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": { + "method": "listPlatforms", + "group": "platforms", + "cookies": false, + "type": "", + "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", + "x-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": { + "method": "createAndroidPlatform", + "group": "platforms", + "cookies": false, + "type": "", + "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": { + "type": "string", + "description": "Platform ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.", + "x-example": "<PLATFORM_ID>", + "x-appwrite": { + "idGenerator": "ID.unique" + } + }, + "name": { + "type": "string", + "description": "Platform name. Max length: 128 chars.", + "x-example": "<NAME>" + }, + "applicationId": { + "type": "string", + "description": "Android application ID. Max length: 256 chars.", + "x-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": { + "method": "updateAndroidPlatform", + "group": "platforms", + "cookies": false, + "type": "", + "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", + "x-example": "<PLATFORM_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "Platform name. Max length: 128 chars.", + "x-example": "<NAME>" + }, + "applicationId": { + "type": "string", + "description": "Android application ID. Max length: 256 chars.", + "x-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": { + "method": "createApplePlatform", + "group": "platforms", + "cookies": false, + "type": "", + "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": { + "type": "string", + "description": "Platform ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.", + "x-example": "<PLATFORM_ID>", + "x-appwrite": { + "idGenerator": "ID.unique" + } + }, + "name": { + "type": "string", + "description": "Platform name. Max length: 128 chars.", + "x-example": "<NAME>" + }, + "bundleIdentifier": { + "type": "string", + "description": "Apple bundle identifier. Max length: 256 chars.", + "x-example": "<BUNDLE_IDENTIFIER>" + } + }, + "required": [ + "platformId", + "name", + "bundleIdentifier" + ] + } + } + } + } + } + }, + "\/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": { + "method": "updateApplePlatform", + "group": "platforms", + "cookies": false, + "type": "", + "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", + "x-example": "<PLATFORM_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "Platform name. Max length: 128 chars.", + "x-example": "<NAME>" + }, + "bundleIdentifier": { + "type": "string", + "description": "Apple bundle identifier. Max length: 256 chars.", + "x-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": { + "method": "createLinuxPlatform", + "group": "platforms", + "cookies": false, + "type": "", + "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": { + "type": "string", + "description": "Platform ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.", + "x-example": "<PLATFORM_ID>", + "x-appwrite": { + "idGenerator": "ID.unique" + } + }, + "name": { + "type": "string", + "description": "Platform name. Max length: 128 chars.", + "x-example": "<NAME>" + }, + "packageName": { + "type": "string", + "description": "Linux package name. Max length: 256 chars.", + "x-example": "<PACKAGE_NAME>" + } + }, + "required": [ + "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": { + "method": "updateLinuxPlatform", + "group": "platforms", + "cookies": false, + "type": "", + "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", + "x-example": "<PLATFORM_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "Platform name. Max length: 128 chars.", + "x-example": "<NAME>" + }, + "packageName": { + "type": "string", + "description": "Linux package name. Max length: 256 chars.", + "x-example": "<PACKAGE_NAME>" + } + }, + "required": [ + "name", + "packageName" + ] + } + } + } + } + } + }, + "\/project\/platforms\/web": { + "post": { + "summary": "Create project web platform", + "operationId": "projectCreateWebPlatform", + "tags": [ + "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": { + "method": "createWebPlatform", + "group": "platforms", + "cookies": false, + "type": "", + "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": { + "type": "string", + "description": "Platform ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.", + "x-example": "<PLATFORM_ID>", + "x-appwrite": { + "idGenerator": "ID.unique" + } + }, + "name": { + "type": "string", + "description": "Platform name. Max length: 128 chars.", + "x-example": "<NAME>" + }, + "hostname": { + "type": "string", + "description": "Platform web hostname. Max length: 256 chars.", + "x-example": "app.example.com" + } + }, + "required": [ + "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": { + "method": "updateWebPlatform", + "group": "platforms", + "cookies": false, + "type": "", + "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", + "x-example": "<PLATFORM_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "Platform name. Max length: 128 chars.", + "x-example": "<NAME>" + }, + "hostname": { + "type": "string", + "description": "Platform web hostname. Max length: 256 chars.", + "x-example": "app.example.com" + } + }, + "required": [ + "name", + "hostname" + ] + } + } + } + } + } + }, + "\/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": { + "method": "createWindowsPlatform", + "group": "platforms", + "cookies": false, + "type": "", + "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": { + "type": "string", + "description": "Platform ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.", + "x-example": "<PLATFORM_ID>", + "x-appwrite": { + "idGenerator": "ID.unique" + } + }, + "name": { + "type": "string", + "description": "Platform name. Max length: 128 chars.", + "x-example": "<NAME>" + }, + "packageIdentifierName": { + "type": "string", + "description": "Windows package identifier name. Max length: 256 chars.", + "x-example": "<PACKAGE_IDENTIFIER_NAME>" + } + }, + "required": [ + "platformId", + "name", + "packageIdentifierName" + ] + } + } + } + } + } + }, + "\/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": { + "method": "updateWindowsPlatform", + "group": "platforms", + "cookies": false, + "type": "", + "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", + "x-example": "<PLATFORM_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "Platform name. Max length: 128 chars.", + "x-example": "<NAME>" + }, + "packageIdentifierName": { + "type": "string", + "description": "Windows package identifier name. Max length: 256 chars.", + "x-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": { + "method": "getPlatform", + "group": "platforms", + "cookies": false, + "type": "", + "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", + "x-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": { + "method": "deletePlatform", + "group": "platforms", + "cookies": false, + "type": "", + "demo": "project\/delete-platform.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "platforms.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "platformId", + "description": "Platform ID.", + "required": true, + "schema": { + "type": "string", + "x-example": "<PLATFORM_ID>" + }, + "in": "path" + } + ] + } + }, + "\/project\/policies": { + "get": { + "summary": "List project policies", + "operationId": "projectListPolicies", + "tags": [ + "project" + ], + "description": "Get a list of all project policies and their current configuration.", + "responses": { + "200": { + "description": "Policies List", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/policyList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "method": "listPolicies", + "group": "policies", + "cookies": false, + "type": "", + "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", + "x-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": { + "method": "updateDenyAliasedEmailPolicy", + "group": "policies", + "cookies": false, + "type": "", + "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": { + "type": "boolean", + "description": "Set whether or not to block aliased emails during signup and email updates.", + "x-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": { + "method": "updateDenyCorporateEmailPolicy", + "group": "policies", + "cookies": false, + "type": "", + "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": { + "type": "boolean", + "description": "Set whether or not to restrict sign-ups and email updates to corporate email addresses only.", + "x-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": { + "method": "updateDenyDisposableEmailPolicy", + "group": "policies", + "cookies": false, + "type": "", + "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": { + "type": "boolean", + "description": "Set whether or not to block disposable email addresses during signup and email updates.", + "x-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": { + "method": "updateDenyFreeEmailPolicy", + "group": "policies", + "cookies": false, + "type": "", + "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": { + "type": "boolean", + "description": "Set whether or not to block free email addresses during signup and email updates.", + "x-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": { + "method": "updateMembershipPrivacyPolicy", + "group": "policies", + "cookies": false, + "type": "", + "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": { + "type": "boolean", + "description": "Set to true if you want make user ID visible to all team members, or false to hide it.", + "x-example": false + }, + "userEmail": { + "type": "boolean", + "description": "Set to true if you want make user email visible to all team members, or false to hide it.", + "x-example": false + }, + "userPhone": { + "type": "boolean", + "description": "Set to true if you want make user phone number visible to all team members, or false to hide it.", + "x-example": false + }, + "userName": { + "type": "boolean", + "description": "Set to true if you want make user name visible to all team members, or false to hide it.", + "x-example": false + }, + "userMFA": { + "type": "boolean", + "description": "Set to true if you want make user MFA status visible to all team members, or false to hide it.", + "x-example": false + }, + "userAccessedAt": { + "type": "boolean", + "description": "Set to true if you want make user last access time visible to all team members, or false to hide it.", + "x-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": { + "method": "updatePasswordDictionaryPolicy", + "group": "policies", + "cookies": false, + "type": "", + "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": { + "type": "boolean", + "description": "Toggle password dictionary policy. Set to true if you want password change to block passwords in the dictionary, or false to allow them. When changing this policy, existing passwords remain valid.", + "x-example": false + } + }, + "required": [ + "enabled" + ] + } + } + } + } + } + }, + "\/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": { + "method": "updatePasswordHistoryPolicy", + "group": "policies", + "cookies": false, + "type": "", + "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": { + "type": "integer", + "description": "Set the password history length per user. Value can be between 1 and 5000, or null to disable the limit.", + "x-example": 1, + "format": "int32", + "x-nullable": true + } + }, + "required": [ + "total" + ] + } + } + } + } + } + }, + "\/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": { + "method": "updatePasswordPersonalDataPolicy", + "group": "policies", + "cookies": false, + "type": "", + "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": { + "type": "boolean", + "description": "Toggle password personal data policy. Set to true if you want to block passwords including user's personal data, or false to allow it. When changing this policy, existing passwords remain valid.", + "x-example": false + } + }, + "required": [ + "enabled" + ] + } + } + } + } + } + }, + "\/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": { + "method": "updatePasswordStrengthPolicy", + "group": "policies", + "cookies": false, + "type": "", + "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": { + "type": "integer", + "description": "Minimum password length. Value must be between 8 and 256. Default is 8.", + "x-example": 8, + "format": "int32" + }, + "uppercase": { + "type": "boolean", + "description": "Whether passwords must include at least one uppercase letter.", + "x-example": false + }, + "lowercase": { + "type": "boolean", + "description": "Whether passwords must include at least one lowercase letter.", + "x-example": false + }, + "number": { + "type": "boolean", + "description": "Whether passwords must include at least one number.", + "x-example": false + }, + "symbols": { + "type": "boolean", + "description": "Whether passwords must include at least one symbol.", + "x-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": { + "method": "updateSessionAlertPolicy", + "group": "policies", + "cookies": false, + "type": "", + "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": { + "type": "boolean", + "description": "Toggle session alert policy. Set to true if you want users to receive email notifications when a sessions are created for their users, or false to not send email alerts.", + "x-example": false + } + }, + "required": [ + "enabled" + ] + } + } + } + } + } + }, + "\/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": { + "method": "updateSessionDurationPolicy", + "group": "policies", + "cookies": false, + "type": "", + "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": { + "type": "integer", + "description": "Maximum session length in seconds. Minium allowed value is 5 second, and maximum is 1 year, which is 31536000 seconds.", + "x-example": 5, + "format": "int32" + } + }, + "required": [ + "duration" + ] + } + } + } + } + } + }, + "\/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": { + "method": "updateSessionInvalidationPolicy", + "group": "policies", + "cookies": false, + "type": "", + "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": { @@ -46473,7 +53960,10 @@ "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "sites.read", + "scope": [ + "public", + "sites.read" + ], "platforms": [ "console", "server" @@ -46534,6 +54024,17 @@ "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", + "x-example": "<TOKEN>", + "default": "" + }, + "in": "query" } ] } @@ -48808,6 +56309,13 @@ "description": "Database specification. Defaults to `serverless`, which creates the database on the shared pool. Any other value provisions a dedicated database on that specification.", "default": "serverless", "x-example": "serverless" + }, + "replicas": { + "type": "integer", + "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.", + "default": 0, + "x-example": 0, + "format": "int32" } }, "required": [ @@ -48820,6 +56328,56 @@ } } }, + "\/tablesdb\/specifications": { + "get": { + "summary": "List dedicated database specifications.", + "operationId": "tablesDBListSpecifications", + "tags": [ + "tablesDB" + ], + "description": "List the dedicated database specifications available on the current plan. Each specification reports its resource limits, pricing, and whether it is enabled for the organization.", + "responses": { + "200": { + "description": "SpecificationList", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/dedicatedDatabaseSpecificationList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "method": "listSpecifications", + "group": "databases", + "cookies": false, + "type": "", + "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", @@ -49105,58 +56663,212 @@ "schema": { "type": "object", "properties": { - "commit": { - "type": "boolean", - "description": "Commit transaction?", - "default": false, - "x-example": false - }, - "rollback": { - "type": "boolean", - "description": "Rollback transaction?", - "default": false, - "x-example": false + "commit": { + "type": "boolean", + "description": "Commit transaction?", + "default": false, + "x-example": false + }, + "rollback": { + "type": "boolean", + "description": "Rollback transaction?", + "default": false, + "x-example": false + } + } + } + } + } + } + }, + "delete": { + "summary": "Delete transaction", + "operationId": "tablesDBDeleteTransaction", + "tags": [ + "tablesDB" + ], + "description": "Delete a transaction by its unique ID.", + "responses": { + "204": { + "description": "No content" + } + }, + "deprecated": false, + "x-appwrite": { + "method": "deleteTransaction", + "group": "transactions", + "cookies": false, + "type": "", + "demo": "tablesdb\/delete-transaction.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": [ + "documents.write", + "rows.write" + ], + "platforms": [ + "console", + "server", + "client" + ], + "packaging": false, + "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/delete-transaction.md", + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [], + "Session": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "transactionId", + "description": "Transaction ID.", + "required": true, + "schema": { + "type": "string", + "x-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": { + "method": "createOperations", + "group": "transactions", + "cookies": false, + "type": "", + "demo": "tablesdb\/create-operations.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": [ + "documents.write", + "rows.write" + ], + "platforms": [ + "console", + "server", + "client" + ], + "packaging": false, + "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/create-operations.md", + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [], + "Session": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "transactionId", + "description": "Transaction ID.", + "required": true, + "schema": { + "type": "string", + "x-example": "<TRANSACTION_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "operations": { + "type": "array", + "description": "Array of staged operations.", + "default": [], + "x-example": "[\n\t {\n\t \"action\": \"create\",\n\t \"databaseId\": \"<DATABASE_ID>\",\n\t \"tableId\": \"<TABLE_ID>\",\n\t \"rowId\": \"<ROW_ID>\",\n\t \"data\": {\n\t \"name\": \"Walter O'Brien\"\n\t }\n\t }\n\t]", + "items": { + "type": "object" + } } } } } } } - }, - "delete": { - "summary": "Delete transaction", - "operationId": "tablesDBDeleteTransaction", + } + }, + "\/tablesdb\/{databaseId}": { + "get": { + "summary": "Get database", + "operationId": "tablesDBGet", "tags": [ "tablesDB" ], - "description": "Delete a transaction by its unique ID.", + "description": "Get a database by its unique ID. This endpoint response returns a JSON object with the database metadata.", "responses": { - "204": { - "description": "No content" + "200": { + "description": "Database", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/database" + } + } + } } }, "deprecated": false, "x-appwrite": { - "method": "deleteTransaction", - "group": "transactions", + "method": "get", + "group": "tablesdb", "cookies": false, "type": "", - "demo": "tablesdb\/delete-transaction.md", + "demo": "tablesdb\/get.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": [ - "documents.write", - "rows.write" - ], + "scope": "databases.read", "platforms": [ "console", - "server", - "client" + "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/delete-transaction.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/get.md", "auth": { "Project": [], "Key": [] @@ -49165,40 +56877,36 @@ "security": [ { "Project": [], - "Key": [], - "Session": [], - "JWT": [] + "Key": [] } ], "parameters": [ { - "name": "transactionId", - "description": "Transaction ID.", + "name": "databaseId", + "description": "Database ID.", "required": true, "schema": { "type": "string", - "x-example": "<TRANSACTION_ID>" + "x-example": "<DATABASE_ID>" }, "in": "path" } ] - } - }, - "\/tablesdb\/transactions\/{transactionId}\/operations": { - "post": { - "summary": "Create operations", - "operationId": "tablesDBCreateOperations", + }, + "put": { + "summary": "Update database", + "operationId": "tablesDBUpdate", "tags": [ "tablesDB" ], - "description": "Create multiple operations in a single transaction.", + "description": "Update a database by its unique ID.", "responses": { - "201": { - "description": "Transaction", + "200": { + "description": "Database", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/transaction" + "$ref": "#\/components\/schemas\/database" } } } @@ -49206,26 +56914,22 @@ }, "deprecated": false, "x-appwrite": { - "method": "createOperations", - "group": "transactions", + "method": "update", + "group": "tablesdb", "cookies": false, "type": "", - "demo": "tablesdb\/create-operations.md", + "demo": "tablesdb\/update.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": [ - "documents.write", - "rows.write" - ], + "scope": "databases.write", "platforms": [ "console", - "server", - "client" + "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/create-operations.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/update.md", "auth": { "Project": [], "Key": [] @@ -49234,19 +56938,17 @@ "security": [ { "Project": [], - "Key": [], - "Session": [], - "JWT": [] + "Key": [] } ], "parameters": [ { - "name": "transactionId", - "description": "Transaction ID.", + "name": "databaseId", + "description": "Database ID.", "required": true, "schema": { "type": "string", - "x-example": "<TRANSACTION_ID>" + "x-example": "<DATABASE_ID>" }, "in": "path" } @@ -49257,60 +56959,60 @@ "schema": { "type": "object", "properties": { - "operations": { - "type": "array", - "description": "Array of staged operations.", - "default": [], - "x-example": "[\n\t {\n\t \"action\": \"create\",\n\t \"databaseId\": \"<DATABASE_ID>\",\n\t \"tableId\": \"<TABLE_ID>\",\n\t \"rowId\": \"<ROW_ID>\",\n\t \"data\": {\n\t \"name\": \"Walter O'Brien\"\n\t }\n\t }\n\t]", - "items": { - "type": "object" - } + "name": { + "type": "string", + "description": "Database name. Max length: 128 chars.", + "x-example": "<NAME>" + }, + "enabled": { + "type": "boolean", + "description": "Is database enabled? When set to 'disabled', users cannot access the database but Server SDKs with an API key can still read and write to the database. No data is lost when this is toggled.", + "default": true, + "x-example": false + }, + "replicas": { + "type": "integer", + "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.", + "x-example": 0, + "format": "int32", + "x-nullable": true } } } } } } - } - }, - "\/tablesdb\/{databaseId}": { - "get": { - "summary": "Get database", - "operationId": "tablesDBGet", + }, + "delete": { + "summary": "Delete database", + "operationId": "tablesDBDelete", "tags": [ "tablesDB" ], - "description": "Get a database by its unique ID. This endpoint response returns a JSON object with the database metadata.", + "description": "Delete a database by its unique ID. Only API keys with with databases.write scope can delete a database.", "responses": { - "200": { - "description": "Database", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/database" - } - } - } + "204": { + "description": "No content" } }, "deprecated": false, "x-appwrite": { - "method": "get", + "method": "delete", "group": "tablesdb", "cookies": false, "type": "", - "demo": "tablesdb\/get.md", + "demo": "tablesdb\/delete.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "databases.read", + "scope": "databases.write", "platforms": [ "console", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/get.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/delete.md", "auth": { "Project": [], "Key": [] @@ -49334,21 +57036,23 @@ "in": "path" } ] - }, - "put": { - "summary": "Update database", - "operationId": "tablesDBUpdate", + } + }, + "\/tablesdb\/{databaseId}\/failovers": { + "post": { + "summary": "Trigger manual failover.", + "operationId": "tablesDBCreateFailover", "tags": [ "tablesDB" ], - "description": "Update a database by its unique ID.", + "description": "Trigger a manual failover for a dedicated database with high availability enabled. Promotes a replica to primary. The failover runs asynchronously; poll the database document for status updates.", "responses": { - "200": { - "description": "Database", + "202": { + "description": "DedicatedDatabase", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/database" + "$ref": "#\/components\/schemas\/dedicatedDatabase" } } } @@ -49356,11 +57060,11 @@ }, "deprecated": false, "x-appwrite": { - "method": "update", - "group": "tablesdb", + "method": "createFailover", + "group": "databases", "cookies": false, "type": "", - "demo": "tablesdb\/update.md", + "demo": "tablesdb\/create-failover.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", @@ -49371,7 +57075,6 @@ ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/update.md", "auth": { "Project": [], "Key": [] @@ -49401,53 +57104,118 @@ "schema": { "type": "object", "properties": { - "name": { + "targetReplicaId": { "type": "string", - "description": "Database name. Max length: 128 chars.", - "x-example": "<NAME>" - }, - "enabled": { - "type": "boolean", - "description": "Is database enabled? When set to 'disabled', users cannot access the database but Server SDKs with an API key can still read and write to the database. No data is lost when this is toggled.", - "default": true, - "x-example": false + "description": "Target replica ID to promote. If not specified, the healthiest replica is selected.", + "x-example": "<TARGET_REPLICA_ID>", + "x-nullable": true } } } } } } - }, - "delete": { - "summary": "Delete database", - "operationId": "tablesDBDelete", + } + }, + "\/tablesdb\/{databaseId}\/replicas": { + "get": { + "summary": "Get replica status.", + "operationId": "tablesDBGetReplicas", "tags": [ "tablesDB" ], - "description": "Delete a database by its unique ID. Only API keys with with databases.write scope can delete a database.", + "description": "Get high availability status for a dedicated database. Returns replica statuses, replication lag, and sync mode.", "responses": { - "204": { - "description": "No content" + "200": { + "description": "Replicas", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/dedicatedDatabaseReplicas" + } + } + } } }, "deprecated": false, "x-appwrite": { - "method": "delete", - "group": "tablesdb", + "method": "getReplicas", + "group": "databases", "cookies": false, "type": "", - "demo": "tablesdb\/delete.md", + "demo": "tablesdb\/get-replicas.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "databases.write", + "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", + "x-example": "<DATABASE_ID>" + }, + "in": "path" + } + ] + } + }, + "\/tablesdb\/{databaseId}\/status": { + "get": { + "summary": "Get database 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": { + "method": "getStatus", + "group": "databases", + "cookies": false, + "type": "", + "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, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/delete.md", "auth": { "Project": [], "Key": [] @@ -55450,7 +63218,6 @@ "rowId": { "type": "string", "description": "Row ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.", - "default": "", "x-example": "<ROW_ID>", "x-appwrite": { "idGenerator": "ID.unique" @@ -55459,7 +63226,7 @@ "data": { "type": "object", "description": "Row data as JSON object.", - "default": [], + "default": {}, "x-example": "{\"username\":\"walter.obrien\",\"email\":\"walter.obrien@example.com\",\"fullName\":\"Walter O'Brien\",\"age\":30,\"isAdmin\":false}" }, "permissions": { @@ -55486,7 +63253,11 @@ "x-example": "<TRANSACTION_ID>", "x-nullable": true } - } + }, + "required": [ + "rowId", + "data" + ] } } } @@ -58032,21 +65803,21 @@ ] } }, - "\/usage\/events": { + "\/users": { "get": { - "summary": "List usage events", - "operationId": "usageListEvents", + "summary": "List users", + "operationId": "usersList", "tags": [ - "usage" + "users" ], - "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).", + "description": "Get a list of all the project's users. You can use the query params to filter your results.", "responses": { "200": { - "description": "usageEventList", + "description": "Users List", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/usageEventList" + "$ref": "#\/components\/schemas\/userList" } } } @@ -58054,21 +65825,22 @@ }, "deprecated": false, "x-appwrite": { - "method": "listEvents", - "group": "events", + "method": "list", + "group": "users", "cookies": false, "type": "", - "demo": "usage\/list-events.md", - "rate-limit": 60, - "rate-time": 60, - "rate-key": "projectId:{project.$id}", - "scope": "usage.read", + "demo": "users\/list.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "users.read", "platforms": [ "console", "server" ], "packaging": false, "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/users\/list-users.md", "auth": { "Project": [], "Key": [] @@ -58081,44 +65853,9 @@ } ], "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.", - "required": true, - "schema": { - "type": "array", - "items": { - "type": "string" - } - }, - "in": "query" - }, { "name": "queries", - "description": "Up to 10 filter queries in Utopia syntax. Allowed attributes: path, method, status, service, resourceType, resourceId, teamId, country, region, hostname, ip, osName, clientType, clientName, deviceName. 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", - "x-example": "1m" - }, - "in": "query" - }, - { - "name": "dimensions", - "description": "Break-down dimensions (max 10). Allowed: path, method, status, service, resourceType, country, region, hostname, ip, osName, clientType, clientName, deviceName, teamId, resourceId.", + "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/queries). Maximum of 100 queries are allowed, each 4096 characters long. You may filter on the following attributes: name, email, phone, status, passwordUpdate, registration, emailVerification, phoneVerification, labels, impersonator, accessedAt", "required": false, "schema": { "type": "array", @@ -58130,93 +65867,329 @@ "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", - "x-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.", + "name": "search", + "description": "Search term to filter your list results. Max length: 256 chars.", "required": false, "schema": { "type": "string", - "format": "datetime", - "x-example": "2020-10-15T06:38:00.000+00:00", + "x-example": "<SEARCH>", "default": "" }, "in": "query" }, { - "name": "orderBy", - "description": "Column to order by. Allowed: time, value. Default time when an interval is set; otherwise value.", + "name": "total", + "description": "When set to false, the total count returned will be 0 and will not be calculated.", "required": false, "schema": { - "type": "string", - "x-example": "time", - "default": "time" + "type": "boolean", + "x-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": { + "method": "create", + "group": "users", + "cookies": false, + "type": "", + "demo": "users\/create.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "users.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/users\/create-user.md", + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ { - "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", - "x-example": "asc", - "default": "desc" - }, - "in": "query" - }, + "Project": [], + "Key": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "userId": { + "type": "string", + "description": "User ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.", + "x-example": "<USER_ID>", + "x-appwrite": { + "idGenerator": "ID.unique" + } + }, + "email": { + "type": "string", + "description": "User email.", + "x-example": "email@example.com", + "format": "email", + "x-nullable": true + }, + "phone": { + "type": "string", + "description": "Phone number. Format this number with a leading '+' and a country code, e.g., +16175551212.", + "x-example": "+12065550100", + "format": "phone", + "x-nullable": true + }, + "password": { + "type": "string", + "description": "Plain text user password. Must be at least 8 chars.", + "default": "", + "x-example": "password", + "format": "password" + }, + "name": { + "type": "string", + "description": "User name. Max length: 128 chars.", + "default": "", + "x-example": "<NAME>" + } + }, + "required": [ + "userId" + ] + } + } + } + } + } + }, + "\/users\/argon2": { + "post": { + "summary": "Create user with Argon2 password", + "operationId": "usersCreateArgon2User", + "tags": [ + "users" + ], + "description": "Create a new user. Password provided must be hashed with the [Argon2](https:\/\/en.wikipedia.org\/wiki\/Argon2) algorithm. Use the [POST \/users](https:\/\/appwrite.io\/docs\/server\/users#usersCreate) endpoint to create users with a plain text password.", + "responses": { + "201": { + "description": "User", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/user" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "method": "createArgon2User", + "group": "users", + "cookies": false, + "type": "", + "demo": "users\/create-argon-2-user.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "users.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/users\/create-argon2-user.md", + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ { - "name": "limit", - "description": "Maximum rows to return (1-5000).", - "required": false, - "schema": { - "type": "integer", - "format": "int32", - "x-example": 1, - "default": 500 - }, - "in": "query" - }, + "Project": [], + "Key": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "userId": { + "type": "string", + "description": "User ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.", + "x-example": "<USER_ID>", + "x-appwrite": { + "idGenerator": "ID.unique" + } + }, + "email": { + "type": "string", + "description": "User email.", + "x-example": "email@example.com", + "format": "email" + }, + "password": { + "type": "string", + "description": "User password hashed using Argon2.", + "x-example": "password", + "format": "password" + }, + "name": { + "type": "string", + "description": "User name. Max length: 128 chars.", + "default": "", + "x-example": "<NAME>" + } + }, + "required": [ + "userId", + "email", + "password" + ] + } + } + } + } + } + }, + "\/users\/bcrypt": { + "post": { + "summary": "Create user with bcrypt password", + "operationId": "usersCreateBcryptUser", + "tags": [ + "users" + ], + "description": "Create a new user. Password provided must be hashed with the [Bcrypt](https:\/\/en.wikipedia.org\/wiki\/Bcrypt) algorithm. Use the [POST \/users](https:\/\/appwrite.io\/docs\/server\/users#usersCreate) endpoint to create users with a plain text password.", + "responses": { + "201": { + "description": "User", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/user" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "method": "createBcryptUser", + "group": "users", + "cookies": false, + "type": "", + "demo": "users\/create-bcrypt-user.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "users.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/users\/create-bcrypt-user.md", + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ { - "name": "offset", - "description": "Pagination offset (0-100000).", - "required": false, - "schema": { - "type": "integer", - "format": "int32", - "x-example": 0, - "default": 0 - }, - "in": "query" + "Project": [], + "Key": [] } - ] + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "userId": { + "type": "string", + "description": "User ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.", + "x-example": "<USER_ID>", + "x-appwrite": { + "idGenerator": "ID.unique" + } + }, + "email": { + "type": "string", + "description": "User email.", + "x-example": "email@example.com", + "format": "email" + }, + "password": { + "type": "string", + "description": "User password hashed using Bcrypt.", + "x-example": "password", + "format": "password" + }, + "name": { + "type": "string", + "description": "User name. Max length: 128 chars.", + "default": "", + "x-example": "<NAME>" + } + }, + "required": [ + "userId", + "email", + "password" + ] + } + } + } + } } }, - "\/usage\/gauges": { + "\/users\/identities": { "get": { - "summary": "List usage gauges", - "operationId": "usageListGauges", + "summary": "List identities", + "operationId": "usersListIdentities", "tags": [ - "usage" + "users" ], - "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\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`. `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`). `queries[]` filters the underlying rows using the standard Utopia query syntax \u2014 `equal(\"resourceType\", [\"bucket\"])`, `equal(\"resourceId\", [\"abc123\"])`, `equal(\"teamId\", [\"team_x\"])`, `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).", + "description": "Get identities for all users.", "responses": { "200": { - "description": "usageGaugeList", + "description": "Identities List", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/usageGaugeList" + "$ref": "#\/components\/schemas\/identityList" } } } @@ -58224,21 +66197,22 @@ }, "deprecated": false, "x-appwrite": { - "method": "listGauges", - "group": "gauges", + "method": "listIdentities", + "group": "identities", "cookies": false, "type": "", - "demo": "usage\/list-gauges.md", - "rate-limit": 60, - "rate-time": 60, - "rate-key": "projectId:{project.$id}", - "scope": "usage.read", + "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, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/users\/list-identities.md", "auth": { "Project": [], "Key": [] @@ -58251,44 +66225,9 @@ } ], "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" - } - }, - "in": "query" - }, { "name": "queries", - "description": "Up to 10 filter queries in Utopia syntax. Allowed attributes: service, resourceType, resourceId, teamId. 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", - "x-example": "1m" - }, - "in": "query" - }, - { - "name": "dimensions", - "description": "Break-down dimensions. Allowed: resourceId, teamId, service, resourceType.", + "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more 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", @@ -58300,93 +66239,101 @@ "in": "query" }, { - "name": "startAt", - "description": "Range start in ISO 8601. Defaults to endAt - 7d.", + "name": "search", + "description": "Search term to filter your list results. Max length: 256 chars.", "required": false, "schema": { "type": "string", - "format": "datetime", - "x-example": "2020-10-15T06:38:00.000+00:00", + "x-example": "<SEARCH>", "default": "" }, "in": "query" }, { - "name": "endAt", - "description": "Range end in ISO 8601. Defaults to the current time.", + "name": "total", + "description": "When set to false, the total count returned will be 0 and will not be calculated.", "required": false, "schema": { - "type": "string", - "format": "datetime", - "x-example": "2020-10-15T06:38:00.000+00:00", - "default": "" + "type": "boolean", + "x-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": { + "method": "deleteIdentity", + "group": "identities", + "cookies": false, + "type": "", + "demo": "users\/delete-identity.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "users.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/users\/delete-identity.md", + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ { - "name": "orderBy", - "description": "Column to order by. Allowed: time, value. Default time.", - "required": false, - "schema": { - "type": "string", - "x-example": "time", - "default": "time" - }, - "in": "query" - }, + "Project": [], + "Key": [] + } + ], + "parameters": [ { - "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, + "name": "identityId", + "description": "Identity ID.", + "required": true, "schema": { "type": "string", - "x-example": "asc", - "default": "desc" - }, - "in": "query" - }, - { - "name": "limit", - "description": "Maximum rows to return (1-5000).", - "required": false, - "schema": { - "type": "integer", - "format": "int32", - "x-example": 1, - "default": 500 - }, - "in": "query" - }, - { - "name": "offset", - "description": "Pagination offset (0-100000).", - "required": false, - "schema": { - "type": "integer", - "format": "int32", - "x-example": 0, - "default": 0 + "x-example": "<IDENTITY_ID>" }, - "in": "query" + "in": "path" } ] } }, - "\/users": { - "get": { - "summary": "List users", - "operationId": "usersList", + "\/users\/md5": { + "post": { + "summary": "Create user with MD5 password", + "operationId": "usersCreateMD5User", "tags": [ "users" ], - "description": "Get a list of all the project's users. You can use the query params to filter your results.", + "description": "Create a new user. Password provided must be hashed with the [MD5](https:\/\/en.wikipedia.org\/wiki\/MD5) algorithm. Use the [POST \/users](https:\/\/appwrite.io\/docs\/server\/users#usersCreate) endpoint to create users with a plain text password.", "responses": { - "200": { - "description": "Users List", + "201": { + "description": "User", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/userList" + "$ref": "#\/components\/schemas\/user" } } } @@ -58394,22 +66341,22 @@ }, "deprecated": false, "x-appwrite": { - "method": "list", + "method": "createMD5User", "group": "users", "cookies": false, "type": "", - "demo": "users\/list.md", + "demo": "users\/create-md-5-user.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "users.read", + "scope": "users.write", "platforms": [ "console", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/users\/list-users.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/users\/create-md5-user.md", "auth": { "Project": [], "Key": [] @@ -58421,51 +66368,58 @@ "Key": [] } ], - "parameters": [ - { - "name": "queries", - "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/queries). Maximum of 100 queries are allowed, each 4096 characters long. You may filter on the following attributes: name, email, phone, status, passwordUpdate, registration, emailVerification, phoneVerification, 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", - "x-example": "<SEARCH>", - "default": "" - }, - "in": "query" - }, - { - "name": "total", - "description": "When set to false, the total count returned will be 0 and will not be calculated.", - "required": false, - "schema": { - "type": "boolean", - "x-example": false, - "default": true - }, - "in": "query" + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "userId": { + "type": "string", + "description": "User ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.", + "x-example": "<USER_ID>", + "x-appwrite": { + "idGenerator": "ID.unique" + } + }, + "email": { + "type": "string", + "description": "User email.", + "x-example": "email@example.com", + "format": "email" + }, + "password": { + "type": "string", + "description": "User password hashed using MD5.", + "x-example": "password", + "format": "password" + }, + "name": { + "type": "string", + "description": "User name. Max length: 128 chars.", + "default": "", + "x-example": "<NAME>" + } + }, + "required": [ + "userId", + "email", + "password" + ] + } + } } - ] - }, + } + } + }, + "\/users\/phpass": { "post": { - "summary": "Create user", - "operationId": "usersCreate", + "summary": "Create user with PHPass password", + "operationId": "usersCreatePHPassUser", "tags": [ "users" ], - "description": "Create a new user.", + "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", @@ -58480,11 +66434,11 @@ }, "deprecated": false, "x-appwrite": { - "method": "create", + "method": "createPHPassUser", "group": "users", "cookies": false, "type": "", - "demo": "users\/create.md", + "demo": "users\/create-ph-pass-user.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", @@ -58495,7 +66449,7 @@ ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/users\/create-user.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/users\/create-phpass-user.md", "auth": { "Project": [], "Key": [] @@ -58515,7 +66469,7 @@ "properties": { "userId": { "type": "string", - "description": "User ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.", + "description": "User ID. Choose a custom ID or pass the string `ID.unique()`to auto generate it. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.", "x-example": "<USER_ID>", "x-appwrite": { "idGenerator": "ID.unique" @@ -58525,20 +66479,11 @@ "type": "string", "description": "User email.", "x-example": "email@example.com", - "format": "email", - "x-nullable": true - }, - "phone": { - "type": "string", - "description": "Phone number. Format this number with a leading '+' and a country code, e.g., +16175551212.", - "x-example": "+12065550100", - "format": "phone", - "x-nullable": true + "format": "email" }, "password": { "type": "string", - "description": "Plain text user password. Must be at least 8 chars.", - "default": "", + "description": "User password hashed using PHPass.", "x-example": "password", "format": "password" }, @@ -58550,7 +66495,9 @@ } }, "required": [ - "userId" + "userId", + "email", + "password" ] } } @@ -58558,14 +66505,14 @@ } } }, - "\/users\/argon2": { + "\/users\/scrypt": { "post": { - "summary": "Create user with Argon2 password", - "operationId": "usersCreateArgon2User", + "summary": "Create user with Scrypt password", + "operationId": "usersCreateScryptUser", "tags": [ "users" ], - "description": "Create a new user. Password provided must be hashed with the [Argon2](https:\/\/en.wikipedia.org\/wiki\/Argon2) algorithm. Use the [POST \/users](https:\/\/appwrite.io\/docs\/server\/users#usersCreate) endpoint to create users with a plain text password.", + "description": "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", @@ -58580,11 +66527,11 @@ }, "deprecated": false, "x-appwrite": { - "method": "createArgon2User", + "method": "createScryptUser", "group": "users", "cookies": false, "type": "", - "demo": "users\/create-argon-2-user.md", + "demo": "users\/create-scrypt-user.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", @@ -58595,7 +66542,7 @@ ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/users\/create-argon2-user.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/users\/create-scrypt-user.md", "auth": { "Project": [], "Key": [] @@ -58629,10 +66576,39 @@ }, "password": { "type": "string", - "description": "User password hashed using Argon2.", + "description": "User password hashed using Scrypt.", "x-example": "password", "format": "password" }, + "passwordSalt": { + "type": "string", + "description": "Optional salt used to hash password.", + "x-example": "<PASSWORD_SALT>" + }, + "passwordCpu": { + "type": "integer", + "description": "Optional CPU cost used to hash password.", + "x-example": null, + "format": "int32" + }, + "passwordMemory": { + "type": "integer", + "description": "Optional memory cost used to hash password.", + "x-example": null, + "format": "int32" + }, + "passwordParallel": { + "type": "integer", + "description": "Optional parallelization cost used to hash password.", + "x-example": null, + "format": "int32" + }, + "passwordLength": { + "type": "integer", + "description": "Optional hash length used to hash password.", + "x-example": null, + "format": "int32" + }, "name": { "type": "string", "description": "User name. Max length: 128 chars.", @@ -58643,7 +66619,12 @@ "required": [ "userId", "email", - "password" + "password", + "passwordSalt", + "passwordCpu", + "passwordMemory", + "passwordParallel", + "passwordLength" ] } } @@ -58651,14 +66632,14 @@ } } }, - "\/users\/bcrypt": { + "\/users\/scrypt-modified": { "post": { - "summary": "Create user with bcrypt password", - "operationId": "usersCreateBcryptUser", + "summary": "Create user with Scrypt modified password", + "operationId": "usersCreateScryptModifiedUser", "tags": [ "users" ], - "description": "Create a new user. Password provided must be hashed with the [Bcrypt](https:\/\/en.wikipedia.org\/wiki\/Bcrypt) algorithm. Use the [POST \/users](https:\/\/appwrite.io\/docs\/server\/users#usersCreate) endpoint to create users with a plain text password.", + "description": "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", @@ -58673,11 +66654,11 @@ }, "deprecated": false, "x-appwrite": { - "method": "createBcryptUser", + "method": "createScryptModifiedUser", "group": "users", "cookies": false, "type": "", - "demo": "users\/create-bcrypt-user.md", + "demo": "users\/create-scrypt-modified-user.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", @@ -58688,7 +66669,7 @@ ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/users\/create-bcrypt-user.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/users\/create-scrypt-modified-user.md", "auth": { "Project": [], "Key": [] @@ -58722,10 +66703,25 @@ }, "password": { "type": "string", - "description": "User password hashed using Bcrypt.", + "description": "User password hashed using Scrypt Modified.", "x-example": "password", "format": "password" }, + "passwordSalt": { + "type": "string", + "description": "Salt used to hash password.", + "x-example": "<PASSWORD_SALT>" + }, + "passwordSaltSeparator": { + "type": "string", + "description": "Salt separator used to hash password.", + "x-example": "<PASSWORD_SALT_SEPARATOR>" + }, + "passwordSignerKey": { + "type": "string", + "description": "Signer key used to hash password.", + "x-example": "<PASSWORD_SIGNER_KEY>" + }, "name": { "type": "string", "description": "User name. Max length: 128 chars.", @@ -58736,7 +66732,10 @@ "required": [ "userId", "email", - "password" + "password", + "passwordSalt", + "passwordSaltSeparator", + "passwordSignerKey" ] } } @@ -58744,21 +66743,21 @@ } } }, - "\/users\/identities": { - "get": { - "summary": "List identities", - "operationId": "usersListIdentities", + "\/users\/sha": { + "post": { + "summary": "Create user with SHA password", + "operationId": "usersCreateSHAUser", "tags": [ "users" ], - "description": "Get identities for all 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": { - "200": { - "description": "Identities List", + "201": { + "description": "User", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/identityList" + "$ref": "#\/components\/schemas\/user" } } } @@ -58766,22 +66765,22 @@ }, "deprecated": false, "x-appwrite": { - "method": "listIdentities", - "group": "identities", + "method": "createSHAUser", + "group": "users", "cookies": false, "type": "", - "demo": "users\/list-identities.md", + "demo": "users\/create-sha-user.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "users.read", + "scope": "users.write", "platforms": [ "console", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/users\/list-identities.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/users\/create-sha-user.md", "auth": { "Project": [], "Key": [] @@ -58793,53 +66792,151 @@ "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" - }, + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "userId": { + "type": "string", + "description": "User ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.", + "x-example": "<USER_ID>", + "x-appwrite": { + "idGenerator": "ID.unique" + } + }, + "email": { + "type": "string", + "description": "User email.", + "x-example": "email@example.com", + "format": "email" + }, + "password": { + "type": "string", + "description": "User password hashed using SHA.", + "x-example": "password", + "format": "password" + }, + "passwordVersion": { + "type": "string", + "description": "Optional SHA version used to hash password. Allowed values are: 'sha1', 'sha224', 'sha256', 'sha384', 'sha512\/224', 'sha512\/256', 'sha512', 'sha3-224', 'sha3-256', 'sha3-384', 'sha3-512'", + "x-example": "sha1", + "enum": [ + "sha1", + "sha224", + "sha256", + "sha384", + "sha512\/224", + "sha512\/256", + "sha512", + "sha3-224", + "sha3-256", + "sha3-384", + "sha3-512" + ], + "x-enum-name": "PasswordHash", + "x-enum-keys": [ + "sha1", + "sha224", + "sha256", + "sha384", + "sha512\/224", + "sha512\/256", + "sha512", + "sha3-224", + "sha3-256", + "sha3-384", + "sha3-512" + ] + }, + "name": { + "type": "string", + "description": "User name. Max length: 128 chars.", + "default": "", + "x-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": { + "method": "get", + "group": "users", + "cookies": false, + "type": "", + "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, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/users\/get-user.md", + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ { - "name": "search", - "description": "Search term to filter your list results. Max length: 256 chars.", - "required": false, - "schema": { - "type": "string", - "x-example": "<SEARCH>", - "default": "" - }, - "in": "query" - }, + "Project": [], + "Key": [] + } + ], + "parameters": [ { - "name": "total", - "description": "When set to false, the total count returned will be 0 and will not be calculated.", - "required": false, + "name": "userId", + "description": "User ID.", + "required": true, "schema": { - "type": "boolean", - "x-example": false, - "default": true + "type": "string", + "x-example": "<USER_ID>" }, - "in": "query" + "in": "path" } ] - } - }, - "\/users\/identities\/{identityId}": { + }, "delete": { - "summary": "Delete identity", - "operationId": "usersDeleteIdentity", + "summary": "Delete user", + "operationId": "usersDelete", "tags": [ "users" ], - "description": "Delete an identity by its unique ID.", + "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" @@ -58847,11 +66944,11 @@ }, "deprecated": false, "x-appwrite": { - "method": "deleteIdentity", - "group": "identities", + "method": "delete", + "group": "users", "cookies": false, "type": "", - "demo": "users\/delete-identity.md", + "demo": "users\/delete.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", @@ -58862,7 +66959,7 @@ ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/users\/delete-identity.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/users\/delete.md", "auth": { "Project": [], "Key": [] @@ -58876,28 +66973,28 @@ ], "parameters": [ { - "name": "identityId", - "description": "Identity ID.", + "name": "userId", + "description": "User ID.", "required": true, "schema": { "type": "string", - "x-example": "<IDENTITY_ID>" + "x-example": "<USER_ID>" }, "in": "path" } ] } }, - "\/users\/md5": { - "post": { - "summary": "Create user with MD5 password", - "operationId": "usersCreateMD5User", + "\/users\/{userId}\/email": { + "patch": { + "summary": "Update email", + "operationId": "usersUpdateEmail", "tags": [ "users" ], - "description": "Create a new user. Password provided must be hashed with the [MD5](https:\/\/en.wikipedia.org\/wiki\/MD5) algorithm. Use the [POST \/users](https:\/\/appwrite.io\/docs\/server\/users#usersCreate) endpoint to create users with a plain text password.", + "description": "Update the user email by its unique ID.", "responses": { - "201": { + "200": { "description": "User", "content": { "application\/json": { @@ -58910,11 +67007,11 @@ }, "deprecated": false, "x-appwrite": { - "method": "createMD5User", + "method": "updateEmail", "group": "users", "cookies": false, "type": "", - "demo": "users\/create-md-5-user.md", + "demo": "users\/update-email.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", @@ -58925,7 +67022,7 @@ ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/users\/create-md5-user.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/users\/update-user-email.md", "auth": { "Project": [], "Key": [] @@ -58937,43 +67034,33 @@ "Key": [] } ], + "parameters": [ + { + "name": "userId", + "description": "User ID.", + "required": true, + "schema": { + "type": "string", + "x-example": "<USER_ID>" + }, + "in": "path" + } + ], "requestBody": { "content": { "application\/json": { "schema": { "type": "object", "properties": { - "userId": { - "type": "string", - "description": "User ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.", - "x-example": "<USER_ID>", - "x-appwrite": { - "idGenerator": "ID.unique" - } - }, "email": { "type": "string", "description": "User email.", "x-example": "email@example.com", "format": "email" - }, - "password": { - "type": "string", - "description": "User password hashed using MD5.", - "x-example": "password", - "format": "password" - }, - "name": { - "type": "string", - "description": "User name. Max length: 128 chars.", - "default": "", - "x-example": "<NAME>" } }, "required": [ - "userId", - "email", - "password" + "email" ] } } @@ -58981,16 +67068,16 @@ } } }, - "\/users\/phpass": { - "post": { - "summary": "Create user with PHPass password", - "operationId": "usersCreatePHPassUser", + "\/users\/{userId}\/impersonator": { + "patch": { + "summary": "Update user impersonator capability", + "operationId": "usersUpdateImpersonator", "tags": [ "users" ], - "description": "Create a new user. Password provided must be hashed with the [PHPass](https:\/\/www.openwall.com\/phpass\/) algorithm. Use the [POST \/users](https:\/\/appwrite.io\/docs\/server\/users#usersCreate) endpoint to create users with a plain text password.", + "description": "Enable or disable whether a user can impersonate other users. When impersonation headers are used, the request runs as the target user for API behavior, while internal audit logs still attribute the action to the original impersonator and store the impersonated target details only in internal audit payload data.\n", "responses": { - "201": { + "200": { "description": "User", "content": { "application\/json": { @@ -59003,11 +67090,11 @@ }, "deprecated": false, "x-appwrite": { - "method": "createPHPassUser", + "method": "updateImpersonator", "group": "users", "cookies": false, "type": "", - "demo": "users\/create-ph-pass-user.md", + "demo": "users\/update-impersonator.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", @@ -59018,7 +67105,7 @@ ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/users\/create-phpass-user.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/users\/update-user-impersonator.md", "auth": { "Project": [], "Key": [] @@ -59030,43 +67117,32 @@ "Key": [] } ], + "parameters": [ + { + "name": "userId", + "description": "User ID.", + "required": true, + "schema": { + "type": "string", + "x-example": "<USER_ID>" + }, + "in": "path" + } + ], "requestBody": { "content": { "application\/json": { "schema": { "type": "object", "properties": { - "userId": { - "type": "string", - "description": "User ID. Choose a custom ID or pass the string `ID.unique()`to auto generate it. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.", - "x-example": "<USER_ID>", - "x-appwrite": { - "idGenerator": "ID.unique" - } - }, - "email": { - "type": "string", - "description": "User email.", - "x-example": "email@example.com", - "format": "email" - }, - "password": { - "type": "string", - "description": "User password hashed using PHPass.", - "x-example": "password", - "format": "password" - }, - "name": { - "type": "string", - "description": "User name. Max length: 128 chars.", - "default": "", - "x-example": "<NAME>" + "impersonator": { + "type": "boolean", + "description": "Whether the user can impersonate other users. When true, the user can browse project users to choose a target and can pass impersonation headers to act as that user. Internal audit logs still attribute impersonated actions to the original impersonator and store the target user details only in internal audit payload data.", + "x-example": false } }, "required": [ - "userId", - "email", - "password" + "impersonator" ] } } @@ -59074,21 +67150,21 @@ } } }, - "\/users\/scrypt": { + "\/users\/{userId}\/jwts": { "post": { - "summary": "Create user with Scrypt password", - "operationId": "usersCreateScryptUser", + "summary": "Create user JWT", + "operationId": "usersCreateJWT", "tags": [ "users" ], - "description": "Create a new user. Password provided must be hashed with the [Scrypt](https:\/\/github.com\/Tarsnap\/scrypt) algorithm. Use the [POST \/users](https:\/\/appwrite.io\/docs\/server\/users#usersCreate) endpoint to create users with a plain text password.", + "description": "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": "User", + "description": "JWT", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/user" + "$ref": "#\/components\/schemas\/jwt" } } } @@ -59096,11 +67172,11 @@ }, "deprecated": false, "x-appwrite": { - "method": "createScryptUser", - "group": "users", + "method": "createJWT", + "group": "sessions", "cookies": false, "type": "", - "demo": "users\/create-scrypt-user.md", + "demo": "users\/create-jwt.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", @@ -59111,7 +67187,7 @@ ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/users\/create-scrypt-user.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/users\/create-user-jwt.md", "auth": { "Project": [], "Key": [] @@ -59123,94 +67199,54 @@ "Key": [] } ], + "parameters": [ + { + "name": "userId", + "description": "User ID.", + "required": true, + "schema": { + "type": "string", + "x-example": "<USER_ID>" + }, + "in": "path" + } + ], "requestBody": { "content": { "application\/json": { "schema": { "type": "object", "properties": { - "userId": { - "type": "string", - "description": "User ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.", - "x-example": "<USER_ID>", - "x-appwrite": { - "idGenerator": "ID.unique" - } - }, - "email": { - "type": "string", - "description": "User email.", - "x-example": "email@example.com", - "format": "email" - }, - "password": { - "type": "string", - "description": "User password hashed using Scrypt.", - "x-example": "password", - "format": "password" - }, - "passwordSalt": { + "sessionId": { "type": "string", - "description": "Optional salt used to hash password.", - "x-example": "<PASSWORD_SALT>" - }, - "passwordCpu": { - "type": "integer", - "description": "Optional CPU cost used to hash password.", - "x-example": null, - "format": "int32" - }, - "passwordMemory": { - "type": "integer", - "description": "Optional memory cost used to hash password.", - "x-example": null, - "format": "int32" - }, - "passwordParallel": { - "type": "integer", - "description": "Optional parallelization cost used to hash password.", - "x-example": null, - "format": "int32" + "description": "Session ID. Use the string 'recent' to use the most recent session. Defaults to the most recent session.", + "default": "", + "x-example": "<SESSION_ID>" }, - "passwordLength": { + "duration": { "type": "integer", - "description": "Optional hash length used to hash password.", - "x-example": null, + "description": "Time in seconds before JWT expires. Default duration is 900 seconds, and maximum is 3600 seconds.", + "default": 900, + "x-example": 0, "format": "int32" - }, - "name": { - "type": "string", - "description": "User name. Max length: 128 chars.", - "default": "", - "x-example": "<NAME>" } - }, - "required": [ - "userId", - "email", - "password", - "passwordSalt", - "passwordCpu", - "passwordMemory", - "passwordParallel", - "passwordLength" - ] + } } } } } } }, - "\/users\/scrypt-modified": { - "post": { - "summary": "Create user with Scrypt modified password", - "operationId": "usersCreateScryptModifiedUser", + "\/users\/{userId}\/labels": { + "put": { + "summary": "Update user labels", + "operationId": "usersUpdateLabels", "tags": [ "users" ], - "description": "Create a new user. Password provided must be hashed with the [Scrypt Modified](https:\/\/gist.github.com\/Meldiron\/eecf84a0225eccb5a378d45bb27462cc) algorithm. Use the [POST \/users](https:\/\/appwrite.io\/docs\/server\/users#usersCreate) endpoint to create users with a plain text password.", + "description": "Update the user 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": { - "201": { + "200": { "description": "User", "content": { "application\/json": { @@ -59223,11 +67259,11 @@ }, "deprecated": false, "x-appwrite": { - "method": "createScryptModifiedUser", + "method": "updateLabels", "group": "users", "cookies": false, "type": "", - "demo": "users\/create-scrypt-modified-user.md", + "demo": "users\/update-labels.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", @@ -59238,7 +67274,7 @@ ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/users\/create-scrypt-modified-user.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/users\/update-user-labels.md", "auth": { "Project": [], "Key": [] @@ -59250,78 +67286,237 @@ "Key": [] } ], + "parameters": [ + { + "name": "userId", + "description": "User ID.", + "required": true, + "schema": { + "type": "string", + "x-example": "<USER_ID>" + }, + "in": "path" + } + ], "requestBody": { "content": { "application\/json": { "schema": { "type": "object", "properties": { - "userId": { - "type": "string", - "description": "User ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.", - "x-example": "<USER_ID>", - "x-appwrite": { - "idGenerator": "ID.unique" + "labels": { + "type": "array", + "description": "Array of user labels. Replaces the previous labels. Maximum of 1000 labels are allowed, each up to 36 alphanumeric characters long.", + "x-example": null, + "items": { + "type": "string" } - }, - "email": { - "type": "string", - "description": "User email.", - "x-example": "email@example.com", - "format": "email" - }, - "password": { - "type": "string", - "description": "User password hashed using Scrypt Modified.", - "x-example": "password", - "format": "password" - }, - "passwordSalt": { - "type": "string", - "description": "Salt used to hash password.", - "x-example": "<PASSWORD_SALT>" - }, - "passwordSaltSeparator": { - "type": "string", - "description": "Salt separator used to hash password.", - "x-example": "<PASSWORD_SALT_SEPARATOR>" - }, - "passwordSignerKey": { - "type": "string", - "description": "Signer key used to hash password.", - "x-example": "<PASSWORD_SIGNER_KEY>" - }, - "name": { - "type": "string", - "description": "User name. Max length: 128 chars.", - "default": "", - "x-example": "<NAME>" } }, "required": [ - "userId", - "email", - "password", - "passwordSalt", - "passwordSaltSeparator", - "passwordSignerKey" + "labels" ] } } } - } + } + } + }, + "\/users\/{userId}\/logs": { + "get": { + "summary": "List user logs", + "operationId": "usersListLogs", + "tags": [ + "users" + ], + "description": "Get the user activity logs list by its unique ID.", + "responses": { + "200": { + "description": "Logs List", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/logList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "method": "listLogs", + "group": "logs", + "cookies": false, + "type": "", + "demo": "users\/list-logs.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "users.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/users\/list-user-logs.md", + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "userId", + "description": "User ID.", + "required": true, + "schema": { + "type": "string", + "x-example": "<USER_ID>" + }, + "in": "path" + }, + { + "name": "queries", + "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/queries). Only supported methods are limit and offset", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string" + }, + "default": [] + }, + "in": "query" + }, + { + "name": "total", + "description": "When set to false, the total count returned will be 0 and will not be calculated.", + "required": false, + "schema": { + "type": "boolean", + "x-example": false, + "default": true + }, + "in": "query" + } + ] + } + }, + "\/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": { + "method": "listMemberships", + "group": "memberships", + "cookies": false, + "type": "", + "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, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/users\/list-user-memberships.md", + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "userId", + "description": "User ID.", + "required": true, + "schema": { + "type": "string", + "x-example": "<USER_ID>" + }, + "in": "path" + }, + { + "name": "queries", + "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/queries). Maximum of 100 queries are allowed, each 4096 characters long. You may filter on the following attributes: userId, teamId, invited, joined, confirm, roles", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string" + }, + "default": [] + }, + "in": "query" + }, + { + "name": "search", + "description": "Search term to filter your list results. Max length: 256 chars.", + "required": false, + "schema": { + "type": "string", + "x-example": "<SEARCH>", + "default": "" + }, + "in": "query" + }, + { + "name": "total", + "description": "When set to false, the total count returned will be 0 and will not be calculated.", + "required": false, + "schema": { + "type": "boolean", + "x-example": false, + "default": true + }, + "in": "query" + } + ] } }, - "\/users\/sha": { - "post": { - "summary": "Create user with SHA password", - "operationId": "usersCreateSHAUser", + "\/users\/{userId}\/mfa": { + "patch": { + "summary": "Update MFA", + "operationId": "usersUpdateMfa", "tags": [ "users" ], - "description": "Create a new user. Password provided must be hashed with the [SHA](https:\/\/en.wikipedia.org\/wiki\/Secure_Hash_Algorithm) algorithm. Use the [POST \/users](https:\/\/appwrite.io\/docs\/server\/users#usersCreate) endpoint to create users with a plain text password.", + "description": "Enable or disable MFA on a user account.", "responses": { - "201": { + "200": { "description": "User", "content": { "application\/json": { @@ -59332,13 +67527,13 @@ } } }, - "deprecated": false, + "deprecated": true, "x-appwrite": { - "method": "createSHAUser", + "method": "updateMfa", "group": "users", "cookies": false, "type": "", - "demo": "users\/create-sha-user.md", + "demo": "users\/update-mfa.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", @@ -59348,8 +67543,70 @@ "server" ], "packaging": false, - "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/users\/create-sha-user.md", + "public": false, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/users\/update-user-mfa.md", + "deprecated": { + "since": "1.8.0", + "replaceWith": "users.updateMFA" + }, + "methods": [ + { + "name": "updateMfa", + "namespace": "users", + "desc": "", + "auth": { + "Project": [], + "Key": [] + }, + "parameters": [ + "userId", + "mfa" + ], + "required": [ + "userId", + "mfa" + ], + "responses": [ + { + "code": 200, + "model": "#\/components\/schemas\/user" + } + ], + "description": "Enable or disable MFA on a user account.", + "demo": "users\/update-mfa.md", + "public": false, + "deprecated": { + "since": "1.8.0", + "replaceWith": "users.updateMFA" + } + }, + { + "name": "updateMFA", + "namespace": "users", + "desc": "", + "auth": { + "Project": [], + "Key": [] + }, + "parameters": [ + "userId", + "mfa" + ], + "required": [ + "userId", + "mfa" + ], + "responses": [ + { + "code": 200, + "model": "#\/components\/schemas\/user" + } + ], + "description": "Enable or disable MFA on a user account.", + "demo": "users\/update-mfa.md", + "public": true + } + ], "auth": { "Project": [], "Key": [] @@ -59361,75 +67618,32 @@ "Key": [] } ], + "parameters": [ + { + "name": "userId", + "description": "User ID.", + "required": true, + "schema": { + "type": "string", + "x-example": "<USER_ID>" + }, + "in": "path" + } + ], "requestBody": { "content": { "application\/json": { "schema": { "type": "object", "properties": { - "userId": { - "type": "string", - "description": "User ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.", - "x-example": "<USER_ID>", - "x-appwrite": { - "idGenerator": "ID.unique" - } - }, - "email": { - "type": "string", - "description": "User email.", - "x-example": "email@example.com", - "format": "email" - }, - "password": { - "type": "string", - "description": "User password hashed using SHA.", - "x-example": "password", - "format": "password" - }, - "passwordVersion": { - "type": "string", - "description": "Optional SHA version used to hash password. Allowed values are: 'sha1', 'sha224', 'sha256', 'sha384', 'sha512\/224', 'sha512\/256', 'sha512', 'sha3-224', 'sha3-256', 'sha3-384', 'sha3-512'", - "x-example": "sha1", - "enum": [ - "sha1", - "sha224", - "sha256", - "sha384", - "sha512\/224", - "sha512\/256", - "sha512", - "sha3-224", - "sha3-256", - "sha3-384", - "sha3-512" - ], - "x-enum-name": "PasswordHash", - "x-enum-keys": [ - "sha1", - "sha224", - "sha256", - "sha384", - "sha512\/224", - "sha512\/256", - "sha512", - "sha3-224", - "sha3-256", - "sha3-384", - "sha3-512" - ] - }, - "name": { - "type": "string", - "description": "User name. Max length: 128 chars.", - "default": "", - "x-example": "<NAME>" + "mfa": { + "type": "boolean", + "description": "Enable or disable MFA.", + "x-example": false } }, "required": [ - "userId", - "email", - "password" + "mfa" ] } } @@ -59437,44 +67651,97 @@ } } }, - "\/users\/{userId}": { - "get": { - "summary": "Get user", - "operationId": "usersGet", + "\/users\/{userId}\/mfa\/authenticators\/{type}": { + "delete": { + "summary": "Delete authenticator", + "operationId": "usersDeleteMfaAuthenticator", "tags": [ "users" ], - "description": "Get a user by its unique ID.", + "description": "Delete an authenticator app.", "responses": { - "200": { - "description": "User", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/user" - } - } - } + "204": { + "description": "No content" } }, - "deprecated": false, + "deprecated": true, "x-appwrite": { - "method": "get", - "group": "users", + "method": "deleteMfaAuthenticator", + "group": "mfa", "cookies": false, "type": "", - "demo": "users\/get.md", + "demo": "users\/delete-mfa-authenticator.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "users.read", + "scope": "users.write", "platforms": [ "console", "server" ], "packaging": false, - "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/users\/get-user.md", + "public": false, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/users\/delete-mfa-authenticator.md", + "deprecated": { + "since": "1.8.0", + "replaceWith": "users.deleteMFAAuthenticator" + }, + "methods": [ + { + "name": "deleteMfaAuthenticator", + "namespace": "users", + "desc": "", + "auth": { + "Project": [], + "Key": [] + }, + "parameters": [ + "userId", + "type" + ], + "required": [ + "userId", + "type" + ], + "responses": [ + { + "code": 204 + } + ], + "description": "Delete an authenticator app.", + "demo": "users\/delete-mfa-authenticator.md", + "public": false, + "deprecated": { + "since": "1.8.0", + "replaceWith": "users.deleteMFAAuthenticator" + } + }, + { + "name": "deleteMFAAuthenticator", + "namespace": "users", + "desc": "", + "auth": { + "Project": [], + "Key": [] + }, + "parameters": [ + "userId", + "type" + ], + "required": [ + "userId", + "type" + ], + "responses": [ + { + "code": 204 + } + ], + "description": "Delete an authenticator app.", + "demo": "users\/delete-mfa-authenticator.md", + "public": true + } + ], "auth": { "Project": [], "Key": [] @@ -59496,39 +67763,123 @@ "x-example": "<USER_ID>" }, "in": "path" + }, + { + "name": "type", + "description": "Type of authenticator.", + "required": true, + "schema": { + "type": "string", + "x-example": "totp", + "enum": [ + "totp" + ], + "x-enum-name": "AuthenticatorType", + "x-enum-keys": [ + "totp" + ] + }, + "in": "path" } ] - }, - "delete": { - "summary": "Delete user", - "operationId": "usersDelete", + } + }, + "\/users\/{userId}\/mfa\/factors": { + "get": { + "summary": "List factors", + "operationId": "usersListMfaFactors", "tags": [ "users" ], - "description": "Delete a user by its unique ID, thereby releasing it's ID. Since ID is released and can be reused, all user-related resources like documents or storage files should be deleted before user deletion. If you want to keep ID reserved, use the [updateStatus](https:\/\/appwrite.io\/docs\/server\/users#usersUpdateStatus) endpoint instead.", + "description": "List the factors available on the account to be used as a MFA challange.", "responses": { - "204": { - "description": "No content" + "200": { + "description": "MFAFactors", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/mfaFactors" + } + } + } } }, - "deprecated": false, + "deprecated": true, "x-appwrite": { - "method": "delete", - "group": "users", + "method": "listMfaFactors", + "group": "mfa", "cookies": false, "type": "", - "demo": "users\/delete.md", + "demo": "users\/list-mfa-factors.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "users.write", + "scope": "users.read", "platforms": [ "console", "server" ], "packaging": false, - "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/users\/delete.md", + "public": false, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/users\/list-mfa-factors.md", + "deprecated": { + "since": "1.8.0", + "replaceWith": "users.listMFAFactors" + }, + "methods": [ + { + "name": "listMfaFactors", + "namespace": "users", + "desc": "", + "auth": { + "Project": [], + "Key": [] + }, + "parameters": [ + "userId" + ], + "required": [ + "userId" + ], + "responses": [ + { + "code": 200, + "model": "#\/components\/schemas\/mfaFactors" + } + ], + "description": "List the factors available on the account to be used as a MFA challange.", + "demo": "users\/list-mfa-factors.md", + "public": false, + "deprecated": { + "since": "1.8.0", + "replaceWith": "users.listMFAFactors" + } + }, + { + "name": "listMFAFactors", + "namespace": "users", + "desc": "", + "auth": { + "Project": [], + "Key": [] + }, + "parameters": [ + "userId" + ], + "required": [ + "userId" + ], + "responses": [ + { + "code": 200, + "model": "#\/components\/schemas\/mfaFactors" + } + ], + "description": "List the factors available on the account to be used as a MFA challange.", + "demo": "users\/list-mfa-factors.md", + "public": true + } + ], "auth": { "Project": [], "Key": [] @@ -59554,44 +67905,102 @@ ] } }, - "\/users\/{userId}\/email": { - "patch": { - "summary": "Update email", - "operationId": "usersUpdateEmail", + "\/users\/{userId}\/mfa\/recovery-codes": { + "get": { + "summary": "Get MFA recovery codes", + "operationId": "usersGetMfaRecoveryCodes", "tags": [ "users" ], - "description": "Update the user email by its unique ID.", + "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": "User", + "description": "MFA Recovery Codes", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/user" + "$ref": "#\/components\/schemas\/mfaRecoveryCodes" } } } } }, - "deprecated": false, + "deprecated": true, "x-appwrite": { - "method": "updateEmail", - "group": "users", + "method": "getMfaRecoveryCodes", + "group": "mfa", "cookies": false, "type": "", - "demo": "users\/update-email.md", + "demo": "users\/get-mfa-recovery-codes.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "users.write", + "scope": "users.read", "platforms": [ "console", "server" ], "packaging": false, - "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/users\/update-user-email.md", + "public": false, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/users\/get-mfa-recovery-codes.md", + "deprecated": { + "since": "1.8.0", + "replaceWith": "users.getMFARecoveryCodes" + }, + "methods": [ + { + "name": "getMfaRecoveryCodes", + "namespace": "users", + "desc": "", + "auth": { + "Project": [], + "Key": [] + }, + "parameters": [ + "userId" + ], + "required": [ + "userId" + ], + "responses": [ + { + "code": 200, + "model": "#\/components\/schemas\/mfaRecoveryCodes" + } + ], + "description": "Get recovery codes that can be used as backup for MFA flow by User ID. Before getting codes, they must be generated using [createMfaRecoveryCodes](\/docs\/references\/cloud\/client-web\/account#createMfaRecoveryCodes) method.", + "demo": "users\/get-mfa-recovery-codes.md", + "public": false, + "deprecated": { + "since": "1.8.0", + "replaceWith": "users.getMFARecoveryCodes" + } + }, + { + "name": "getMFARecoveryCodes", + "namespace": "users", + "desc": "", + "auth": { + "Project": [], + "Key": [] + }, + "parameters": [ + "userId" + ], + "required": [ + "userId" + ], + "responses": [ + { + "code": 200, + "model": "#\/components\/schemas\/mfaRecoveryCodes" + } + ], + "description": "Get recovery codes that can be used as backup for MFA flow by User ID. Before getting codes, they must be generated using [createMfaRecoveryCodes](\/docs\/references\/cloud\/client-web\/account#createMfaRecoveryCodes) method.", + "demo": "users\/get-mfa-recovery-codes.md", + "public": true + } + ], "auth": { "Project": [], "Key": [] @@ -59609,61 +68018,39 @@ "description": "User ID.", "required": true, "schema": { - "type": "string", - "x-example": "<USER_ID>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "email": { - "type": "string", - "description": "User email.", - "x-example": "email@example.com", - "format": "email" - } - }, - "required": [ - "email" - ] - } - } + "type": "string", + "x-example": "<USER_ID>" + }, + "in": "path" } - } - } - }, - "\/users\/{userId}\/impersonator": { - "patch": { - "summary": "Update user impersonator capability", - "operationId": "usersUpdateImpersonator", + ] + }, + "put": { + "summary": "Update MFA recovery codes (regenerate)", + "operationId": "usersUpdateMfaRecoveryCodes", "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.\n", + "description": "Regenerate recovery codes that can be used as backup for MFA flow by User ID. Before regenerating codes, they must be first generated using [createMfaRecoveryCodes](\/docs\/references\/cloud\/client-web\/account#createMfaRecoveryCodes) method.", "responses": { "200": { - "description": "User", + "description": "MFA Recovery Codes", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/user" + "$ref": "#\/components\/schemas\/mfaRecoveryCodes" } } } } }, - "deprecated": false, + "deprecated": true, "x-appwrite": { - "method": "updateImpersonator", - "group": "users", + "method": "updateMfaRecoveryCodes", + "group": "mfa", "cookies": false, "type": "", - "demo": "users\/update-impersonator.md", + "demo": "users\/update-mfa-recovery-codes.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", @@ -59673,8 +68060,66 @@ "server" ], "packaging": false, - "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/users\/update-user-impersonator.md", + "public": false, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/users\/update-mfa-recovery-codes.md", + "deprecated": { + "since": "1.8.0", + "replaceWith": "users.updateMFARecoveryCodes" + }, + "methods": [ + { + "name": "updateMfaRecoveryCodes", + "namespace": "users", + "desc": "", + "auth": { + "Project": [], + "Key": [] + }, + "parameters": [ + "userId" + ], + "required": [ + "userId" + ], + "responses": [ + { + "code": 200, + "model": "#\/components\/schemas\/mfaRecoveryCodes" + } + ], + "description": "Regenerate recovery codes that can be used as backup for MFA flow by User ID. Before regenerating codes, they must be first generated using [createMfaRecoveryCodes](\/docs\/references\/cloud\/client-web\/account#createMfaRecoveryCodes) method.", + "demo": "users\/update-mfa-recovery-codes.md", + "public": false, + "deprecated": { + "since": "1.8.0", + "replaceWith": "users.updateMFARecoveryCodes" + } + }, + { + "name": "updateMFARecoveryCodes", + "namespace": "users", + "desc": "", + "auth": { + "Project": [], + "Key": [] + }, + "parameters": [ + "userId" + ], + "required": [ + "userId" + ], + "responses": [ + { + "code": 200, + "model": "#\/components\/schemas\/mfaRecoveryCodes" + } + ], + "description": "Regenerate recovery codes that can be used as backup for MFA flow by User ID. Before regenerating codes, they must be first generated using [createMfaRecoveryCodes](\/docs\/references\/cloud\/client-web\/account#createMfaRecoveryCodes) method.", + "demo": "users\/update-mfa-recovery-codes.md", + "public": false + } + ], "auth": { "Project": [], "Key": [] @@ -59697,55 +68142,34 @@ }, "in": "path" } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "impersonator": { - "type": "boolean", - "description": "Whether the user can impersonate other users. When true, the user can browse project users to choose a target and can pass impersonation headers to act as that user. Internal audit logs still attribute impersonated actions to the original impersonator and store the target user details only in internal audit payload data.", - "x-example": false - } - }, - "required": [ - "impersonator" - ] - } - } - } - } - } - }, - "\/users\/{userId}\/jwts": { - "post": { - "summary": "Create user JWT", - "operationId": "usersCreateJWT", + ] + }, + "patch": { + "summary": "Create MFA recovery codes", + "operationId": "usersCreateMfaRecoveryCodes", "tags": [ "users" ], - "description": "Use this endpoint to create a JSON Web Token for user by its unique ID. You can use the resulting JWT to authenticate on behalf of the user. The JWT secret will become invalid if the session it uses gets deleted.", + "description": "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": "JWT", + "description": "MFA Recovery Codes", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/jwt" + "$ref": "#\/components\/schemas\/mfaRecoveryCodes" } } } } }, - "deprecated": false, + "deprecated": true, "x-appwrite": { - "method": "createJWT", - "group": "sessions", + "method": "createMfaRecoveryCodes", + "group": "mfa", "cookies": false, "type": "", - "demo": "users\/create-jwt.md", + "demo": "users\/create-mfa-recovery-codes.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", @@ -59755,8 +68179,66 @@ "server" ], "packaging": false, - "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/users\/create-user-jwt.md", + "public": false, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/users\/create-mfa-recovery-codes.md", + "deprecated": { + "since": "1.8.0", + "replaceWith": "users.createMFARecoveryCodes" + }, + "methods": [ + { + "name": "createMfaRecoveryCodes", + "namespace": "users", + "desc": "", + "auth": { + "Project": [], + "Key": [] + }, + "parameters": [ + "userId" + ], + "required": [ + "userId" + ], + "responses": [ + { + "code": 201, + "model": "#\/components\/schemas\/mfaRecoveryCodes" + } + ], + "description": "Generate recovery codes used as backup for MFA flow for User ID. Recovery codes can be used as a MFA verification type in [createMfaChallenge](\/docs\/references\/cloud\/client-web\/account#createMfaChallenge) method by client SDK.", + "demo": "users\/create-mfa-recovery-codes.md", + "public": false, + "deprecated": { + "since": "1.8.0", + "replaceWith": "users.createMFARecoveryCodes" + } + }, + { + "name": "createMFARecoveryCodes", + "namespace": "users", + "desc": "", + "auth": { + "Project": [], + "Key": [] + }, + "parameters": [ + "userId" + ], + "required": [ + "userId" + ], + "responses": [ + { + "code": 201, + "model": "#\/components\/schemas\/mfaRecoveryCodes" + } + ], + "description": "Generate recovery codes used as backup for MFA flow for User ID. Recovery codes can be used as a MFA verification type in [createMfaChallenge](\/docs\/references\/cloud\/client-web\/account#createMfaChallenge) method by client SDK.", + "demo": "users\/create-mfa-recovery-codes.md", + "public": true + } + ], "auth": { "Project": [], "Key": [] @@ -59779,41 +68261,17 @@ }, "in": "path" } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "sessionId": { - "type": "string", - "description": "Session ID. Use the string 'recent' to use the most recent session. Defaults to the most recent session.", - "default": "", - "x-example": "<SESSION_ID>" - }, - "duration": { - "type": "integer", - "description": "Time in seconds before JWT expires. Default duration is 900 seconds, and maximum is 3600 seconds.", - "default": 900, - "x-example": 0, - "format": "int32" - } - } - } - } - } - } + ] } }, - "\/users\/{userId}\/labels": { - "put": { - "summary": "Update user labels", - "operationId": "usersUpdateLabels", + "\/users\/{userId}\/name": { + "patch": { + "summary": "Update name", + "operationId": "usersUpdateName", "tags": [ "users" ], - "description": "Update the user labels by its unique ID. \n\nLabels can be used to grant access to resources. While teams are a way for user's to share access to a resource, labels can be defined by the developer to grant access without an invitation. See the [Permissions docs](https:\/\/appwrite.io\/docs\/permissions) for more info.", + "description": "Update the user name by its unique ID.", "responses": { "200": { "description": "User", @@ -59828,11 +68286,11 @@ }, "deprecated": false, "x-appwrite": { - "method": "updateLabels", + "method": "updateName", "group": "users", "cookies": false, "type": "", - "demo": "users\/update-labels.md", + "demo": "users\/update-name.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", @@ -59843,7 +68301,7 @@ ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/users\/update-user-labels.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/users\/update-user-name.md", "auth": { "Project": [], "Key": [] @@ -59873,17 +68331,14 @@ "schema": { "type": "object", "properties": { - "labels": { - "type": "array", - "description": "Array of user labels. Replaces the previous labels. Maximum of 1000 labels are allowed, each up to 36 alphanumeric characters long.", - "x-example": null, - "items": { - "type": "string" - } + "name": { + "type": "string", + "description": "User name. Max length: 128 chars.", + "x-example": "<NAME>" } }, "required": [ - "labels" + "name" ] } } @@ -59891,21 +68346,21 @@ } } }, - "\/users\/{userId}\/logs": { - "get": { - "summary": "List user logs", - "operationId": "usersListLogs", + "\/users\/{userId}\/password": { + "patch": { + "summary": "Update password", + "operationId": "usersUpdatePassword", "tags": [ "users" ], - "description": "Get the user activity logs list by its unique ID.", + "description": "Update the user password by its unique ID.", "responses": { "200": { - "description": "Logs List", + "description": "User", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/logList" + "$ref": "#\/components\/schemas\/user" } } } @@ -59913,22 +68368,22 @@ }, "deprecated": false, "x-appwrite": { - "method": "listLogs", - "group": "logs", + "method": "updatePassword", + "group": "users", "cookies": false, "type": "", - "demo": "users\/list-logs.md", + "demo": "users\/update-password.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "users.read", + "scope": "users.write", "platforms": [ "console", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/users\/list-user-logs.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/users\/update-user-password.md", "auth": { "Project": [], "Key": [] @@ -59950,140 +68405,38 @@ "x-example": "<USER_ID>" }, "in": "path" - }, - { - "name": "queries", - "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/queries). Only supported methods are limit and offset", - "required": false, - "schema": { - "type": "array", - "items": { - "type": "string" - }, - "default": [] - }, - "in": "query" - }, - { - "name": "total", - "description": "When set to false, the total count returned will be 0 and will not be calculated.", - "required": false, - "schema": { - "type": "boolean", - "x-example": false, - "default": true - }, - "in": "query" } - ] - } - }, - "\/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" - } + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "password": { + "type": "string", + "description": "New user password. Must be at least 8 chars.", + "x-example": "password", + "format": "password" + } + }, + "required": [ + "password" + ] } } } - }, - "deprecated": false, - "x-appwrite": { - "method": "listMemberships", - "group": "memberships", - "cookies": false, - "type": "", - "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, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/users\/list-user-memberships.md", - "auth": { - "Project": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "userId", - "description": "User ID.", - "required": true, - "schema": { - "type": "string", - "x-example": "<USER_ID>" - }, - "in": "path" - }, - { - "name": "queries", - "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/queries). Maximum of 100 queries are allowed, each 4096 characters long. You may filter on the following attributes: userId, teamId, invited, joined, confirm, roles", - "required": false, - "schema": { - "type": "array", - "items": { - "type": "string" - }, - "default": [] - }, - "in": "query" - }, - { - "name": "search", - "description": "Search term to filter your list results. Max length: 256 chars.", - "required": false, - "schema": { - "type": "string", - "x-example": "<SEARCH>", - "default": "" - }, - "in": "query" - }, - { - "name": "total", - "description": "When set to false, the total count returned will be 0 and will not be calculated.", - "required": false, - "schema": { - "type": "boolean", - "x-example": false, - "default": true - }, - "in": "query" - } - ] + } } }, - "\/users\/{userId}\/mfa": { + "\/users\/{userId}\/phone": { "patch": { - "summary": "Update MFA", - "operationId": "usersUpdateMfa", + "summary": "Update phone", + "operationId": "usersUpdatePhone", "tags": [ "users" ], - "description": "Enable or disable MFA on a user account.", + "description": "Update the user phone by its unique ID.", "responses": { "200": { "description": "User", @@ -60096,13 +68449,13 @@ } } }, - "deprecated": true, + "deprecated": false, "x-appwrite": { - "method": "updateMfa", + "method": "updatePhone", "group": "users", "cookies": false, "type": "", - "demo": "users\/update-mfa.md", + "demo": "users\/update-phone.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", @@ -60112,70 +68465,8 @@ "server" ], "packaging": false, - "public": false, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/users\/update-user-mfa.md", - "deprecated": { - "since": "1.8.0", - "replaceWith": "users.updateMFA" - }, - "methods": [ - { - "name": "updateMfa", - "namespace": "users", - "desc": "", - "auth": { - "Project": [], - "Key": [] - }, - "parameters": [ - "userId", - "mfa" - ], - "required": [ - "userId", - "mfa" - ], - "responses": [ - { - "code": 200, - "model": "#\/components\/schemas\/user" - } - ], - "description": "Enable or disable MFA on a user account.", - "demo": "users\/update-mfa.md", - "public": false, - "deprecated": { - "since": "1.8.0", - "replaceWith": "users.updateMFA" - } - }, - { - "name": "updateMFA", - "namespace": "users", - "desc": "", - "auth": { - "Project": [], - "Key": [] - }, - "parameters": [ - "userId", - "mfa" - ], - "required": [ - "userId", - "mfa" - ], - "responses": [ - { - "code": 200, - "model": "#\/components\/schemas\/user" - } - ], - "description": "Enable or disable MFA on a user account.", - "demo": "users\/update-mfa.md", - "public": true - } - ], + "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/users\/update-user-phone.md", "auth": { "Project": [], "Key": [] @@ -60205,112 +68496,60 @@ "schema": { "type": "object", "properties": { - "mfa": { - "type": "boolean", - "description": "Enable or disable MFA.", - "x-example": false + "number": { + "type": "string", + "description": "User phone number.", + "x-example": "+12065550100", + "format": "phone" } }, "required": [ - "mfa" + "number" ] } } } - } - } - }, - "\/users\/{userId}\/mfa\/authenticators\/{type}": { - "delete": { - "summary": "Delete authenticator", - "operationId": "usersDeleteMfaAuthenticator", + } + } + }, + "\/users\/{userId}\/prefs": { + "get": { + "summary": "Get user preferences", + "operationId": "usersGetPrefs", "tags": [ "users" ], - "description": "Delete an authenticator app.", + "description": "Get the user preferences by its unique ID.", "responses": { - "204": { - "description": "No content" + "200": { + "description": "Preferences", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/preferences" + } + } + } } }, - "deprecated": true, + "deprecated": false, "x-appwrite": { - "method": "deleteMfaAuthenticator", - "group": "mfa", + "method": "getPrefs", + "group": "users", "cookies": false, "type": "", - "demo": "users\/delete-mfa-authenticator.md", + "demo": "users\/get-prefs.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "users.write", + "scope": "users.read", "platforms": [ "console", "server" ], "packaging": false, - "public": false, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/users\/delete-mfa-authenticator.md", - "deprecated": { - "since": "1.8.0", - "replaceWith": "users.deleteMFAAuthenticator" - }, - "methods": [ - { - "name": "deleteMfaAuthenticator", - "namespace": "users", - "desc": "", - "auth": { - "Project": [], - "Key": [] - }, - "parameters": [ - "userId", - "type" - ], - "required": [ - "userId", - "type" - ], - "responses": [ - { - "code": 204 - } - ], - "description": "Delete an authenticator app.", - "demo": "users\/delete-mfa-authenticator.md", - "public": false, - "deprecated": { - "since": "1.8.0", - "replaceWith": "users.deleteMFAAuthenticator" - } - }, - { - "name": "deleteMFAAuthenticator", - "namespace": "users", - "desc": "", - "auth": { - "Project": [], - "Key": [] - }, - "parameters": [ - "userId", - "type" - ], - "required": [ - "userId", - "type" - ], - "responses": [ - { - "code": 204 - } - ], - "description": "Delete an authenticator app.", - "demo": "users\/delete-mfa-authenticator.md", - "public": true - } - ], + "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/users\/get-user-prefs.md", "auth": { "Project": [], "Key": [] @@ -60332,123 +68571,46 @@ "x-example": "<USER_ID>" }, "in": "path" - }, - { - "name": "type", - "description": "Type of authenticator.", - "required": true, - "schema": { - "type": "string", - "x-example": "totp", - "enum": [ - "totp" - ], - "x-enum-name": "AuthenticatorType", - "x-enum-keys": [ - "totp" - ] - }, - "in": "path" } ] - } - }, - "\/users\/{userId}\/mfa\/factors": { - "get": { - "summary": "List factors", - "operationId": "usersListMfaFactors", + }, + "patch": { + "summary": "Update user preferences", + "operationId": "usersUpdatePrefs", "tags": [ "users" ], - "description": "List the factors available on the account to be used as a MFA challange.", + "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": "MFAFactors", + "description": "Preferences", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/mfaFactors" + "$ref": "#\/components\/schemas\/preferences" } } } } }, - "deprecated": true, + "deprecated": false, "x-appwrite": { - "method": "listMfaFactors", - "group": "mfa", + "method": "updatePrefs", + "group": "users", "cookies": false, "type": "", - "demo": "users\/list-mfa-factors.md", + "demo": "users\/update-prefs.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "users.read", + "scope": "users.write", "platforms": [ "console", "server" ], "packaging": false, - "public": false, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/users\/list-mfa-factors.md", - "deprecated": { - "since": "1.8.0", - "replaceWith": "users.listMFAFactors" - }, - "methods": [ - { - "name": "listMfaFactors", - "namespace": "users", - "desc": "", - "auth": { - "Project": [], - "Key": [] - }, - "parameters": [ - "userId" - ], - "required": [ - "userId" - ], - "responses": [ - { - "code": 200, - "model": "#\/components\/schemas\/mfaFactors" - } - ], - "description": "List the factors available on the account to be used as a MFA challange.", - "demo": "users\/list-mfa-factors.md", - "public": false, - "deprecated": { - "since": "1.8.0", - "replaceWith": "users.listMFAFactors" - } - }, - { - "name": "listMFAFactors", - "namespace": "users", - "desc": "", - "auth": { - "Project": [], - "Key": [] - }, - "parameters": [ - "userId" - ], - "required": [ - "userId" - ], - "responses": [ - { - "code": 200, - "model": "#\/components\/schemas\/mfaFactors" - } - ], - "description": "List the factors available on the account to be used as a MFA challange.", - "demo": "users\/list-mfa-factors.md", - "public": true - } - ], + "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/users\/update-user-prefs.md", "auth": { "Project": [], "Key": [] @@ -60471,105 +68633,70 @@ }, "in": "path" } - ] + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "prefs": { + "type": "object", + "description": "Prefs key-value JSON object.", + "default": {}, + "x-example": "{}" + } + }, + "required": [ + "prefs" + ] + } + } + } + } } }, - "\/users\/{userId}\/mfa\/recovery-codes": { + "\/users\/{userId}\/sessions": { "get": { - "summary": "Get MFA recovery codes", - "operationId": "usersGetMfaRecoveryCodes", + "summary": "List user sessions", + "operationId": "usersListSessions", "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.", + "description": "Get the user sessions list by its unique ID.", "responses": { "200": { - "description": "MFA Recovery Codes", + "description": "Sessions List", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/mfaRecoveryCodes" + "$ref": "#\/components\/schemas\/sessionList" } } } } }, - "deprecated": true, + "deprecated": false, "x-appwrite": { - "method": "getMfaRecoveryCodes", - "group": "mfa", + "method": "listSessions", + "group": "sessions", "cookies": false, "type": "", - "demo": "users\/get-mfa-recovery-codes.md", + "demo": "users\/list-sessions.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "users.read", + "scope": [ + "users.read", + "sessions.read" + ], "platforms": [ "console", "server" ], "packaging": false, - "public": false, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/users\/get-mfa-recovery-codes.md", - "deprecated": { - "since": "1.8.0", - "replaceWith": "users.getMFARecoveryCodes" - }, - "methods": [ - { - "name": "getMfaRecoveryCodes", - "namespace": "users", - "desc": "", - "auth": { - "Project": [], - "Key": [] - }, - "parameters": [ - "userId" - ], - "required": [ - "userId" - ], - "responses": [ - { - "code": 200, - "model": "#\/components\/schemas\/mfaRecoveryCodes" - } - ], - "description": "Get recovery codes that can be used as backup for MFA flow by User ID. Before getting codes, they must be generated using [createMfaRecoveryCodes](\/docs\/references\/cloud\/client-web\/account#createMfaRecoveryCodes) method.", - "demo": "users\/get-mfa-recovery-codes.md", - "public": false, - "deprecated": { - "since": "1.8.0", - "replaceWith": "users.getMFARecoveryCodes" - } - }, - { - "name": "getMFARecoveryCodes", - "namespace": "users", - "desc": "", - "auth": { - "Project": [], - "Key": [] - }, - "parameters": [ - "userId" - ], - "required": [ - "userId" - ], - "responses": [ - { - "code": 200, - "model": "#\/components\/schemas\/mfaRecoveryCodes" - } - ], - "description": "Get recovery codes that can be used as backup for MFA flow by User ID. Before getting codes, they must be generated using [createMfaRecoveryCodes](\/docs\/references\/cloud\/client-web\/account#createMfaRecoveryCodes) method.", - "demo": "users\/get-mfa-recovery-codes.md", - "public": true - } - ], + "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/users\/list-user-sessions.md", "auth": { "Project": [], "Key": [] @@ -60591,104 +68718,60 @@ "x-example": "<USER_ID>" }, "in": "path" + }, + { + "name": "total", + "description": "When set to false, the total count returned will be 0 and will not be calculated.", + "required": false, + "schema": { + "type": "boolean", + "x-example": false, + "default": true + }, + "in": "query" } ] }, - "put": { - "summary": "Update MFA recovery codes (regenerate)", - "operationId": "usersUpdateMfaRecoveryCodes", + "post": { + "summary": "Create session", + "operationId": "usersCreateSession", "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.", + "description": "Creates a session for a user. Returns an immediately usable session object.\n\nIf you want to generate a token for a custom authentication flow, use the [POST \/users\/{userId}\/tokens](https:\/\/appwrite.io\/docs\/server\/users#createToken) endpoint.", "responses": { - "200": { - "description": "MFA Recovery Codes", + "201": { + "description": "Session", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/mfaRecoveryCodes" + "$ref": "#\/components\/schemas\/session" } } } } }, - "deprecated": true, + "deprecated": false, "x-appwrite": { - "method": "updateMfaRecoveryCodes", - "group": "mfa", + "method": "createSession", + "group": "sessions", "cookies": false, "type": "", - "demo": "users\/update-mfa-recovery-codes.md", + "demo": "users\/create-session.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "users.write", + "scope": [ + "users.write", + "sessions.write" + ], "platforms": [ "console", "server" ], "packaging": false, - "public": false, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/users\/update-mfa-recovery-codes.md", - "deprecated": { - "since": "1.8.0", - "replaceWith": "users.updateMFARecoveryCodes" - }, - "methods": [ - { - "name": "updateMfaRecoveryCodes", - "namespace": "users", - "desc": "", - "auth": { - "Project": [], - "Key": [] - }, - "parameters": [ - "userId" - ], - "required": [ - "userId" - ], - "responses": [ - { - "code": 200, - "model": "#\/components\/schemas\/mfaRecoveryCodes" - } - ], - "description": "Regenerate recovery codes that can be used as backup for MFA flow by User ID. Before regenerating codes, they must be first generated using [createMfaRecoveryCodes](\/docs\/references\/cloud\/client-web\/account#createMfaRecoveryCodes) method.", - "demo": "users\/update-mfa-recovery-codes.md", - "public": false, - "deprecated": { - "since": "1.8.0", - "replaceWith": "users.updateMFARecoveryCodes" - } - }, - { - "name": "updateMFARecoveryCodes", - "namespace": "users", - "desc": "", - "auth": { - "Project": [], - "Key": [] - }, - "parameters": [ - "userId" - ], - "required": [ - "userId" - ], - "responses": [ - { - "code": 200, - "model": "#\/components\/schemas\/mfaRecoveryCodes" - } - ], - "description": "Regenerate recovery codes that can be used as backup for MFA flow by User ID. Before regenerating codes, they must be first generated using [createMfaRecoveryCodes](\/docs\/references\/cloud\/client-web\/account#createMfaRecoveryCodes) method.", - "demo": "users\/update-mfa-recovery-codes.md", - "public": false - } - ], + "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/users\/create-session.md", "auth": { "Project": [], "Key": [] @@ -60703,111 +68786,111 @@ "parameters": [ { "name": "userId", - "description": "User ID.", + "description": "User ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.", "required": true, "schema": { "type": "string", + "x-appwrite": { + "idGenerator": "ID.unique" + }, "x-example": "<USER_ID>" }, "in": "path" } ] }, - "patch": { - "summary": "Create MFA recovery codes", - "operationId": "usersCreateMfaRecoveryCodes", + "delete": { + "summary": "Delete user sessions", + "operationId": "usersDeleteSessions", "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.", + "description": "Delete all user's sessions by using the user's unique ID.", "responses": { - "201": { - "description": "MFA Recovery Codes", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/mfaRecoveryCodes" - } - } - } + "204": { + "description": "No content" } }, - "deprecated": true, + "deprecated": false, "x-appwrite": { - "method": "createMfaRecoveryCodes", - "group": "mfa", + "method": "deleteSessions", + "group": "sessions", "cookies": false, "type": "", - "demo": "users\/create-mfa-recovery-codes.md", + "demo": "users\/delete-sessions.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "users.write", + "scope": [ + "users.write", + "sessions.write" + ], "platforms": [ "console", "server" ], "packaging": false, - "public": false, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/users\/create-mfa-recovery-codes.md", - "deprecated": { - "since": "1.8.0", - "replaceWith": "users.createMFARecoveryCodes" - }, - "methods": [ - { - "name": "createMfaRecoveryCodes", - "namespace": "users", - "desc": "", - "auth": { - "Project": [], - "Key": [] - }, - "parameters": [ - "userId" - ], - "required": [ - "userId" - ], - "responses": [ - { - "code": 201, - "model": "#\/components\/schemas\/mfaRecoveryCodes" - } - ], - "description": "Generate recovery codes used as backup for MFA flow for User ID. Recovery codes can be used as a MFA verification type in [createMfaChallenge](\/docs\/references\/cloud\/client-web\/account#createMfaChallenge) method by client SDK.", - "demo": "users\/create-mfa-recovery-codes.md", - "public": false, - "deprecated": { - "since": "1.8.0", - "replaceWith": "users.createMFARecoveryCodes" - } - }, - { - "name": "createMFARecoveryCodes", - "namespace": "users", - "desc": "", - "auth": { - "Project": [], - "Key": [] - }, - "parameters": [ - "userId" - ], - "required": [ - "userId" - ], - "responses": [ - { - "code": 201, - "model": "#\/components\/schemas\/mfaRecoveryCodes" - } - ], - "description": "Generate recovery codes used as backup for MFA flow for User ID. Recovery codes can be used as a MFA verification type in [createMfaChallenge](\/docs\/references\/cloud\/client-web\/account#createMfaChallenge) method by client SDK.", - "demo": "users\/create-mfa-recovery-codes.md", - "public": true - } + "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/users\/delete-user-sessions.md", + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "userId", + "description": "User ID.", + "required": true, + "schema": { + "type": "string", + "x-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": { + "method": "deleteSession", + "group": "sessions", + "cookies": false, + "type": "", + "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, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/users\/delete-user-session.md", "auth": { "Project": [], "Key": [] @@ -60829,18 +68912,28 @@ "x-example": "<USER_ID>" }, "in": "path" + }, + { + "name": "sessionId", + "description": "Session ID.", + "required": true, + "schema": { + "type": "string", + "x-example": "<SESSION_ID>" + }, + "in": "path" } ] } }, - "\/users\/{userId}\/name": { + "\/users\/{userId}\/status": { "patch": { - "summary": "Update name", - "operationId": "usersUpdateName", + "summary": "Update user status", + "operationId": "usersUpdateStatus", "tags": [ "users" ], - "description": "Update the user name by its unique ID.", + "description": "Update the user status by its unique ID. Use this endpoint as an alternative to deleting a user if you want to keep user's ID reserved.", "responses": { "200": { "description": "User", @@ -60855,11 +68948,11 @@ }, "deprecated": false, "x-appwrite": { - "method": "updateName", + "method": "updateStatus", "group": "users", "cookies": false, "type": "", - "demo": "users\/update-name.md", + "demo": "users\/update-status.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", @@ -60870,7 +68963,7 @@ ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/users\/update-user-name.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/users\/update-user-status.md", "auth": { "Project": [], "Key": [] @@ -60900,14 +68993,14 @@ "schema": { "type": "object", "properties": { - "name": { - "type": "string", - "description": "User name. Max length: 128 chars.", - "x-example": "<NAME>" + "status": { + "type": "boolean", + "description": "User Status. To activate the user pass `true` and to block the user pass `false`.", + "x-example": false } }, "required": [ - "name" + "status" ] } } @@ -60915,21 +69008,21 @@ } } }, - "\/users\/{userId}\/password": { - "patch": { - "summary": "Update password", - "operationId": "usersUpdatePassword", + "\/users\/{userId}\/targets": { + "get": { + "summary": "List user targets", + "operationId": "usersListTargets", "tags": [ "users" ], - "description": "Update the user password by its unique ID.", + "description": "List the messaging targets that are associated with a user.", "responses": { "200": { - "description": "User", + "description": "Target list", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/user" + "$ref": "#\/components\/schemas\/targetList" } } } @@ -60937,22 +69030,22 @@ }, "deprecated": false, "x-appwrite": { - "method": "updatePassword", - "group": "users", + "method": "listTargets", + "group": "targets", "cookies": false, "type": "", - "demo": "users\/update-password.md", + "demo": "users\/list-targets.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "users.write", + "scope": "users.read", "platforms": [ - "console", - "server" + "server", + "console" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/users\/update-user-password.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/users\/list-user-targets.md", "auth": { "Project": [], "Key": [] @@ -60974,45 +69067,47 @@ "x-example": "<USER_ID>" }, "in": "path" + }, + { + "name": "queries", + "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/queries). Maximum of 100 queries are allowed, each 4096 characters long. You may filter on the following attributes: userId, providerId, identifier, providerType", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string" + }, + "default": [] + }, + "in": "query" + }, + { + "name": "total", + "description": "When set to false, the total count returned will be 0 and will not be calculated.", + "required": false, + "schema": { + "type": "boolean", + "x-example": false, + "default": true + }, + "in": "query" } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "password": { - "type": "string", - "description": "New user password. Must be at least 8 chars.", - "x-example": "password", - "format": "password" - } - }, - "required": [ - "password" - ] - } - } - } - } - } - }, - "\/users\/{userId}\/phone": { - "patch": { - "summary": "Update phone", - "operationId": "usersUpdatePhone", + ] + }, + "post": { + "summary": "Create user target", + "operationId": "usersCreateTarget", "tags": [ "users" ], - "description": "Update the user phone by its unique ID.", + "description": "Create a messaging target.", "responses": { - "200": { - "description": "User", + "201": { + "description": "Target", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/user" + "$ref": "#\/components\/schemas\/target" } } } @@ -61020,22 +69115,22 @@ }, "deprecated": false, "x-appwrite": { - "method": "updatePhone", - "group": "users", + "method": "createTarget", + "group": "targets", "cookies": false, "type": "", - "demo": "users\/update-phone.md", + "demo": "users\/create-target.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", "scope": "users.write", "platforms": [ - "console", - "server" + "server", + "console" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/users\/update-user-phone.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/users\/create-target.md", "auth": { "Project": [], "Key": [] @@ -61065,15 +69160,52 @@ "schema": { "type": "object", "properties": { - "number": { + "targetId": { "type": "string", - "description": "User phone number.", - "x-example": "+12065550100", - "format": "phone" + "description": "Target ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.", + "x-example": "<TARGET_ID>", + "x-appwrite": { + "idGenerator": "ID.unique" + } + }, + "providerType": { + "type": "string", + "description": "The target provider type. Can be one of the following: `email`, `sms` or `push`.", + "x-example": "email", + "enum": [ + "email", + "sms", + "push" + ], + "x-enum-name": "MessagingProviderType", + "x-enum-keys": [ + "email", + "sms", + "push" + ] + }, + "identifier": { + "type": "string", + "description": "The target identifier (token, email, phone etc.)", + "x-example": "<IDENTIFIER>" + }, + "providerId": { + "type": "string", + "description": "Provider ID. Message will be sent to this target from the specified provider ID. If no provider ID is set the first setup provider will be used.", + "default": "", + "x-example": "<PROVIDER_ID>" + }, + "name": { + "type": "string", + "description": "Target name. Max length: 128 chars. For example: My Awesome App Galaxy S23.", + "default": "", + "x-example": "<NAME>" } }, "required": [ - "number" + "targetId", + "providerType", + "identifier" ] } } @@ -61081,21 +69213,21 @@ } } }, - "\/users\/{userId}\/prefs": { + "\/users\/{userId}\/targets\/{targetId}": { "get": { - "summary": "Get user preferences", - "operationId": "usersGetPrefs", + "summary": "Get user target", + "operationId": "usersGetTarget", "tags": [ "users" ], - "description": "Get the user preferences by its unique ID.", + "description": "Get a user's push notification target by ID.", "responses": { "200": { - "description": "Preferences", + "description": "Target", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/preferences" + "$ref": "#\/components\/schemas\/target" } } } @@ -61103,22 +69235,22 @@ }, "deprecated": false, "x-appwrite": { - "method": "getPrefs", - "group": "users", + "method": "getTarget", + "group": "targets", "cookies": false, "type": "", - "demo": "users\/get-prefs.md", + "demo": "users\/get-target.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", "scope": "users.read", "platforms": [ - "console", - "server" + "server", + "console" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/users\/get-user-prefs.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/users\/get-user-target.md", "auth": { "Project": [], "Key": [] @@ -61140,23 +69272,33 @@ "x-example": "<USER_ID>" }, "in": "path" + }, + { + "name": "targetId", + "description": "Target ID.", + "required": true, + "schema": { + "type": "string", + "x-example": "<TARGET_ID>" + }, + "in": "path" } ] }, "patch": { - "summary": "Update user preferences", - "operationId": "usersUpdatePrefs", + "summary": "Update user target", + "operationId": "usersUpdateTarget", "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.", + "description": "Update a messaging target.", "responses": { "200": { - "description": "Preferences", + "description": "Target", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/preferences" + "$ref": "#\/components\/schemas\/target" } } } @@ -61164,22 +69306,22 @@ }, "deprecated": false, "x-appwrite": { - "method": "updatePrefs", - "group": "users", + "method": "updateTarget", + "group": "targets", "cookies": false, "type": "", - "demo": "users\/update-prefs.md", + "demo": "users\/update-target.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", "scope": "users.write", "platforms": [ - "console", - "server" + "server", + "console" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/users\/update-user-prefs.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/users\/update-target.md", "auth": { "Project": [], "Key": [] @@ -61201,6 +69343,16 @@ "x-example": "<USER_ID>" }, "in": "path" + }, + { + "name": "targetId", + "description": "Target ID.", + "required": true, + "schema": { + "type": "string", + "x-example": "<TARGET_ID>" + }, + "in": "path" } ], "requestBody": { @@ -61209,63 +69361,60 @@ "schema": { "type": "object", "properties": { - "prefs": { - "type": "object", - "description": "Prefs key-value JSON object.", - "default": {}, - "x-example": "{}" + "identifier": { + "type": "string", + "description": "The target identifier (token, email, phone etc.)", + "default": "", + "x-example": "<IDENTIFIER>" + }, + "providerId": { + "type": "string", + "description": "Provider ID. Message will be sent to this target from the specified provider ID. If no provider ID is set the first setup provider will be used.", + "default": "", + "x-example": "<PROVIDER_ID>" + }, + "name": { + "type": "string", + "description": "Target name. Max length: 128 chars. For example: My Awesome App Galaxy S23.", + "default": "", + "x-example": "<NAME>" } - }, - "required": [ - "prefs" - ] + } } } } } - } - }, - "\/users\/{userId}\/sessions": { - "get": { - "summary": "List user sessions", - "operationId": "usersListSessions", + }, + "delete": { + "summary": "Delete user target", + "operationId": "usersDeleteTarget", "tags": [ "users" ], - "description": "Get the user sessions list by its unique ID.", + "description": "Delete a messaging target.", "responses": { - "200": { - "description": "Sessions List", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/sessionList" - } - } - } + "204": { + "description": "No content" } }, "deprecated": false, "x-appwrite": { - "method": "listSessions", - "group": "sessions", + "method": "deleteTarget", + "group": "targets", "cookies": false, "type": "", - "demo": "users\/list-sessions.md", + "demo": "users\/delete-target.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": [ - "users.read", - "sessions.read" - ], + "scope": "users.write", "platforms": [ - "console", - "server" + "server", + "console" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/users\/list-user-sessions.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/users\/delete-target.md", "auth": { "Project": [], "Key": [] @@ -61289,32 +69438,33 @@ "in": "path" }, { - "name": "total", - "description": "When set to false, the total count returned will be 0 and will not be calculated.", - "required": false, + "name": "targetId", + "description": "Target ID.", + "required": true, "schema": { - "type": "boolean", - "x-example": false, - "default": true + "type": "string", + "x-example": "<TARGET_ID>" }, - "in": "query" + "in": "path" } ] - }, + } + }, + "\/users\/{userId}\/tokens": { "post": { - "summary": "Create session", - "operationId": "usersCreateSession", + "summary": "Create token", + "operationId": "usersCreateToken", "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.", + "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": "Session", + "description": "Token", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/session" + "$ref": "#\/components\/schemas\/token" } } } @@ -61322,25 +69472,22 @@ }, "deprecated": false, "x-appwrite": { - "method": "createSession", + "method": "createToken", "group": "sessions", "cookies": false, "type": "", - "demo": "users\/create-session.md", + "demo": "users\/create-token.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": [ - "users.write", - "sessions.write" - ], + "scope": "users.write", "platforms": [ "console", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/users\/create-session.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/users\/create-token.md", "auth": { "Project": [], "Key": [] @@ -61355,111 +69502,80 @@ "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.", + "description": "User ID.", "required": true, "schema": { "type": "string", - "x-appwrite": { - "idGenerator": "ID.unique" - }, "x-example": "<USER_ID>" }, "in": "path" } - ] - }, - "delete": { - "summary": "Delete user sessions", - "operationId": "usersDeleteSessions", - "tags": [ - "users" - ], - "description": "Delete all user's sessions by using the user's unique ID.", - "responses": { - "204": { - "description": "No content" - } - }, - "deprecated": false, - "x-appwrite": { - "method": "deleteSessions", - "group": "sessions", - "cookies": false, - "type": "", - "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, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/users\/delete-user-sessions.md", - "auth": { - "Project": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } ], - "parameters": [ - { - "name": "userId", - "description": "User ID.", - "required": true, - "schema": { - "type": "string", - "x-example": "<USER_ID>" - }, - "in": "path" + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "length": { + "type": "integer", + "description": "Token length in characters. The default length is 6 characters", + "default": 6, + "x-example": 4, + "format": "int32" + }, + "expire": { + "type": "integer", + "description": "Token expiration period in seconds. The default expiration is 15 minutes.", + "default": 900, + "x-example": 60, + "format": "int32" + } + } + } + } } - ] + } } }, - "\/users\/{userId}\/sessions\/{sessionId}": { - "delete": { - "summary": "Delete user session", - "operationId": "usersDeleteSession", + "\/users\/{userId}\/verification": { + "patch": { + "summary": "Update email verification", + "operationId": "usersUpdateEmailVerification", "tags": [ "users" ], - "description": "Delete a user sessions by its unique ID.", + "description": "Update the user email verification status by its unique ID.", "responses": { - "204": { - "description": "No content" + "200": { + "description": "User", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/user" + } + } + } } }, "deprecated": false, "x-appwrite": { - "method": "deleteSession", - "group": "sessions", + "method": "updateEmailVerification", + "group": "users", "cookies": false, "type": "", - "demo": "users\/delete-session.md", + "demo": "users\/update-email-verification.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": [ - "users.write", - "sessions.write" - ], + "scope": "users.write", "platforms": [ "console", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/users\/delete-user-session.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/users\/update-user-email-verification.md", "auth": { "Project": [], "Key": [] @@ -61481,28 +69597,37 @@ "x-example": "<USER_ID>" }, "in": "path" - }, - { - "name": "sessionId", - "description": "Session ID.", - "required": true, - "schema": { - "type": "string", - "x-example": "<SESSION_ID>" - }, - "in": "path" } - ] + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "emailVerification": { + "type": "boolean", + "description": "User email verification status.", + "x-example": false + } + }, + "required": [ + "emailVerification" + ] + } + } + } + } } }, - "\/users\/{userId}\/status": { + "\/users\/{userId}\/verification\/phone": { "patch": { - "summary": "Update user status", - "operationId": "usersUpdateStatus", + "summary": "Update phone verification", + "operationId": "usersUpdatePhoneVerification", "tags": [ "users" ], - "description": "Update the user status by its unique ID. Use this endpoint as an alternative to deleting a user if you want to keep user's ID reserved.", + "description": "Update the user phone verification status by its unique ID.", "responses": { "200": { "description": "User", @@ -61517,11 +69642,11 @@ }, "deprecated": false, "x-appwrite": { - "method": "updateStatus", + "method": "updatePhoneVerification", "group": "users", "cookies": false, "type": "", - "demo": "users\/update-status.md", + "demo": "users\/update-phone-verification.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", @@ -61532,7 +69657,7 @@ ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/users\/update-user-status.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/users\/update-user-phone-verification.md", "auth": { "Project": [], "Key": [] @@ -61562,14 +69687,14 @@ "schema": { "type": "object", "properties": { - "status": { + "phoneVerification": { "type": "boolean", - "description": "User Status. To activate the user pass `true` and to block the user pass `false`.", + "description": "User phone verification status.", "x-example": false } }, "required": [ - "status" + "phoneVerification" ] } } @@ -61577,21 +69702,21 @@ } } }, - "\/users\/{userId}\/targets": { + "\/vectorsdb": { "get": { - "summary": "List user targets", - "operationId": "usersListTargets", + "summary": "List databases", + "operationId": "vectorsDBList", "tags": [ - "users" + "vectorsDB" ], - "description": "List the messaging targets that are associated with a user.", + "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": "Target list", + "description": "Databases List", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/targetList" + "$ref": "#\/components\/schemas\/databaseList" } } } @@ -61599,22 +69724,22 @@ }, "deprecated": false, "x-appwrite": { - "method": "listTargets", - "group": "targets", + "method": "list", + "group": "vectorsdb", "cookies": false, "type": "", - "demo": "users\/list-targets.md", + "demo": "vectorsdb\/list.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "users.read", + "scope": "databases.read", "platforms": [ - "server", - "console" + "console", + "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/users\/list-user-targets.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/vectorsdb\/list.md", "auth": { "Project": [], "Key": [] @@ -61627,19 +69752,9 @@ } ], "parameters": [ - { - "name": "userId", - "description": "User ID.", - "required": true, - "schema": { - "type": "string", - "x-example": "<USER_ID>" - }, - "in": "path" - }, { "name": "queries", - "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/queries). Maximum of 100 queries are allowed, each 4096 characters long. You may filter on the following attributes: userId, providerId, identifier, providerType", + "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/queries). Maximum of 100 queries are allowed, each 4096 characters long. You may filter on the following columns: name", "required": false, "schema": { "type": "array", @@ -61664,19 +69779,19 @@ ] }, "post": { - "summary": "Create user target", - "operationId": "usersCreateTarget", + "summary": "Create database", + "operationId": "vectorsDBCreate", "tags": [ - "users" + "vectorsDB" ], - "description": "Create a messaging target.", + "description": "Create a new Database.\n", "responses": { "201": { - "description": "Target", + "description": "Database", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/target" + "$ref": "#\/components\/schemas\/database" } } } @@ -61684,22 +69799,22 @@ }, "deprecated": false, "x-appwrite": { - "method": "createTarget", - "group": "targets", + "method": "create", + "group": "vectorsdb", "cookies": false, "type": "", - "demo": "users\/create-target.md", + "demo": "vectorsdb\/create.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "users.write", + "scope": "databases.write", "platforms": [ - "server", - "console" + "console", + "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/users\/create-target.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/vectorsdb\/create.md", "auth": { "Project": [], "Key": [] @@ -61711,70 +69826,168 @@ "Key": [] } ], - "parameters": [ - { - "name": "userId", - "description": "User ID.", - "required": true, - "schema": { - "type": "string", - "x-example": "<USER_ID>" - }, - "in": "path" - } - ], "requestBody": { "content": { "application\/json": { "schema": { "type": "object", "properties": { - "targetId": { + "databaseId": { "type": "string", - "description": "Target ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.", - "x-example": "<TARGET_ID>", + "description": "Unique Id. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.", + "x-example": "<DATABASE_ID>", "x-appwrite": { "idGenerator": "ID.unique" } }, - "providerType": { + "name": { "type": "string", - "description": "The target provider type. Can be one of the following: `email`, `sms` or `push`.", - "x-example": "email", - "enum": [ - "email", - "sms", - "push" - ], - "x-enum-name": "MessagingProviderType", - "x-enum-keys": [ - "email", - "sms", - "push" - ] + "description": "Database name. Max length: 128 chars.", + "x-example": "<NAME>" }, - "identifier": { - "type": "string", - "description": "The target identifier (token, email, phone etc.)", - "x-example": "<IDENTIFIER>" + "enabled": { + "type": "boolean", + "description": "Is the database enabled? When set to 'disabled', users cannot access the database but Server SDKs with an API key can still read and write to the database. No data is lost when this is toggled.", + "default": true, + "x-example": false }, - "providerId": { + "specification": { "type": "string", - "description": "Provider ID. Message will be sent to this target from the specified provider ID. If no provider ID is set the first setup provider will be used.", - "default": "", - "x-example": "<PROVIDER_ID>" + "description": "Database specification. Defaults to `serverless`, which creates the database on the shared pool. Any other value provisions a dedicated database on that specification.", + "default": "serverless", + "x-example": "serverless" }, - "name": { + "replicas": { + "type": "integer", + "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.", + "default": 0, + "x-example": 0, + "format": "int32" + } + }, + "required": [ + "databaseId", + "name" + ] + } + } + } + } + } + }, + "\/vectorsdb\/embeddings\/text": { + "post": { + "summary": "Create text embeddings", + "operationId": "vectorsDBCreateTextEmbeddings", + "tags": [ + "vectorsDB" + ], + "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": { + "method": "createTextEmbeddings", + "group": "embeddings", + "cookies": false, + "type": "", + "demo": "vectorsdb\/create-text-embeddings.md", + "rate-limit": 120, + "rate-time": 60, + "rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}", + "scope": "documents.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/vectorsdb\/create-text-embeddings.md", + "methods": [ + { + "name": "createTextEmbeddings", + "namespace": "vectorsDB", + "desc": "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": "vectorsdb\/create-text-embeddings.md", + "public": true + } + ], + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [], + "JWT": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "texts": { + "type": "array", + "description": "Array of text to generate embeddings.", + "x-example": null, + "items": { + "type": "string" + } + }, + "model": { "type": "string", - "description": "Target name. Max length: 128 chars. For example: My Awesome App Galaxy S23.", - "default": "", - "x-example": "<NAME>" + "description": "The embedding model to use for generating vector embeddings.", + "default": "nomic-embed-text", + "x-example": "nomic-embed-text", + "enum": [ + "nomic-embed-text", + "embedding-gemma", + "all-minilm", + "bge-small" + ], + "x-enum-name": "EmbeddingModel", + "x-enum-keys": [ + "nomic-embed-text", + "embedding-gemma", + "all-minilm", + "bge-small" + ] } }, "required": [ - "targetId", - "providerType", - "identifier" + "texts" ] } } @@ -61782,21 +69995,21 @@ } } }, - "\/users\/{userId}\/targets\/{targetId}": { + "\/vectorsdb\/specifications": { "get": { - "summary": "Get user target", - "operationId": "usersGetTarget", + "summary": "List dedicated database specifications.", + "operationId": "vectorsDBListSpecifications", "tags": [ - "users" + "vectorsDB" ], - "description": "Get a user's push notification target by ID.", + "description": "List the dedicated database specifications available on the current plan. Each specification reports its resource limits, pricing, and whether it is enabled for the organization.", "responses": { "200": { - "description": "Target", + "description": "SpecificationList", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/target" + "$ref": "#\/components\/schemas\/dedicatedDatabaseSpecificationList" } } } @@ -61804,22 +70017,21 @@ }, "deprecated": false, "x-appwrite": { - "method": "getTarget", - "group": "targets", + "method": "listSpecifications", + "group": "databases", "cookies": false, "type": "", - "demo": "users\/get-target.md", + "demo": "vectorsdb\/list-specifications.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "users.read", + "scope": "databases.read", "platforms": [ - "server", - "console" + "console", + "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/users\/get-user-target.md", "auth": { "Project": [], "Key": [] @@ -61830,44 +70042,24 @@ "Project": [], "Key": [] } - ], - "parameters": [ - { - "name": "userId", - "description": "User ID.", - "required": true, - "schema": { - "type": "string", - "x-example": "<USER_ID>" - }, - "in": "path" - }, - { - "name": "targetId", - "description": "Target ID.", - "required": true, - "schema": { - "type": "string", - "x-example": "<TARGET_ID>" - }, - "in": "path" - } ] - }, - "patch": { - "summary": "Update user target", - "operationId": "usersUpdateTarget", + } + }, + "\/vectorsdb\/transactions": { + "get": { + "summary": "List transactions", + "operationId": "vectorsDBListTransactions", "tags": [ - "users" + "vectorsDB" ], - "description": "Update a messaging target.", + "description": "List transactions across all databases.", "responses": { "200": { - "description": "Target", + "description": "Transaction List", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/target" + "$ref": "#\/components\/schemas\/transactionList" } } } @@ -61875,22 +70067,23 @@ }, "deprecated": false, "x-appwrite": { - "method": "updateTarget", - "group": "targets", + "method": "listTransactions", + "group": "transactions", "cookies": false, "type": "", - "demo": "users\/update-target.md", + "demo": "vectorsdb\/list-transactions.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "users.write", + "scope": "documents.read", "platforms": [ + "console", "server", - "console" + "client" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/users\/update-target.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/vectorsdb\/list-transactions.md", "auth": { "Project": [], "Key": [] @@ -61899,29 +70092,76 @@ "security": [ { "Project": [], - "Key": [] + "Key": [], + "Session": [], + "JWT": [] } ], "parameters": [ { - "name": "userId", - "description": "User ID.", - "required": true, + "name": "queries", + "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/queries).", + "required": false, "schema": { - "type": "string", - "x-example": "<USER_ID>" + "type": "array", + "items": { + "type": "string" + }, + "default": [] }, - "in": "path" - }, + "in": "query" + } + ] + }, + "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": { + "method": "createTransaction", + "group": "transactions", + "cookies": false, + "type": "", + "demo": "vectorsdb\/create-transaction.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "documents.write", + "platforms": [ + "console", + "server", + "client" + ], + "packaging": false, + "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/vectorsdb\/create-transaction.md", + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ { - "name": "targetId", - "description": "Target ID.", - "required": true, - "schema": { - "type": "string", - "x-example": "<TARGET_ID>" - }, - "in": "path" + "Project": [], + "Key": [], + "Session": [], + "JWT": [] } ], "requestBody": { @@ -61930,60 +70170,59 @@ "schema": { "type": "object", "properties": { - "identifier": { - "type": "string", - "description": "The target identifier (token, email, phone etc.)", - "default": "", - "x-example": "<IDENTIFIER>" - }, - "providerId": { - "type": "string", - "description": "Provider ID. Message will be sent to this target from the specified provider ID. If no provider ID is set the first setup provider will be used.", - "default": "", - "x-example": "<PROVIDER_ID>" - }, - "name": { - "type": "string", - "description": "Target name. Max length: 128 chars. For example: My Awesome App Galaxy S23.", - "default": "", - "x-example": "<NAME>" + "ttl": { + "type": "integer", + "description": "Seconds before the transaction expires.", + "default": 300, + "x-example": 60, + "format": "int32" } } } } } - } - }, - "delete": { - "summary": "Delete user target", - "operationId": "usersDeleteTarget", - "tags": [ - "users" - ], - "description": "Delete a messaging target.", - "responses": { - "204": { - "description": "No content" - } + } + } + }, + "\/vectorsdb\/transactions\/{transactionId}": { + "get": { + "summary": "Get transaction", + "operationId": "vectorsDBGetTransaction", + "tags": [ + "vectorsDB" + ], + "description": "Get a transaction by its unique ID.", + "responses": { + "200": { + "description": "Transaction", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/transaction" + } + } + } + } }, "deprecated": false, "x-appwrite": { - "method": "deleteTarget", - "group": "targets", + "method": "getTransaction", + "group": "transactions", "cookies": false, "type": "", - "demo": "users\/delete-target.md", + "demo": "vectorsdb\/get-transaction.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "users.write", + "scope": "documents.read", "platforms": [ + "console", "server", - "console" + "client" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/users\/delete-target.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/vectorsdb\/get-transaction.md", "auth": { "Project": [], "Key": [] @@ -61992,48 +70231,38 @@ "security": [ { "Project": [], - "Key": [] + "Key": [], + "Session": [], + "JWT": [] } ], "parameters": [ { - "name": "userId", - "description": "User ID.", - "required": true, - "schema": { - "type": "string", - "x-example": "<USER_ID>" - }, - "in": "path" - }, - { - "name": "targetId", - "description": "Target ID.", + "name": "transactionId", + "description": "Transaction ID.", "required": true, "schema": { "type": "string", - "x-example": "<TARGET_ID>" + "x-example": "<TRANSACTION_ID>" }, "in": "path" } ] - } - }, - "\/users\/{userId}\/tokens": { - "post": { - "summary": "Create token", - "operationId": "usersCreateToken", + }, + "patch": { + "summary": "Update transaction", + "operationId": "vectorsDBUpdateTransaction", "tags": [ - "users" + "vectorsDB" ], - "description": "Returns a token with a secret key for creating a session. Use the user ID and secret and submit a request to the [PUT \/account\/sessions\/token](https:\/\/appwrite.io\/docs\/references\/cloud\/client-web\/account#createSession) endpoint to complete the login process.\n", + "description": "Update a transaction, to either commit or roll back its operations.", "responses": { - "201": { - "description": "Token", + "200": { + "description": "Transaction", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/token" + "$ref": "#\/components\/schemas\/transaction" } } } @@ -62041,22 +70270,23 @@ }, "deprecated": false, "x-appwrite": { - "method": "createToken", - "group": "sessions", + "method": "updateTransaction", + "group": "transactions", "cookies": false, "type": "", - "demo": "users\/create-token.md", + "demo": "vectorsdb\/update-transaction.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "users.write", + "scope": "documents.write", "platforms": [ "console", - "server" + "server", + "client" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/users\/create-token.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/vectorsdb\/update-transaction.md", "auth": { "Project": [], "Key": [] @@ -62065,17 +70295,19 @@ "security": [ { "Project": [], - "Key": [] + "Key": [], + "Session": [], + "JWT": [] } ], "parameters": [ { - "name": "userId", - "description": "User ID.", + "name": "transactionId", + "description": "Transaction ID.", "required": true, "schema": { "type": "string", - "x-example": "<USER_ID>" + "x-example": "<TRANSACTION_ID>" }, "in": "path" } @@ -62086,65 +70318,55 @@ "schema": { "type": "object", "properties": { - "length": { - "type": "integer", - "description": "Token length in characters. The default length is 6 characters", - "default": 6, - "x-example": 4, - "format": "int32" + "commit": { + "type": "boolean", + "description": "Commit transaction?", + "default": false, + "x-example": false }, - "expire": { - "type": "integer", - "description": "Token expiration period in seconds. The default expiration is 15 minutes.", - "default": 900, - "x-example": 60, - "format": "int32" + "rollback": { + "type": "boolean", + "description": "Rollback transaction?", + "default": false, + "x-example": false } } } } } } - } - }, - "\/users\/{userId}\/verification": { - "patch": { - "summary": "Update email verification", - "operationId": "usersUpdateEmailVerification", + }, + "delete": { + "summary": "Delete transaction", + "operationId": "vectorsDBDeleteTransaction", "tags": [ - "users" + "vectorsDB" ], - "description": "Update the user email verification status by its unique ID.", + "description": "Delete a transaction by its unique ID.", "responses": { - "200": { - "description": "User", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/user" - } - } - } + "204": { + "description": "No content" } }, "deprecated": false, "x-appwrite": { - "method": "updateEmailVerification", - "group": "users", + "method": "deleteTransaction", + "group": "transactions", "cookies": false, "type": "", - "demo": "users\/update-email-verification.md", + "demo": "vectorsdb\/delete-transaction.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "users.write", + "scope": "documents.write", "platforms": [ "console", - "server" + "server", + "client" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/users\/update-user-email-verification.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/vectorsdb\/delete-transaction.md", "auth": { "Project": [], "Key": [] @@ -62153,57 +70375,40 @@ "security": [ { "Project": [], - "Key": [] + "Key": [], + "Session": [], + "JWT": [] } ], "parameters": [ { - "name": "userId", - "description": "User ID.", + "name": "transactionId", + "description": "Transaction ID.", "required": true, "schema": { "type": "string", - "x-example": "<USER_ID>" + "x-example": "<TRANSACTION_ID>" }, "in": "path" } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "emailVerification": { - "type": "boolean", - "description": "User email verification status.", - "x-example": false - } - }, - "required": [ - "emailVerification" - ] - } - } - } - } + ] } }, - "\/users\/{userId}\/verification\/phone": { - "patch": { - "summary": "Update phone verification", - "operationId": "usersUpdatePhoneVerification", + "\/vectorsdb\/transactions\/{transactionId}\/operations": { + "post": { + "summary": "Create operations", + "operationId": "vectorsDBCreateOperations", "tags": [ - "users" + "vectorsDB" ], - "description": "Update the user phone verification status by its unique ID.", + "description": "Create multiple operations in a single transaction.", "responses": { - "200": { - "description": "User", + "201": { + "description": "Transaction", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/user" + "$ref": "#\/components\/schemas\/transaction" } } } @@ -62211,22 +70416,23 @@ }, "deprecated": false, "x-appwrite": { - "method": "updatePhoneVerification", - "group": "users", + "method": "createOperations", + "group": "transactions", "cookies": false, "type": "", - "demo": "users\/update-phone-verification.md", + "demo": "vectorsdb\/create-operations.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "users.write", + "scope": "documents.write", "platforms": [ "console", - "server" + "server", + "client" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/users\/update-user-phone-verification.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/vectorsdb\/create-operations.md", "auth": { "Project": [], "Key": [] @@ -62235,17 +70441,19 @@ "security": [ { "Project": [], - "Key": [] + "Key": [], + "Session": [], + "JWT": [] } ], "parameters": [ { - "name": "userId", - "description": "User ID.", + "name": "transactionId", + "description": "Transaction ID.", "required": true, "schema": { "type": "string", - "x-example": "<USER_ID>" + "x-example": "<TRANSACTION_ID>" }, "in": "path" } @@ -62256,36 +70464,37 @@ "schema": { "type": "object", "properties": { - "phoneVerification": { - "type": "boolean", - "description": "User phone verification status.", - "x-example": false + "operations": { + "type": "array", + "description": "Array of staged operations.", + "default": [], + "x-example": "[\n\t {\n\t \"action\": \"create\",\n\t \"databaseId\": \"<DATABASE_ID>\",\n\t \"collectionId\": \"<COLLECTION_ID>\",\n\t \"documentId\": \"<DOCUMENT_ID>\",\n\t \"data\": {\n\t \"name\": \"Walter O'Brien\"\n\t }\n\t }\n\t]", + "items": { + "type": "object" + } } - }, - "required": [ - "phoneVerification" - ] + } } } } } } }, - "\/vectorsdb": { + "\/vectorsdb\/{databaseId}": { "get": { - "summary": "List databases", - "operationId": "vectorsDBList", + "summary": "Get database", + "operationId": "vectorsDBGet", "tags": [ "vectorsDB" ], - "description": "Get a list of all databases from the current Appwrite project. You can use the search parameter to filter your results.", + "description": "Get a database by its unique ID. This endpoint response returns a JSON object with the database metadata.", "responses": { "200": { - "description": "Databases List", + "description": "Database", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/databaseList" + "$ref": "#\/components\/schemas\/database" } } } @@ -62293,11 +70502,11 @@ }, "deprecated": false, "x-appwrite": { - "method": "list", + "method": "get", "group": "vectorsdb", "cookies": false, "type": "", - "demo": "vectorsdb\/list.md", + "demo": "vectorsdb\/get.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", @@ -62308,7 +70517,7 @@ ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/vectorsdb\/list.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/vectorsdb\/get.md", "auth": { "Project": [], "Key": [] @@ -62322,40 +70531,26 @@ ], "parameters": [ { - "name": "queries", - "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/queries). Maximum of 100 queries are allowed, each 4096 characters long. You may filter on the following 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, + "name": "databaseId", + "description": "Database ID.", + "required": true, "schema": { - "type": "boolean", - "x-example": false, - "default": true + "type": "string", + "x-example": "<DATABASE_ID>" }, - "in": "query" + "in": "path" } ] }, - "post": { - "summary": "Create database", - "operationId": "vectorsDBCreate", + "put": { + "summary": "Update database", + "operationId": "vectorsDBUpdate", "tags": [ "vectorsDB" ], - "description": "Create a new Database.\n", + "description": "Update a database by its unique ID.", "responses": { - "201": { + "200": { "description": "Database", "content": { "application\/json": { @@ -62368,11 +70563,11 @@ }, "deprecated": false, "x-appwrite": { - "method": "create", + "method": "update", "group": "vectorsdb", "cookies": false, "type": "", - "demo": "vectorsdb\/create.md", + "demo": "vectorsdb\/update.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", @@ -62383,7 +70578,7 @@ ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/vectorsdb\/create.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/vectorsdb\/update.md", "auth": { "Project": [], "Key": [] @@ -62395,20 +70590,24 @@ "Key": [] } ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "x-example": "<DATABASE_ID>" + }, + "in": "path" + } + ], "requestBody": { "content": { "application\/json": { "schema": { "type": "object", "properties": { - "databaseId": { - "type": "string", - "description": "Unique Id. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.", - "x-example": "<DATABASE_ID>", - "x-appwrite": { - "idGenerator": "ID.unique" - } - }, "name": { "type": "string", "description": "Database name. Max length: 128 chars.", @@ -62416,92 +70615,56 @@ }, "enabled": { "type": "boolean", - "description": "Is the database enabled? When set to 'disabled', users cannot access the database but Server SDKs with an API key can still read and write to the database. No data is lost when this is toggled.", + "description": "Is database enabled? When set to 'disabled', users cannot access the database but Server SDKs with an API key can still read and write to the database. No data is lost when this is toggled.", "default": true, "x-example": false }, - "specification": { - "type": "string", - "description": "Database specification. Defaults to `serverless`, which creates the database on the shared pool. Any other value provisions a dedicated database on that specification.", - "default": "serverless", - "x-example": "serverless" + "replicas": { + "type": "integer", + "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.", + "x-example": 0, + "format": "int32", + "x-nullable": true } }, "required": [ - "databaseId", "name" ] } } } } - } - }, - "\/vectorsdb\/embeddings\/text": { - "post": { - "summary": "Create text embeddings", - "operationId": "vectorsDBCreateTextEmbeddings", + }, + "delete": { + "summary": "Delete database", + "operationId": "vectorsDBDelete", "tags": [ "vectorsDB" ], - "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", + "description": "Delete a database by its unique ID. Only API keys with with databases.write scope can delete a database.", "responses": { - "200": { - "description": "Embedding list", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/embeddingList" - } - } - } + "204": { + "description": "No content" } }, "deprecated": false, "x-appwrite": { - "method": "createTextEmbeddings", - "group": "embeddings", + "method": "delete", + "group": "vectorsdb", "cookies": false, "type": "", - "demo": "vectorsdb\/create-text-embeddings.md", - "rate-limit": 120, - "rate-time": 60, - "rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}", - "scope": "documents.write", + "demo": "vectorsdb\/delete.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "databases.write", "platforms": [ "console", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/vectorsdb\/create-text-embeddings.md", - "methods": [ - { - "name": "createTextEmbeddings", - "namespace": "vectorsDB", - "desc": "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": "vectorsdb\/create-text-embeddings.md", - "public": true - } - ], + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/vectorsdb\/delete.md", "auth": { "Project": [], "Key": [] @@ -62510,68 +70673,38 @@ "security": [ { "Project": [], - "Key": [], - "JWT": [] + "Key": [] } ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "texts": { - "type": "array", - "description": "Array of text to generate embeddings.", - "x-example": null, - "items": { - "type": "string" - } - }, - "model": { - "type": "string", - "description": "The embedding model to use for generating vector embeddings.", - "default": "nomic-embed-text", - "x-example": "nomic-embed-text", - "enum": [ - "nomic-embed-text", - "embedding-gemma", - "all-minilm", - "bge-small" - ], - "x-enum-name": "EmbeddingModel", - "x-enum-keys": [ - "nomic-embed-text", - "embedding-gemma", - "all-minilm", - "bge-small" - ] - } - }, - "required": [ - "texts" - ] - } - } + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "x-example": "<DATABASE_ID>" + }, + "in": "path" } - } + ] } }, - "\/vectorsdb\/transactions": { + "\/vectorsdb\/{databaseId}\/collections": { "get": { - "summary": "List transactions", - "operationId": "vectorsDBListTransactions", + "summary": "List collections", + "operationId": "vectorsDBListCollections", "tags": [ "vectorsDB" ], - "description": "List transactions across all 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": "Transaction List", + "description": "VectorsDB Collections List", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/transactionList" + "$ref": "#\/components\/schemas\/vectorsdbCollectionList" } } } @@ -62579,23 +70712,22 @@ }, "deprecated": false, "x-appwrite": { - "method": "listTransactions", - "group": "transactions", + "method": "listCollections", + "group": "collections", "cookies": false, "type": "", - "demo": "vectorsdb\/list-transactions.md", + "demo": "vectorsdb\/list-collections.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "documents.read", + "scope": "collections.read", "platforms": [ "console", - "server", - "client" + "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/vectorsdb\/list-transactions.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/vectorsdb\/list-collections.md", "auth": { "Project": [], "Key": [] @@ -62604,15 +70736,23 @@ "security": [ { "Project": [], - "Key": [], - "Session": [], - "JWT": [] + "Key": [] } ], "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "x-example": "<DATABASE_ID>" + }, + "in": "path" + }, { "name": "queries", - "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/queries).", + "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more 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", @@ -62622,23 +70762,45 @@ "default": [] }, "in": "query" + }, + { + "name": "search", + "description": "Search term to filter your list results. Max length: 256 chars.", + "required": false, + "schema": { + "type": "string", + "x-example": "<SEARCH>", + "default": "" + }, + "in": "query" + }, + { + "name": "total", + "description": "When set to false, the total count returned will be 0 and will not be calculated.", + "required": false, + "schema": { + "type": "boolean", + "x-example": false, + "default": true + }, + "in": "query" } ] }, "post": { - "summary": "Create transaction", - "operationId": "vectorsDBCreateTransaction", + "summary": "Create collection", + "operationId": "vectorsDBCreateCollection", "tags": [ "vectorsDB" ], - "description": "Create a new transaction.", + "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": "Transaction", + "description": "VectorsDB Collection", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/transaction" + "$ref": "#\/components\/schemas\/vectorsdbCollection" } } } @@ -62646,23 +70808,22 @@ }, "deprecated": false, "x-appwrite": { - "method": "createTransaction", - "group": "transactions", + "method": "createCollection", + "group": "collections", "cookies": false, "type": "", - "demo": "vectorsdb\/create-transaction.md", + "demo": "vectorsdb\/create-collection.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "documents.write", + "scope": "collections.write", "platforms": [ "console", - "server", - "client" + "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/vectorsdb\/create-transaction.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/vectorsdb\/create-collection.md", "auth": { "Project": [], "Key": [] @@ -62671,9 +70832,19 @@ "security": [ { "Project": [], - "Key": [], - "Session": [], - "JWT": [] + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "x-example": "<DATABASE_ID>" + }, + "in": "path" } ], "requestBody": { @@ -62682,35 +70853,72 @@ "schema": { "type": "object", "properties": { - "ttl": { + "collectionId": { + "type": "string", + "description": "Unique Id. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.", + "x-example": "<COLLECTION_ID>", + "x-appwrite": { + "idGenerator": "ID.unique" + } + }, + "name": { + "type": "string", + "description": "Collection name. Max length: 128 chars.", + "x-example": "<NAME>" + }, + "dimension": { "type": "integer", - "description": "Seconds before the transaction expires.", - "default": 300, - "x-example": 60, + "description": "Embedding dimension.", + "x-example": 1, "format": "int32" + }, + "permissions": { + "type": "array", + "description": "An array of permissions strings. By default, no user is granted with any permissions. [Learn more about permissions](https:\/\/appwrite.io\/docs\/permissions).", + "x-example": "[\"read(\"any\")\"]", + "items": { + "type": "string" + } + }, + "documentSecurity": { + "type": "boolean", + "description": "Enables configuring permissions for individual documents. A user needs one of document or collection level permissions to access a document. [Learn more about permissions](https:\/\/appwrite.io\/docs\/permissions).", + "default": false, + "x-example": false + }, + "enabled": { + "type": "boolean", + "description": "Is collection enabled? When set to 'disabled', users cannot access the collection but Server SDKs with and API key can still read and write to the collection. No data is lost when this is toggled.", + "default": true, + "x-example": false } - } + }, + "required": [ + "collectionId", + "name", + "dimension" + ] } } } } } }, - "\/vectorsdb\/transactions\/{transactionId}": { + "\/vectorsdb\/{databaseId}\/collections\/{collectionId}": { "get": { - "summary": "Get transaction", - "operationId": "vectorsDBGetTransaction", + "summary": "Get collection", + "operationId": "vectorsDBGetCollection", "tags": [ "vectorsDB" ], - "description": "Get a transaction by its unique ID.", + "description": "Get a collection by its unique ID. This endpoint response returns a JSON object with the collection metadata.", "responses": { "200": { - "description": "Transaction", + "description": "VectorsDB Collection", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/transaction" + "$ref": "#\/components\/schemas\/vectorsdbCollection" } } } @@ -62718,23 +70926,22 @@ }, "deprecated": false, "x-appwrite": { - "method": "getTransaction", - "group": "transactions", + "method": "getCollection", + "group": "collections", "cookies": false, "type": "", - "demo": "vectorsdb\/get-transaction.md", + "demo": "vectorsdb\/get-collection.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "documents.read", + "scope": "collections.read", "platforms": [ "console", - "server", - "client" + "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/vectorsdb\/get-transaction.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/vectorsdb\/get-collection.md", "auth": { "Project": [], "Key": [] @@ -62743,38 +70950,46 @@ "security": [ { "Project": [], - "Key": [], - "Session": [], - "JWT": [] + "Key": [] } ], "parameters": [ { - "name": "transactionId", - "description": "Transaction ID.", + "name": "databaseId", + "description": "Database ID.", "required": true, "schema": { "type": "string", - "x-example": "<TRANSACTION_ID>" + "x-example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "collectionId", + "description": "Collection ID.", + "required": true, + "schema": { + "type": "string", + "x-example": "<COLLECTION_ID>" }, "in": "path" } ] }, - "patch": { - "summary": "Update transaction", - "operationId": "vectorsDBUpdateTransaction", + "put": { + "summary": "Update collection", + "operationId": "vectorsDBUpdateCollection", "tags": [ "vectorsDB" ], - "description": "Update a transaction, to either commit or roll back its operations.", + "description": "Update a collection by its unique ID.", "responses": { "200": { - "description": "Transaction", + "description": "VectorsDB Collection", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/transaction" + "$ref": "#\/components\/schemas\/vectorsdbCollection" } } } @@ -62782,23 +70997,22 @@ }, "deprecated": false, "x-appwrite": { - "method": "updateTransaction", - "group": "transactions", + "method": "updateCollection", + "group": "collections", "cookies": false, "type": "", - "demo": "vectorsdb\/update-transaction.md", + "demo": "vectorsdb\/update-collection.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "documents.write", + "scope": "collections.write", "platforms": [ "console", - "server", - "client" + "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/vectorsdb\/update-transaction.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/vectorsdb\/update-collection.md", "auth": { "Project": [], "Key": [] @@ -62807,19 +71021,27 @@ "security": [ { "Project": [], - "Key": [], - "Session": [], - "JWT": [] + "Key": [] } ], "parameters": [ { - "name": "transactionId", - "description": "Transaction ID.", + "name": "databaseId", + "description": "Database ID.", "required": true, "schema": { "type": "string", - "x-example": "<TRANSACTION_ID>" + "x-example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "collectionId", + "description": "Collection ID.", + "required": true, + "schema": { + "type": "string", + "x-example": "<COLLECTION_ID>" }, "in": "path" } @@ -62830,31 +71052,53 @@ "schema": { "type": "object", "properties": { - "commit": { + "name": { + "type": "string", + "description": "Collection name. Max length: 128 chars.", + "x-example": "<NAME>" + }, + "dimension": { + "type": "integer", + "description": "Embedding dimensions.", + "x-example": 1, + "format": "int32" + }, + "permissions": { + "type": "array", + "description": "An array of permission strings. By default, the current permissions are inherited. [Learn more about permissions](https:\/\/appwrite.io\/docs\/permissions).", + "x-example": "[\"read(\"any\")\"]", + "items": { + "type": "string" + } + }, + "documentSecurity": { "type": "boolean", - "description": "Commit transaction?", + "description": "Enables configuring permissions for individual documents. A user needs one of document or collection level permissions to access a document. [Learn more about permissions](https:\/\/appwrite.io\/docs\/permissions).", "default": false, "x-example": false }, - "rollback": { + "enabled": { "type": "boolean", - "description": "Rollback transaction?", - "default": false, + "description": "Is collection enabled? When set to 'disabled', users cannot access the collection but Server SDKs with and API key can still read and write to the collection. No data is lost when this is toggled.", + "default": true, "x-example": false } - } + }, + "required": [ + "name" + ] } } } } }, "delete": { - "summary": "Delete transaction", - "operationId": "vectorsDBDeleteTransaction", + "summary": "Delete collection", + "operationId": "vectorsDBDeleteCollection", "tags": [ "vectorsDB" ], - "description": "Delete a transaction by its unique ID.", + "description": "Delete a collection by its unique ID. Only users with write permissions have access to delete this resource.", "responses": { "204": { "description": "No content" @@ -62862,23 +71106,22 @@ }, "deprecated": false, "x-appwrite": { - "method": "deleteTransaction", - "group": "transactions", + "method": "deleteCollection", + "group": "collections", "cookies": false, "type": "", - "demo": "vectorsdb\/delete-transaction.md", + "demo": "vectorsdb\/delete-collection.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "documents.write", + "scope": "collections.write", "platforms": [ "console", - "server", - "client" + "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/vectorsdb\/delete-transaction.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/vectorsdb\/delete-collection.md", "auth": { "Project": [], "Key": [] @@ -62887,40 +71130,48 @@ "security": [ { "Project": [], - "Key": [], - "Session": [], - "JWT": [] + "Key": [] } ], "parameters": [ { - "name": "transactionId", - "description": "Transaction ID.", + "name": "databaseId", + "description": "Database ID.", "required": true, "schema": { "type": "string", - "x-example": "<TRANSACTION_ID>" + "x-example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "collectionId", + "description": "Collection ID.", + "required": true, + "schema": { + "type": "string", + "x-example": "<COLLECTION_ID>" }, "in": "path" } ] } }, - "\/vectorsdb\/transactions\/{transactionId}\/operations": { - "post": { - "summary": "Create operations", - "operationId": "vectorsDBCreateOperations", + "\/vectorsdb\/{databaseId}\/collections\/{collectionId}\/documents": { + "get": { + "summary": "List documents", + "operationId": "vectorsDBListDocuments", "tags": [ "vectorsDB" ], - "description": "Create multiple operations in a single transaction.", + "description": "Get a list of all the user's documents in a given collection. You can use the query params to filter your results.", "responses": { - "201": { - "description": "Transaction", + "200": { + "description": "Documents List", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/transaction" + "$ref": "#\/components\/schemas\/documentList" } } } @@ -62928,45 +71179,236 @@ }, "deprecated": false, "x-appwrite": { - "method": "createOperations", - "group": "transactions", + "method": "listDocuments", + "group": "documents", "cookies": false, "type": "", - "demo": "vectorsdb\/create-operations.md", + "demo": "vectorsdb\/list-documents.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "documents.write", + "scope": "documents.read", "platforms": [ "console", - "server", - "client" + "client", + "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/vectorsdb\/create-operations.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/vectorsdb\/list-documents.md", "auth": { "Project": [], - "Key": [] + "Session": [] } }, "security": [ { "Project": [], - "Key": [], "Session": [], + "Key": [], "JWT": [] } ], "parameters": [ { - "name": "transactionId", - "description": "Transaction ID.", + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "x-example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "collectionId", + "description": "Collection ID. You can create a new collection using the Database service [server integration](https:\/\/appwrite.io\/docs\/server\/databases#databasesCreateCollection).", "required": true, + "schema": { + "type": "string", + "x-example": "<COLLECTION_ID>" + }, + "in": "path" + }, + { + "name": "queries", + "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/queries). Maximum of 100 queries are allowed, each 4096 characters long.", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string" + }, + "default": [] + }, + "in": "query" + }, + { + "name": "transactionId", + "description": "Transaction ID to read uncommitted changes within the transaction.", + "required": false, "schema": { "type": "string", "x-example": "<TRANSACTION_ID>" }, + "in": "query" + }, + { + "name": "total", + "description": "When set to false, the total count returned will be 0 and will not be calculated.", + "required": false, + "schema": { + "type": "boolean", + "x-example": false, + "default": true + }, + "in": "query" + }, + { + "name": "ttl", + "description": "TTL (seconds) for cached responses when caching is enabled for select queries. Must be between 0 and 86400 (24 hours).", + "required": false, + "schema": { + "type": "integer", + "format": "int32", + "x-example": 0, + "default": 0 + }, + "in": "query" + } + ] + }, + "post": { + "summary": "Create document", + "operationId": "vectorsDBCreateDocument", + "tags": [ + "vectorsDB" + ], + "description": "Create a new Document. Before using this route, you should create a new collection resource using either a [server integration](https:\/\/appwrite.io\/docs\/server\/databases#documentsDBCreateCollection) API or directly from your database console.", + "responses": { + "201": { + "description": "Document", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/document" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "method": "createDocument", + "group": "documents", + "cookies": false, + "type": "", + "demo": "vectorsdb\/create-document.md", + "rate-limit": 120, + "rate-time": 60, + "rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}", + "scope": "documents.write", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/vectorsdb\/create-document.md", + "methods": [ + { + "name": "createDocument", + "namespace": "vectorsDB", + "desc": "Create document", + "auth": { + "Project": [], + "Session": [] + }, + "parameters": [ + "databaseId", + "collectionId", + "documentId", + "data", + "permissions" + ], + "required": [ + "databaseId", + "collectionId", + "documentId", + "data" + ], + "responses": [ + { + "code": 201, + "model": "#\/components\/schemas\/document" + } + ], + "description": "Create a new Document. Before using this route, you should create a new collection resource using either a [server integration](https:\/\/appwrite.io\/docs\/server\/databases#documentsDBCreateCollection) API or directly from your database console.", + "demo": "vectorsdb\/create-document.md", + "public": true + }, + { + "name": "createDocuments", + "namespace": "vectorsDB", + "desc": "Create documents", + "auth": { + "Project": [], + "Key": [] + }, + "parameters": [ + "databaseId", + "collectionId", + "documents" + ], + "required": [ + "databaseId", + "collectionId", + "documents" + ], + "responses": [ + { + "code": 201, + "model": "#\/components\/schemas\/documentList" + } + ], + "description": "Create new Documents. Before using this route, you should create a new collection resource using either a [server integration](https:\/\/appwrite.io\/docs\/server\/databases#documentsDBCreateCollection) API or directly from your database console.", + "demo": "vectorsdb\/create-documents.md", + "public": true + } + ], + "auth": { + "Project": [], + "Session": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "Key": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "x-example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "collectionId", + "description": "Collection ID. You can create a new collection using the Database service [server integration](https:\/\/appwrite.io\/docs\/server\/databases#databasesCreateCollection). Make sure to define attributes before creating documents.", + "required": true, + "schema": { + "type": "string", + "x-example": "<COLLECTION_ID>" + }, "in": "path" } ], @@ -62976,37 +71418,66 @@ "schema": { "type": "object", "properties": { - "operations": { + "documentId": { + "type": "string", + "description": "Document ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.", + "x-example": "<DOCUMENT_ID>", + "x-appwrite": { + "idGenerator": "ID.unique" + } + }, + "data": { + "type": "object", + "description": "Document data as JSON object.", + "default": {}, + "x-example": "{\"embeddings\": [0.12, -0.55, 0.88, 1.02], \"metadata\": {\"key\":\"value\"} }" + }, + "permissions": { "type": "array", - "description": "Array of staged operations.", + "description": "An array of permissions strings. By default, only the current user is granted all permissions. [Learn more about permissions](https:\/\/appwrite.io\/docs\/permissions).", + "x-example": "[\"read(\"any\")\"]", + "items": { + "type": "string" + } + }, + "documents": { + "type": "array", + "description": "Array of documents data as JSON objects.", "default": [], - "x-example": "[\n\t {\n\t \"action\": \"create\",\n\t \"databaseId\": \"<DATABASE_ID>\",\n\t \"collectionId\": \"<COLLECTION_ID>\",\n\t \"documentId\": \"<DOCUMENT_ID>\",\n\t \"data\": {\n\t \"name\": \"Walter O'Brien\"\n\t }\n\t }\n\t]", + "x-example": null, "items": { "type": "object" } + }, + "transactionId": { + "type": "string", + "description": "Transaction ID for staging the operation.", + "x-example": "<TRANSACTION_ID>" } - } + }, + "required": [ + "documentId", + "data" + ] } } } } - } - }, - "\/vectorsdb\/{databaseId}": { - "get": { - "summary": "Get database", - "operationId": "vectorsDBGet", + }, + "put": { + "summary": "Upsert documents", + "operationId": "vectorsDBUpsertDocuments", "tags": [ "vectorsDB" ], - "description": "Get a database by its unique ID. This endpoint response returns a JSON object with the database metadata.", + "description": "Create or update Documents. Before using this route, you should create a new collection resource using either a [server integration](https:\/\/appwrite.io\/docs\/server\/databases#documentsDBCreateCollection) API or directly from your database console.\n", "responses": { - "200": { - "description": "Database", + "201": { + "description": "Documents List", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/database" + "$ref": "#\/components\/schemas\/documentList" } } } @@ -63014,22 +71485,53 @@ }, "deprecated": false, "x-appwrite": { - "method": "get", - "group": "vectorsdb", + "method": "upsertDocuments", + "group": "documents", "cookies": false, "type": "", - "demo": "vectorsdb\/get.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "databases.read", + "demo": "vectorsdb\/upsert-documents.md", + "rate-limit": 120, + "rate-time": 60, + "rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}", + "scope": "documents.write", "platforms": [ "console", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/vectorsdb\/get.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/vectorsdb\/upsert-documents.md", + "methods": [ + { + "name": "upsertDocuments", + "namespace": "vectorsDB", + "desc": "", + "auth": { + "Project": [], + "Key": [] + }, + "parameters": [ + "databaseId", + "collectionId", + "documents", + "transactionId" + ], + "required": [ + "databaseId", + "collectionId", + "documents" + ], + "responses": [ + { + "code": 201, + "model": "#\/components\/schemas\/documentList" + } + ], + "description": "Create or update Documents. Before using this route, you should create a new collection resource using either a [server integration](https:\/\/appwrite.io\/docs\/server\/databases#documentsDBCreateCollection) API or directly from your database console.\n", + "demo": "vectorsdb\/upsert-documents.md", + "public": true + } + ], "auth": { "Project": [], "Key": [] @@ -63051,23 +71553,60 @@ "x-example": "<DATABASE_ID>" }, "in": "path" + }, + { + "name": "collectionId", + "description": "Collection ID.", + "required": true, + "schema": { + "type": "string", + "x-example": "<COLLECTION_ID>" + }, + "in": "path" } - ] + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "documents": { + "type": "array", + "description": "Array of document data as JSON objects. May contain partial documents.", + "x-example": null, + "items": { + "type": "object" + } + }, + "transactionId": { + "type": "string", + "description": "Transaction ID for staging the operation.", + "x-example": "<TRANSACTION_ID>" + } + }, + "required": [ + "documents" + ] + } + } + } + } }, - "put": { - "summary": "Update database", - "operationId": "vectorsDBUpdate", + "patch": { + "summary": "Update documents", + "operationId": "vectorsDBUpdateDocuments", "tags": [ "vectorsDB" ], - "description": "Update a database by its unique ID.", + "description": "Update all documents that match your queries, if no queries are submitted then all documents are updated. You can pass only specific fields to be updated.", "responses": { "200": { - "description": "Database", + "description": "Documents List", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/database" + "$ref": "#\/components\/schemas\/documentList" } } } @@ -63075,22 +71614,22 @@ }, "deprecated": false, "x-appwrite": { - "method": "update", - "group": "vectorsdb", + "method": "updateDocuments", + "group": "documents", "cookies": false, "type": "", - "demo": "vectorsdb\/update.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "databases.write", + "demo": "vectorsdb\/update-documents.md", + "rate-limit": 120, + "rate-time": 60, + "rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}", + "scope": "documents.write", "platforms": [ "console", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/vectorsdb\/update.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/vectorsdb\/update-documents.md", "auth": { "Project": [], "Key": [] @@ -63112,6 +71651,16 @@ "x-example": "<DATABASE_ID>" }, "in": "path" + }, + { + "name": "collectionId", + "description": "Collection ID.", + "required": true, + "schema": { + "type": "string", + "x-example": "<COLLECTION_ID>" + }, + "in": "path" } ], "requestBody": { @@ -63120,56 +71669,69 @@ "schema": { "type": "object", "properties": { - "name": { - "type": "string", - "description": "Database name. Max length: 128 chars.", - "x-example": "<NAME>" + "data": { + "type": "object", + "description": "Document data as JSON object. Include only attribute and value pairs to be updated.", + "default": [], + "x-example": "{}" }, - "enabled": { - "type": "boolean", - "description": "Is database enabled? When set to 'disabled', users cannot access the database but Server SDKs with an API key can still read and write to the database. No data is lost when this is toggled.", - "default": true, - "x-example": false + "queries": { + "type": "array", + "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/queries). Maximum of 100 queries are allowed, each 4096 characters long.", + "default": [], + "x-example": null, + "items": { + "type": "string" + } + }, + "transactionId": { + "type": "string", + "description": "Transaction ID for staging the operation.", + "x-example": "<TRANSACTION_ID>" } - }, - "required": [ - "name" - ] + } } } } } }, "delete": { - "summary": "Delete database", - "operationId": "vectorsDBDelete", + "summary": "Delete documents", + "operationId": "vectorsDBDeleteDocuments", "tags": [ "vectorsDB" ], - "description": "Delete a database by its unique ID. Only API keys with with databases.write scope can delete a database.", + "description": "Bulk delete documents using queries, if no queries are passed then all documents are deleted.", "responses": { - "204": { - "description": "No content" + "200": { + "description": "Documents List", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/documentList" + } + } + } } }, "deprecated": false, "x-appwrite": { - "method": "delete", - "group": "vectorsdb", + "method": "deleteDocuments", + "group": "documents", "cookies": false, "type": "", - "demo": "vectorsdb\/delete.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "databases.write", + "demo": "vectorsdb\/delete-documents.md", + "rate-limit": 60, + "rate-time": 60, + "rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}", + "scope": "documents.write", "platforms": [ "console", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/vectorsdb\/delete.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/vectorsdb\/delete-documents.md", "auth": { "Project": [], "Key": [] @@ -63191,25 +71753,58 @@ "x-example": "<DATABASE_ID>" }, "in": "path" + }, + { + "name": "collectionId", + "description": "Collection ID. You can create a new collection using the Database service [server integration](https:\/\/appwrite.io\/docs\/server\/databases#databasesCreateCollection).", + "required": true, + "schema": { + "type": "string", + "x-example": "<COLLECTION_ID>" + }, + "in": "path" + }, + { + "name": "queries", + "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/queries). Maximum of 100 queries are allowed, each 4096 characters long.", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string" + }, + "default": [] + }, + "in": "query" + }, + { + "name": "transactionId", + "description": "Transaction ID for staging the operation.", + "required": false, + "schema": { + "type": "string", + "x-example": "<TRANSACTION_ID>" + }, + "in": "query" } ] } }, - "\/vectorsdb\/{databaseId}\/collections": { + "\/vectorsdb\/{databaseId}\/collections\/{collectionId}\/documents\/{documentId}": { "get": { - "summary": "List collections", - "operationId": "vectorsDBListCollections", + "summary": "Get document", + "operationId": "vectorsDBGetDocument", "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.", + "description": "Get a document by its unique ID. This endpoint response returns a JSON object with the document data.", "responses": { "200": { - "description": "VectorsDB Collections List", + "description": "Document", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/vectorsdbCollectionList" + "$ref": "#\/components\/schemas\/document" } } } @@ -63217,31 +71812,34 @@ }, "deprecated": false, "x-appwrite": { - "method": "listCollections", - "group": "collections", + "method": "getDocument", + "group": "documents", "cookies": false, "type": "", - "demo": "vectorsdb\/list-collections.md", + "demo": "vectorsdb\/get-document.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "collections.read", + "scope": "documents.read", "platforms": [ "console", + "client", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/vectorsdb\/list-collections.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/vectorsdb\/get-document.md", "auth": { "Project": [], - "Key": [] + "Session": [] } }, "security": [ { "Project": [], - "Key": [] + "Session": [], + "Key": [], + "JWT": [] } ], "parameters": [ @@ -63255,9 +71853,29 @@ }, "in": "path" }, + { + "name": "collectionId", + "description": "Collection ID. You can create a new collection using the Database service [server integration](https:\/\/appwrite.io\/docs\/server\/databases#databasesCreateCollection).", + "required": true, + "schema": { + "type": "string", + "x-example": "<COLLECTION_ID>" + }, + "in": "path" + }, + { + "name": "documentId", + "description": "Document ID.", + "required": true, + "schema": { + "type": "string", + "x-example": "<DOCUMENT_ID>" + }, + "in": "path" + }, { "name": "queries", - "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/queries). Maximum of 100 queries are allowed, each 4096 characters long. You may filter on the following attributes: name, enabled, documentSecurity", + "description": "Array of query strings generated using the Query 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", @@ -63269,43 +71887,181 @@ "in": "query" }, { - "name": "search", - "description": "Search term to filter your list results. Max length: 256 chars.", + "name": "transactionId", + "description": "Transaction ID to read uncommitted changes within the transaction.", "required": false, "schema": { "type": "string", - "x-example": "<SEARCH>", - "default": "" + "x-example": "<TRANSACTION_ID>" }, "in": "query" + } + ] + }, + "put": { + "summary": "Upsert a document", + "operationId": "vectorsDBUpsertDocument", + "tags": [ + "vectorsDB" + ], + "description": "Create or update a Document. Before using this route, you should create a new collection resource using either a [server integration](https:\/\/appwrite.io\/docs\/server\/databases#documentsDBCreateCollection) API or directly from your database console.", + "responses": { + "201": { + "description": "Document", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/document" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "method": "upsertDocument", + "group": "documents", + "cookies": false, + "type": "", + "demo": "vectorsdb\/upsert-document.md", + "rate-limit": 120, + "rate-time": 60, + "rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}", + "scope": "documents.write", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/vectorsdb\/upsert-document.md", + "methods": [ + { + "name": "upsertDocument", + "namespace": "vectorsDB", + "desc": "", + "auth": { + "Project": [], + "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", + "x-example": "<DATABASE_ID>" + }, + "in": "path" }, { - "name": "total", - "description": "When set to false, the total count returned will be 0 and will not be calculated.", - "required": false, + "name": "collectionId", + "description": "Collection ID.", + "required": true, "schema": { - "type": "boolean", - "x-example": false, - "default": true + "type": "string", + "x-example": "<COLLECTION_ID>" }, - "in": "query" + "in": "path" + }, + { + "name": "documentId", + "description": "Document ID.", + "required": true, + "schema": { + "type": "string", + "x-appwrite": { + "idGenerator": "ID.unique" + }, + "x-example": "<DOCUMENT_ID>" + }, + "in": "path" } - ] + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "data": { + "type": "object", + "description": "Document data as JSON object. Include all required fields of the document to be created or updated.", + "default": [], + "x-example": "{}" + }, + "permissions": { + "type": "array", + "description": "An array of permissions strings. By default, the current permissions are inherited. [Learn more about permissions](https:\/\/appwrite.io\/docs\/permissions).", + "x-example": "[\"read(\"any\")\"]", + "items": { + "type": "string" + } + }, + "transactionId": { + "type": "string", + "description": "Transaction ID for staging the operation.", + "x-example": "<TRANSACTION_ID>" + } + } + } + } + } + } }, - "post": { - "summary": "Create collection", - "operationId": "vectorsDBCreateCollection", + "patch": { + "summary": "Update document", + "operationId": "vectorsDBUpdateDocument", "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.", + "description": "Update a document by its unique ID. Using the patch method you can pass only specific fields that will get updated.", "responses": { - "201": { - "description": "VectorsDB Collection", + "200": { + "description": "Document", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/vectorsdbCollection" + "$ref": "#\/components\/schemas\/document" } } } @@ -63313,41 +72069,64 @@ }, "deprecated": false, "x-appwrite": { - "method": "createCollection", - "group": "collections", + "method": "updateDocument", + "group": "documents", "cookies": false, "type": "", - "demo": "vectorsdb\/create-collection.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "collections.write", + "demo": "vectorsdb\/update-document.md", + "rate-limit": 120, + "rate-time": 60, + "rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}", + "scope": "documents.write", "platforms": [ "console", + "client", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/vectorsdb\/create-collection.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/vectorsdb\/update-document.md", "auth": { "Project": [], - "Key": [] + "Session": [] } }, "security": [ { "Project": [], - "Key": [] + "Session": [], + "Key": [], + "JWT": [] } ], "parameters": [ { - "name": "databaseId", - "description": "Database ID.", + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "x-example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "collectionId", + "description": "Collection ID.", + "required": true, + "schema": { + "type": "string", + "x-example": "<COLLECTION_ID>" + }, + "in": "path" + }, + { + "name": "documentId", + "description": "Document ID.", "required": true, "schema": { "type": "string", - "x-example": "<DATABASE_ID>" + "x-example": "<DOCUMENT_ID>" }, "in": "path" } @@ -63358,104 +72137,73 @@ "schema": { "type": "object", "properties": { - "collectionId": { - "type": "string", - "description": "Unique Id. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.", - "x-example": "<COLLECTION_ID>", - "x-appwrite": { - "idGenerator": "ID.unique" - } - }, - "name": { - "type": "string", - "description": "Collection name. Max length: 128 chars.", - "x-example": "<NAME>" - }, - "dimension": { - "type": "integer", - "description": "Embedding dimension.", - "x-example": 1, - "format": "int32" + "data": { + "type": "object", + "description": "Document data as JSON object. Include only fields and value pairs to be updated.", + "default": [], + "x-example": "{}" }, "permissions": { "type": "array", - "description": "An array of permissions strings. By default, no user is granted with any permissions. [Learn more about permissions](https:\/\/appwrite.io\/docs\/permissions).", + "description": "An array of permissions strings. By default, the current permissions are inherited. [Learn more about permissions](https:\/\/appwrite.io\/docs\/permissions).", "x-example": "[\"read(\"any\")\"]", "items": { "type": "string" } }, - "documentSecurity": { - "type": "boolean", - "description": "Enables configuring permissions for individual documents. A user needs one of document or collection level permissions to access a document. [Learn more about permissions](https:\/\/appwrite.io\/docs\/permissions).", - "default": false, - "x-example": false - }, - "enabled": { - "type": "boolean", - "description": "Is collection enabled? When set to 'disabled', users cannot access the collection but Server SDKs with and API key can still read and write to the collection. No data is lost when this is toggled.", - "default": true, - "x-example": false + "transactionId": { + "type": "string", + "description": "Transaction ID for staging the operation.", + "x-example": "<TRANSACTION_ID>" } - }, - "required": [ - "collectionId", - "name", - "dimension" - ] + } } } } } - } - }, - "\/vectorsdb\/{databaseId}\/collections\/{collectionId}": { - "get": { - "summary": "Get collection", - "operationId": "vectorsDBGetCollection", + }, + "delete": { + "summary": "Delete document", + "operationId": "vectorsDBDeleteDocument", "tags": [ "vectorsDB" ], - "description": "Get a collection by its unique ID. This endpoint response returns a JSON object with the collection metadata.", + "description": "Delete a document by its unique ID.", "responses": { - "200": { - "description": "VectorsDB Collection", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/vectorsdbCollection" - } - } - } + "204": { + "description": "No content" } }, "deprecated": false, "x-appwrite": { - "method": "getCollection", - "group": "collections", + "method": "deleteDocument", + "group": "documents", "cookies": false, "type": "", - "demo": "vectorsdb\/get-collection.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "collections.read", + "demo": "vectorsdb\/delete-document.md", + "rate-limit": 60, + "rate-time": 60, + "rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}", + "scope": "documents.write", "platforms": [ "console", + "client", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/vectorsdb\/get-collection.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/vectorsdb\/delete-document.md", "auth": { "Project": [], - "Key": [] + "Session": [] } }, "security": [ { "Project": [], - "Key": [] + "Session": [], + "Key": [], + "JWT": [] } ], "parameters": [ @@ -63471,30 +72219,52 @@ }, { "name": "collectionId", - "description": "Collection ID.", + "description": "Collection ID. You can create a new collection using the Database service [server integration](https:\/\/appwrite.io\/docs\/server\/databases#databasesCreateCollection).", "required": true, "schema": { "type": "string", "x-example": "<COLLECTION_ID>" }, "in": "path" + }, + { + "name": "documentId", + "description": "Document ID.", + "required": true, + "schema": { + "type": "string", + "x-example": "<DOCUMENT_ID>" + }, + "in": "path" + }, + { + "name": "transactionId", + "description": "Transaction ID for staging the operation.", + "required": false, + "schema": { + "type": "string", + "x-example": "<TRANSACTION_ID>" + }, + "in": "query" } ] - }, - "put": { - "summary": "Update collection", - "operationId": "vectorsDBUpdateCollection", + } + }, + "\/vectorsdb\/{databaseId}\/collections\/{collectionId}\/indexes": { + "get": { + "summary": "List indexes", + "operationId": "vectorsDBListIndexes", "tags": [ "vectorsDB" ], - "description": "Update a collection by its unique ID.", + "description": "List indexes in the collection.", "responses": { "200": { - "description": "VectorsDB Collection", + "description": "Indexes List", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/vectorsdbCollection" + "$ref": "#\/components\/schemas\/indexList" } } } @@ -63502,22 +72272,22 @@ }, "deprecated": false, "x-appwrite": { - "method": "updateCollection", - "group": "collections", + "method": "listIndexes", + "group": "indexes", "cookies": false, "type": "", - "demo": "vectorsdb\/update-collection.md", + "demo": "vectorsdb\/list-indexes.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "collections.write", + "scope": "collections.read", "platforms": [ "console", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/vectorsdb\/update-collection.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/vectorsdb\/list-indexes.md", "auth": { "Project": [], "Key": [] @@ -63542,80 +72312,66 @@ }, { "name": "collectionId", - "description": "Collection ID.", + "description": "Collection ID. You can create a new collection using the Database service [server integration](https:\/\/appwrite.io\/docs\/server\/databases#databasesCreateCollection).", "required": true, "schema": { "type": "string", "x-example": "<COLLECTION_ID>" }, "in": "path" + }, + { + "name": "queries", + "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/queries). Maximum of 100 queries are allowed, each 4096 characters long. You may filter on the following attributes: key, type, status, attributes, error", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string" + }, + "default": [] + }, + "in": "query" + }, + { + "name": "total", + "description": "When set to false, the total count returned will be 0 and will not be calculated.", + "required": false, + "schema": { + "type": "boolean", + "x-example": false, + "default": true + }, + "in": "query" } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "name": { - "type": "string", - "description": "Collection name. Max length: 128 chars.", - "x-example": "<NAME>" - }, - "dimension": { - "type": "integer", - "description": "Embedding dimensions.", - "x-example": 1, - "format": "int32" - }, - "permissions": { - "type": "array", - "description": "An array of permission strings. By default, the current permissions are inherited. [Learn more about permissions](https:\/\/appwrite.io\/docs\/permissions).", - "x-example": "[\"read(\"any\")\"]", - "items": { - "type": "string" - } - }, - "documentSecurity": { - "type": "boolean", - "description": "Enables configuring permissions for individual documents. A user needs one of document or collection level permissions to access a document. [Learn more about permissions](https:\/\/appwrite.io\/docs\/permissions).", - "default": false, - "x-example": false - }, - "enabled": { - "type": "boolean", - "description": "Is collection enabled? When set to 'disabled', users cannot access the collection but Server SDKs with and API key can still read and write to the collection. No data is lost when this is toggled.", - "default": true, - "x-example": false - } - }, - "required": [ - "name" - ] - } - } - } - } + ] }, - "delete": { - "summary": "Delete collection", - "operationId": "vectorsDBDeleteCollection", + "post": { + "summary": "Create index", + "operationId": "vectorsDBCreateIndex", "tags": [ "vectorsDB" ], - "description": "Delete a collection by its unique ID. Only users with write permissions have access to delete this resource.", + "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": { - "204": { - "description": "No content" + "202": { + "description": "Index", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/index" + } + } + } } }, "deprecated": false, "x-appwrite": { - "method": "deleteCollection", - "group": "collections", + "method": "createIndex", + "group": "indexes", "cookies": false, "type": "", - "demo": "vectorsdb\/delete-collection.md", + "demo": "vectorsdb\/create-index.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", @@ -63626,7 +72382,7 @@ ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/vectorsdb\/delete-collection.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/vectorsdb\/create-index.md", "auth": { "Project": [], "Key": [] @@ -63651,7 +72407,7 @@ }, { "name": "collectionId", - "description": "Collection ID.", + "description": "Collection ID. You can create a new collection using the Database service [server integration](https:\/\/appwrite.io\/docs\/server\/databases#databasesCreateCollection).", "required": true, "schema": { "type": "string", @@ -63659,24 +72415,102 @@ }, "in": "path" } - ] + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "key": { + "type": "string", + "description": "Index Key.", + "x-example": null + }, + "type": { + "type": "string", + "description": "Index type.", + "x-example": "hnsw_euclidean", + "enum": [ + "hnsw_euclidean", + "hnsw_dot", + "hnsw_cosine", + "object", + "key", + "unique" + ], + "x-enum-name": "VectorsDBIndexType", + "x-enum-keys": [ + "hnsw_euclidean", + "hnsw_dot", + "hnsw_cosine", + "object", + "key", + "unique" + ] + }, + "attributes": { + "type": "array", + "description": "Array of attributes to index. Maximum of 100 attributes are allowed, each 32 characters long.", + "x-example": null, + "items": { + "type": "string" + } + }, + "orders": { + "type": "array", + "description": "Array of index orders. Maximum of 100 orders are allowed.", + "default": [], + "x-example": null, + "items": { + "type": "string", + "enum": [ + "asc", + "desc" + ], + "x-enum-name": "OrderBy", + "x-enum-keys": [ + "asc", + "desc" + ] + } + }, + "lengths": { + "type": "array", + "description": "Length of index. Maximum of 100", + "default": [], + "x-example": null, + "items": { + "type": "integer" + } + } + }, + "required": [ + "key", + "type", + "attributes" + ] + } + } + } + } } }, - "\/vectorsdb\/{databaseId}\/collections\/{collectionId}\/documents": { + "\/vectorsdb\/{databaseId}\/collections\/{collectionId}\/indexes\/{key}": { "get": { - "summary": "List documents", - "operationId": "vectorsDBListDocuments", + "summary": "Get index", + "operationId": "vectorsDBGetIndex", "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.", + "description": "Get index by ID.", "responses": { "200": { - "description": "Documents List", + "description": "Index", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/documentList" + "$ref": "#\/components\/schemas\/index" } } } @@ -63684,34 +72518,31 @@ }, "deprecated": false, "x-appwrite": { - "method": "listDocuments", - "group": "documents", + "method": "getIndex", + "group": "indexes", "cookies": false, "type": "", - "demo": "vectorsdb\/list-documents.md", + "demo": "vectorsdb\/get-index.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "documents.read", + "scope": "collections.read", "platforms": [ "console", - "client", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/vectorsdb\/list-documents.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/vectorsdb\/get-index.md", "auth": { "Project": [], - "Session": [] + "Key": [] } }, "security": [ { "Project": [], - "Session": [], - "Key": [], - "JWT": [] + "Key": [] } ], "parameters": [ @@ -63736,163 +72567,55 @@ "in": "path" }, { - "name": "queries", - "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/queries). Maximum of 100 queries are allowed, each 4096 characters long.", - "required": false, - "schema": { - "type": "array", - "items": { - "type": "string" - }, - "default": [] - }, - "in": "query" - }, - { - "name": "transactionId", - "description": "Transaction ID to read uncommitted changes within the transaction.", - "required": false, - "schema": { - "type": "string", - "x-example": "<TRANSACTION_ID>" - }, - "in": "query" - }, - { - "name": "total", - "description": "When set to false, the total count returned will be 0 and will not be calculated.", - "required": false, - "schema": { - "type": "boolean", - "x-example": false, - "default": true - }, - "in": "query" - }, - { - "name": "ttl", - "description": "TTL (seconds) for cached responses when caching is enabled for select queries. Must be between 0 and 86400 (24 hours).", - "required": false, + "name": "key", + "description": "Index Key.", + "required": true, "schema": { - "type": "integer", - "format": "int32", - "x-example": 0, - "default": 0 + "type": "string" }, - "in": "query" + "in": "path" } ] }, - "post": { - "summary": "Create document", - "operationId": "vectorsDBCreateDocument", + "delete": { + "summary": "Delete index", + "operationId": "vectorsDBDeleteIndex", "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.", + "description": "Delete an index.", "responses": { - "201": { - "description": "Document", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/document" - } - } - } + "204": { + "description": "No content" } }, "deprecated": false, "x-appwrite": { - "method": "createDocument", - "group": "documents", + "method": "deleteIndex", + "group": "indexes", "cookies": false, "type": "", - "demo": "vectorsdb\/create-document.md", - "rate-limit": 120, - "rate-time": 60, - "rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}", - "scope": "documents.write", + "demo": "vectorsdb\/delete-index.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "collections.write", "platforms": [ "console", - "client", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/vectorsdb\/create-document.md", - "methods": [ - { - "name": "createDocument", - "namespace": "vectorsDB", - "desc": "Create document", - "auth": { - "Project": [], - "Session": [] - }, - "parameters": [ - "databaseId", - "collectionId", - "documentId", - "data", - "permissions" - ], - "required": [ - "databaseId", - "collectionId", - "documentId", - "data" - ], - "responses": [ - { - "code": 201, - "model": "#\/components\/schemas\/document" - } - ], - "description": "Create a new Document. Before using this route, you should create a new collection resource using either a [server integration](https:\/\/appwrite.io\/docs\/server\/databases#documentsDBCreateCollection) API or directly from your database console.", - "demo": "vectorsdb\/create-document.md", - "public": true - }, - { - "name": "createDocuments", - "namespace": "vectorsDB", - "desc": "Create documents", - "auth": { - "Project": [], - "Key": [] - }, - "parameters": [ - "databaseId", - "collectionId", - "documents" - ], - "required": [ - "databaseId", - "collectionId", - "documents" - ], - "responses": [ - { - "code": 201, - "model": "#\/components\/schemas\/documentList" - } - ], - "description": "Create new Documents. Before using this route, you should create a new collection resource using either a [server integration](https:\/\/appwrite.io\/docs\/server\/databases#documentsDBCreateCollection) API or directly from your database console.", - "demo": "vectorsdb\/create-documents.md", - "public": true - } - ], + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/vectorsdb\/delete-index.md", "auth": { "Project": [], - "Session": [] + "Key": [] } }, "security": [ - { - "Project": [], - "Session": [], - "Key": [], - "JWT": [] + { + "Project": [], + "Key": [] } ], "parameters": [ @@ -63908,78 +72631,41 @@ }, { "name": "collectionId", - "description": "Collection ID. You can create a new collection using the Database service [server integration](https:\/\/appwrite.io\/docs\/server\/databases#databasesCreateCollection). Make sure to define attributes before creating documents.", + "description": "Collection ID. You can create a new collection using the Database service [server integration](https:\/\/appwrite.io\/docs\/server\/databases#databasesCreateCollection).", "required": true, "schema": { "type": "string", "x-example": "<COLLECTION_ID>" }, "in": "path" + }, + { + "name": "key", + "description": "Index Key.", + "required": true, + "schema": { + "type": "string" + }, + "in": "path" } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "documentId": { - "type": "string", - "description": "Document ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.", - "default": "", - "x-example": "<DOCUMENT_ID>", - "x-appwrite": { - "idGenerator": "ID.unique" - } - }, - "data": { - "type": "object", - "description": "Document data as JSON object.", - "default": [], - "x-example": "{\"embeddings\": [0.12, -0.55, 0.88, 1.02], \"metadata\": {\"key\":\"value\"} }" - }, - "permissions": { - "type": "array", - "description": "An array of permissions strings. By default, only the current user is granted all permissions. [Learn more about permissions](https:\/\/appwrite.io\/docs\/permissions).", - "x-example": "[\"read(\"any\")\"]", - "items": { - "type": "string" - } - }, - "documents": { - "type": "array", - "description": "Array of documents data as JSON objects.", - "default": [], - "x-example": null, - "items": { - "type": "object" - } - }, - "transactionId": { - "type": "string", - "description": "Transaction ID for staging the operation.", - "x-example": "<TRANSACTION_ID>" - } - } - } - } - } - } - }, - "put": { - "summary": "Upsert documents", - "operationId": "vectorsDBUpsertDocuments", + ] + } + }, + "\/vectorsdb\/{databaseId}\/failovers": { + "post": { + "summary": "Trigger manual failover.", + "operationId": "vectorsDBCreateFailover", "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", + "description": "Trigger a manual failover for a dedicated database with high availability enabled. Promotes a replica to primary. The failover runs asynchronously; poll the database document for status updates.", "responses": { - "201": { - "description": "Documents List", + "202": { + "description": "DedicatedDatabase", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/documentList" + "$ref": "#\/components\/schemas\/dedicatedDatabase" } } } @@ -63987,53 +72673,21 @@ }, "deprecated": false, "x-appwrite": { - "method": "upsertDocuments", - "group": "documents", + "method": "createFailover", + "group": "databases", "cookies": false, "type": "", - "demo": "vectorsdb\/upsert-documents.md", - "rate-limit": 120, - "rate-time": 60, - "rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}", - "scope": "documents.write", + "demo": "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, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/vectorsdb\/upsert-documents.md", - "methods": [ - { - "name": "upsertDocuments", - "namespace": "vectorsDB", - "desc": "", - "auth": { - "Project": [], - "Key": [] - }, - "parameters": [ - "databaseId", - "collectionId", - "documents", - "transactionId" - ], - "required": [ - "databaseId", - "collectionId", - "documents" - ], - "responses": [ - { - "code": 201, - "model": "#\/components\/schemas\/documentList" - } - ], - "description": "Create or update Documents. Before using this route, you should create a new collection resource using either a [server integration](https:\/\/appwrite.io\/docs\/server\/databases#documentsDBCreateCollection) API or directly from your database console.\n", - "demo": "vectorsdb\/upsert-documents.md", - "public": true - } - ], "auth": { "Project": [], "Key": [] @@ -64055,16 +72709,6 @@ "x-example": "<DATABASE_ID>" }, "in": "path" - }, - { - "name": "collectionId", - "description": "Collection ID.", - "required": true, - "schema": { - "type": "string", - "x-example": "<COLLECTION_ID>" - }, - "in": "path" } ], "requestBody": { @@ -64073,42 +72717,34 @@ "schema": { "type": "object", "properties": { - "documents": { - "type": "array", - "description": "Array of document data as JSON objects. May contain partial documents.", - "x-example": null, - "items": { - "type": "object" - } - }, - "transactionId": { + "targetReplicaId": { "type": "string", - "description": "Transaction ID for staging the operation.", - "x-example": "<TRANSACTION_ID>" + "description": "Target replica ID to promote. If not specified, the healthiest replica is selected.", + "x-example": "<TARGET_REPLICA_ID>", + "x-nullable": true } - }, - "required": [ - "documents" - ] + } } } } } - }, - "patch": { - "summary": "Update documents", - "operationId": "vectorsDBUpdateDocuments", + } + }, + "\/vectorsdb\/{databaseId}\/replicas": { + "get": { + "summary": "Get replica status.", + "operationId": "vectorsDBGetReplicas", "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.", + "description": "Get high availability status for a dedicated database. Returns replica statuses, replication lag, and sync mode.", "responses": { "200": { - "description": "Documents List", + "description": "Replicas", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/documentList" + "$ref": "#\/components\/schemas\/dedicatedDatabaseReplicas" } } } @@ -64116,22 +72752,21 @@ }, "deprecated": false, "x-appwrite": { - "method": "updateDocuments", - "group": "documents", + "method": "getReplicas", + "group": "databases", "cookies": false, "type": "", - "demo": "vectorsdb\/update-documents.md", - "rate-limit": 120, - "rate-time": 60, - "rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}", - "scope": "documents.write", + "demo": "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, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/vectorsdb\/update-documents.md", "auth": { "Project": [], "Key": [] @@ -64153,64 +72788,25 @@ "x-example": "<DATABASE_ID>" }, "in": "path" - }, - { - "name": "collectionId", - "description": "Collection ID.", - "required": true, - "schema": { - "type": "string", - "x-example": "<COLLECTION_ID>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "data": { - "type": "object", - "description": "Document data as JSON object. Include only attribute and value pairs to be updated.", - "default": [], - "x-example": "{}" - }, - "queries": { - "type": "array", - "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/queries). Maximum of 100 queries are allowed, each 4096 characters long.", - "default": [], - "x-example": null, - "items": { - "type": "string" - } - }, - "transactionId": { - "type": "string", - "description": "Transaction ID for staging the operation.", - "x-example": "<TRANSACTION_ID>" - } - } - } - } } - } - }, - "delete": { - "summary": "Delete documents", - "operationId": "vectorsDBDeleteDocuments", + ] + } + }, + "\/vectorsdb\/{databaseId}\/status": { + "get": { + "summary": "Get database status.", + "operationId": "vectorsDBGetStatus", "tags": [ "vectorsDB" ], - "description": "Bulk delete documents using queries, if no queries are passed then all documents are deleted.", + "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": "Documents List", + "description": "Status", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/documentList" + "$ref": "#\/components\/schemas\/databaseStatus" } } } @@ -64218,22 +72814,21 @@ }, "deprecated": false, "x-appwrite": { - "method": "deleteDocuments", - "group": "documents", + "method": "getStatus", + "group": "databases", "cookies": false, "type": "", - "demo": "vectorsdb\/delete-documents.md", - "rate-limit": 60, - "rate-time": 60, - "rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}", - "scope": "documents.write", + "demo": "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, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/vectorsdb\/delete-documents.md", "auth": { "Project": [], "Key": [] @@ -64255,17 +72850,60 @@ "x-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": { + "method": "listRules", + "group": "rules", + "cookies": false, + "type": "", + "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, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/waf\/list-rules.md", + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ { - "name": "collectionId", - "description": "Collection ID. You can create a new collection using the Database service [server integration](https:\/\/appwrite.io\/docs\/server\/databases#databasesCreateCollection).", - "required": true, - "schema": { - "type": "string", - "x-example": "<COLLECTION_ID>" - }, - "in": "path" - }, + "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.", @@ -64280,33 +72918,161 @@ "in": "query" }, { - "name": "transactionId", - "description": "Transaction ID for staging the operation.", + "name": "search", + "description": "Search term to filter your list results. Max length: 256 chars.", "required": false, "schema": { "type": "string", - "x-example": "<TRANSACTION_ID>" + "x-example": "<SEARCH>", + "default": "" + }, + "in": "query" + }, + { + "name": "total", + "description": "When set to false, the total count returned will be 0 and will not be calculated.", + "required": false, + "schema": { + "type": "boolean", + "x-example": false, + "default": true }, "in": "query" } ] } }, - "\/vectorsdb\/{databaseId}\/collections\/{collectionId}\/documents\/{documentId}": { - "get": { - "summary": "Get document", - "operationId": "vectorsDBGetDocument", + "\/waf\/rules\/bypass": { + "post": { + "summary": "Create a bypass WAF rule.", + "operationId": "wafCreateBypassRule", "tags": [ - "vectorsDB" + "waf" ], - "description": "Get a document by its unique ID. This endpoint response returns a JSON object with the document data.", + "description": "Create a bypass WAF rule.\n", + "responses": { + "201": { + "description": "WafRuleBypass", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/wafRuleBypass" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "method": "createBypassRule", + "group": "rules", + "cookies": false, + "type": "", + "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, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/waf\/create-bypass-rule.md", + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "ruleId": { + "type": "string", + "description": "Rule ID. Choose a custom ID or pass `ID.unique()` to generate a unique one.", + "x-example": "<RULE_ID>", + "x-appwrite": { + "idGenerator": "ID.unique" + } + }, + "resourceType": { + "type": "string", + "description": "Resource type the rule applies to.", + "x-example": "api" + }, + "resourceId": { + "type": "string", + "description": "Resource identifier. Leave empty for the API resource type.", + "x-example": "<RESOURCE_ID>", + "x-nullable": true + }, + "name": { + "type": "string", + "description": "Rule name.", + "x-example": "<NAME>" + }, + "description": { + "type": "string", + "description": "Optional description for the rule.", + "default": "", + "x-example": "<DESCRIPTION>" + }, + "priority": { + "type": "integer", + "description": "Evaluation priority. Lower numbers run earlier.", + "default": 0, + "x-example": -100000, + "format": "int32" + }, + "enabled": { + "type": "boolean", + "description": "Set to false to create the rule in a disabled state.", + "default": true, + "x-example": false + }, + "conditions": { + "type": "string", + "description": "Array of condition strings generated using the WAF Condition builder. Maximum of 100 conditions are allowed, each 4096 characters long.", + "default": [], + "x-example": null + } + }, + "required": [ + "ruleId", + "resourceType", + "name" + ] + } + } + } + } + } + }, + "\/waf\/rules\/bypass\/{ruleId}": { + "patch": { + "summary": "Update a bypass WAF rule.", + "operationId": "wafUpdateBypassRule", + "tags": [ + "waf" + ], + "description": "Update a bypass WAF rule.\n", "responses": { "200": { - "description": "Document", + "description": "WafRuleBypass", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/document" + "$ref": "#\/components\/schemas\/wafRuleBypass" } } } @@ -64314,106 +73080,116 @@ }, "deprecated": false, "x-appwrite": { - "method": "getDocument", - "group": "documents", + "method": "updateBypassRule", + "group": "rules", "cookies": false, "type": "", - "demo": "vectorsdb\/get-document.md", + "demo": "waf\/update-bypass-rule.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "documents.read", + "scope": "wafRules.write", "platforms": [ "console", - "client", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/vectorsdb\/get-document.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/waf\/update-bypass-rule.md", "auth": { "Project": [], - "Session": [] + "Key": [] } }, "security": [ { "Project": [], - "Session": [], - "Key": [], - "JWT": [] + "Key": [] } ], "parameters": [ { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "x-example": "<DATABASE_ID>" - }, - "in": "path" - }, - { - "name": "collectionId", - "description": "Collection ID. You can create a new collection using the Database service [server integration](https:\/\/appwrite.io\/docs\/server\/databases#databasesCreateCollection).", - "required": true, - "schema": { - "type": "string", - "x-example": "<COLLECTION_ID>" - }, - "in": "path" - }, - { - "name": "documentId", - "description": "Document ID.", + "name": "ruleId", + "description": "Rule ID.", "required": true, "schema": { "type": "string", - "x-example": "<DOCUMENT_ID>" + "x-example": "<RULE_ID>" }, "in": "path" - }, - { - "name": "queries", - "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/queries). Maximum of 100 queries are allowed, each 4096 characters long.", - "required": false, - "schema": { - "type": "array", - "items": { - "type": "string" - }, - "default": [] - }, - "in": "query" - }, - { - "name": "transactionId", - "description": "Transaction ID to read uncommitted changes within the transaction.", - "required": false, - "schema": { - "type": "string", - "x-example": "<TRANSACTION_ID>" - }, - "in": "query" } - ] - }, - "put": { - "summary": "Upsert a document", - "operationId": "vectorsDBUpsertDocument", + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "resourceType": { + "type": "string", + "description": "Resource type the rule applies to.", + "x-example": "api", + "x-nullable": true + }, + "resourceId": { + "type": "string", + "description": "Resource identifier. Required for functions and sites.", + "x-example": "<RESOURCE_ID>", + "x-nullable": true + }, + "name": { + "type": "string", + "description": "Rule name.", + "x-example": "<NAME>", + "x-nullable": true + }, + "description": { + "type": "string", + "description": "Optional description for the rule.", + "x-example": "<DESCRIPTION>", + "x-nullable": true + }, + "priority": { + "type": "integer", + "description": "Evaluation priority. Lower numbers run earlier.", + "x-example": -100000, + "format": "int32", + "x-nullable": true + }, + "enabled": { + "type": "boolean", + "description": "Set to false to disable the rule.", + "x-example": false, + "x-nullable": true + }, + "conditions": { + "type": "string", + "description": "Array of condition strings generated using the WAF Condition builder. Maximum of 100 conditions are allowed, each 4096 characters long.", + "x-example": null, + "x-nullable": true + } + } + } + } + } + } + } + }, + "\/waf\/rules\/deny": { + "post": { + "summary": "Create a deny WAF rule.", + "operationId": "wafCreateDenyRule", "tags": [ - "vectorsDB" + "waf" ], - "description": "Create or update a Document. Before using this route, you should create a new collection resource using either a [server integration](https:\/\/appwrite.io\/docs\/server\/databases#documentsDBCreateCollection) API or directly from your database console.", + "description": "Create a deny WAF rule.\n", "responses": { "201": { - "description": "Document", + "description": "WafRuleDeny", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/document" + "$ref": "#\/components\/schemas\/wafRuleDeny" } } } @@ -64421,102 +73197,31 @@ }, "deprecated": false, "x-appwrite": { - "method": "upsertDocument", - "group": "documents", + "method": "createDenyRule", + "group": "rules", "cookies": false, "type": "", - "demo": "vectorsdb\/upsert-document.md", - "rate-limit": 120, - "rate-time": 60, - "rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}", - "scope": "documents.write", + "demo": "waf\/create-deny-rule.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "wafRules.write", "platforms": [ "console", - "client", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/vectorsdb\/upsert-document.md", - "methods": [ - { - "name": "upsertDocument", - "namespace": "vectorsDB", - "desc": "", - "auth": { - "Project": [], - "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 - } - ], + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/waf\/create-deny-rule.md", "auth": { "Project": [], - "Session": [] + "Key": [] } }, "security": [ { "Project": [], - "Session": [], - "Key": [], - "JWT": [] - } - ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "x-example": "<DATABASE_ID>" - }, - "in": "path" - }, - { - "name": "collectionId", - "description": "Collection ID.", - "required": true, - "schema": { - "type": "string", - "x-example": "<COLLECTION_ID>" - }, - "in": "path" - }, - { - "name": "documentId", - "description": "Document ID.", - "required": true, - "schema": { - "type": "string", - "x-appwrite": { - "idGenerator": "ID.unique" - }, - "x-example": "<DOCUMENT_ID>" - }, - "in": "path" + "Key": [] } ], "requestBody": { @@ -64525,45 +73230,82 @@ "schema": { "type": "object", "properties": { - "data": { - "type": "object", - "description": "Document data as JSON object. Include all required fields of the document to be created or updated.", - "default": [], - "x-example": "{}" - }, - "permissions": { - "type": "array", - "description": "An array of permissions strings. By default, the current permissions are inherited. [Learn more about permissions](https:\/\/appwrite.io\/docs\/permissions).", - "x-example": "[\"read(\"any\")\"]", - "items": { - "type": "string" + "ruleId": { + "type": "string", + "description": "Rule ID. Choose a custom ID or pass `ID.unique()` to generate a unique one.", + "x-example": "<RULE_ID>", + "x-appwrite": { + "idGenerator": "ID.unique" } }, - "transactionId": { + "resourceType": { "type": "string", - "description": "Transaction ID for staging the operation.", - "x-example": "<TRANSACTION_ID>" + "description": "Resource type the rule applies to.", + "x-example": "api" + }, + "resourceId": { + "type": "string", + "description": "Resource identifier. Required for functions and sites.", + "x-example": "<RESOURCE_ID>", + "x-nullable": true + }, + "name": { + "type": "string", + "description": "Rule name.", + "x-example": "<NAME>" + }, + "description": { + "type": "string", + "description": "Optional description for the rule.", + "default": "", + "x-example": "<DESCRIPTION>" + }, + "priority": { + "type": "integer", + "description": "Evaluation priority. Lower numbers run earlier.", + "default": 0, + "x-example": -100000, + "format": "int32" + }, + "enabled": { + "type": "boolean", + "description": "Set to false to create the rule in a disabled state.", + "default": true, + "x-example": false + }, + "conditions": { + "type": "string", + "description": "Array of condition strings generated using the WAF Condition builder. Maximum of 100 conditions are allowed, each 4096 characters long.", + "default": [], + "x-example": null } - } + }, + "required": [ + "ruleId", + "resourceType", + "name" + ] } } } } - }, + } + }, + "\/waf\/rules\/deny\/{ruleId}": { "patch": { - "summary": "Update document", - "operationId": "vectorsDBUpdateDocument", + "summary": "Update a deny WAF rule.", + "operationId": "wafUpdateDenyRule", "tags": [ - "vectorsDB" + "waf" ], - "description": "Update a document by its unique ID. Using the patch method you can pass only specific fields that will get updated.", + "description": "Update a deny WAF rule.\n", "responses": { "200": { - "description": "Document", + "description": "WafRuleDeny", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/document" + "$ref": "#\/components\/schemas\/wafRuleDeny" } } } @@ -64571,64 +73313,41 @@ }, "deprecated": false, "x-appwrite": { - "method": "updateDocument", - "group": "documents", + "method": "updateDenyRule", + "group": "rules", "cookies": false, "type": "", - "demo": "vectorsdb\/update-document.md", - "rate-limit": 120, - "rate-time": 60, - "rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}", - "scope": "documents.write", + "demo": "waf\/update-deny-rule.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "wafRules.write", "platforms": [ "console", - "client", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/vectorsdb\/update-document.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/waf\/update-deny-rule.md", "auth": { "Project": [], - "Session": [] + "Key": [] } }, "security": [ { "Project": [], - "Session": [], - "Key": [], - "JWT": [] + "Key": [] } ], "parameters": [ { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "x-example": "<DATABASE_ID>" - }, - "in": "path" - }, - { - "name": "collectionId", - "description": "Collection ID.", - "required": true, - "schema": { - "type": "string", - "x-example": "<COLLECTION_ID>" - }, - "in": "path" - }, - { - "name": "documentId", - "description": "Document ID.", + "name": "ruleId", + "description": "Rule ID.", "required": true, "schema": { "type": "string", - "x-example": "<DOCUMENT_ID>" + "x-example": "<RULE_ID>" }, "in": "path" } @@ -64639,134 +73358,201 @@ "schema": { "type": "object", "properties": { - "data": { - "type": "object", - "description": "Document data as JSON object. Include only fields and value pairs to be updated.", - "default": [], - "x-example": "{}" + "resourceType": { + "type": "string", + "description": "Resource type the rule applies to.", + "x-example": "api", + "x-nullable": true }, - "permissions": { - "type": "array", - "description": "An array of permissions strings. By default, the current permissions are inherited. [Learn more about permissions](https:\/\/appwrite.io\/docs\/permissions).", - "x-example": "[\"read(\"any\")\"]", - "items": { - "type": "string" - } + "resourceId": { + "type": "string", + "description": "Resource identifier. Required for functions and sites.", + "x-example": "<RESOURCE_ID>", + "x-nullable": true }, - "transactionId": { + "name": { "type": "string", - "description": "Transaction ID for staging the operation.", - "x-example": "<TRANSACTION_ID>" + "description": "Rule name.", + "x-example": "<NAME>", + "x-nullable": true + }, + "description": { + "type": "string", + "description": "Optional description for the rule.", + "x-example": "<DESCRIPTION>", + "x-nullable": true + }, + "priority": { + "type": "integer", + "description": "Evaluation priority. Lower numbers run earlier.", + "x-example": -100000, + "format": "int32", + "x-nullable": true + }, + "enabled": { + "type": "boolean", + "description": "Set to false to disable the rule.", + "x-example": false, + "x-nullable": true + }, + "conditions": { + "type": "string", + "description": "Array of condition strings generated using the WAF Condition builder. Maximum of 100 conditions are allowed, each 4096 characters long.", + "x-example": null, + "x-nullable": true } } } } } } - }, - "delete": { - "summary": "Delete document", - "operationId": "vectorsDBDeleteDocument", + } + }, + "\/waf\/rules\/rate-limit": { + "post": { + "summary": "Create a rate-limit WAF rule.", + "operationId": "wafCreateRateLimitRule", "tags": [ - "vectorsDB" + "waf" ], - "description": "Delete a document by its unique ID.", + "description": "Create a rate limit WAF rule.\n", "responses": { - "204": { - "description": "No content" + "201": { + "description": "WafRuleRateLimit", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/wafRuleRateLimit" + } + } + } } }, "deprecated": false, "x-appwrite": { - "method": "deleteDocument", - "group": "documents", + "method": "createRateLimitRule", + "group": "rules", "cookies": false, "type": "", - "demo": "vectorsdb\/delete-document.md", - "rate-limit": 60, - "rate-time": 60, - "rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}", - "scope": "documents.write", + "demo": "waf\/create-rate-limit-rule.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "wafRules.write", "platforms": [ "console", - "client", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/vectorsdb\/delete-document.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/waf\/create-rate-limit-rule.md", "auth": { "Project": [], - "Session": [] + "Key": [] } }, "security": [ { "Project": [], - "Session": [], - "Key": [], - "JWT": [] + "Key": [] } ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "x-example": "<DATABASE_ID>" - }, - "in": "path" - }, - { - "name": "collectionId", - "description": "Collection ID. You can create a new collection using the Database service [server integration](https:\/\/appwrite.io\/docs\/server\/databases#databasesCreateCollection).", - "required": true, - "schema": { - "type": "string", - "x-example": "<COLLECTION_ID>" - }, - "in": "path" - }, - { - "name": "documentId", - "description": "Document ID.", - "required": true, - "schema": { - "type": "string", - "x-example": "<DOCUMENT_ID>" - }, - "in": "path" - }, - { - "name": "transactionId", - "description": "Transaction ID for staging the operation.", - "required": false, - "schema": { - "type": "string", - "x-example": "<TRANSACTION_ID>" - }, - "in": "query" + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "ruleId": { + "type": "string", + "description": "Rule ID. Choose a custom ID or pass `ID.unique()` to generate a unique one.", + "x-example": "<RULE_ID>", + "x-appwrite": { + "idGenerator": "ID.unique" + } + }, + "resourceType": { + "type": "string", + "description": "Resource type the rule applies to.", + "x-example": "api" + }, + "resourceId": { + "type": "string", + "description": "Resource identifier. Required for functions and sites.", + "x-example": "<RESOURCE_ID>", + "x-nullable": true + }, + "name": { + "type": "string", + "description": "Rule name.", + "x-example": "<NAME>" + }, + "description": { + "type": "string", + "description": "Optional description for the rule.", + "default": "", + "x-example": "<DESCRIPTION>" + }, + "limit": { + "type": "integer", + "description": "Maximum number of matching requests allowed in the configured interval.", + "x-example": 1, + "format": "int32" + }, + "interval": { + "type": "integer", + "description": "Interval in seconds used for rate limiting.", + "x-example": 1, + "format": "int32" + }, + "priority": { + "type": "integer", + "description": "Evaluation priority. Lower numbers run earlier.", + "default": 0, + "x-example": -100000, + "format": "int32" + }, + "enabled": { + "type": "boolean", + "description": "Set to false to create the rule in a disabled state.", + "default": true, + "x-example": false + }, + "conditions": { + "type": "string", + "description": "Array of condition strings generated using the WAF Condition builder. Maximum of 100 conditions are allowed, each 4096 characters long.", + "default": [], + "x-example": null + } + }, + "required": [ + "ruleId", + "resourceType", + "name", + "limit", + "interval" + ] + } + } } - ] + } } }, - "\/vectorsdb\/{databaseId}\/collections\/{collectionId}\/indexes": { - "get": { - "summary": "List indexes", - "operationId": "vectorsDBListIndexes", + "\/waf\/rules\/rate-limit\/{ruleId}": { + "patch": { + "summary": "Update a rate-limit WAF rule.", + "operationId": "wafUpdateRateLimitRule", "tags": [ - "vectorsDB" + "waf" ], - "description": "List indexes in the collection.", + "description": "Update a rate limit WAF rule.\n", "responses": { "200": { - "description": "Indexes List", + "description": "WafRuleRateLimit", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/indexList" + "$ref": "#\/components\/schemas\/wafRuleRateLimit" } } } @@ -64774,22 +73560,22 @@ }, "deprecated": false, "x-appwrite": { - "method": "listIndexes", - "group": "indexes", + "method": "updateRateLimitRule", + "group": "rules", "cookies": false, "type": "", - "demo": "vectorsdb\/list-indexes.md", + "demo": "waf\/update-rate-limit-rule.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "collections.read", + "scope": "wafRules.write", "platforms": [ "console", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/vectorsdb\/list-indexes.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/waf\/update-rate-limit-rule.md", "auth": { "Project": [], "Key": [] @@ -64803,65 +73589,230 @@ ], "parameters": [ { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "x-example": "<DATABASE_ID>" - }, - "in": "path" - }, - { - "name": "collectionId", - "description": "Collection ID. You can create a new collection using the Database service [server integration](https:\/\/appwrite.io\/docs\/server\/databases#databasesCreateCollection).", + "name": "ruleId", + "description": "Rule ID.", "required": true, "schema": { "type": "string", - "x-example": "<COLLECTION_ID>" + "x-example": "<RULE_ID>" }, "in": "path" - }, - { - "name": "queries", - "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more 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" - }, + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "resourceType": { + "type": "string", + "description": "Resource type the rule applies to.", + "x-example": "api", + "x-nullable": true + }, + "resourceId": { + "type": "string", + "description": "Resource identifier. Required for functions and sites.", + "x-example": "<RESOURCE_ID>", + "x-nullable": true + }, + "name": { + "type": "string", + "description": "Rule name.", + "x-example": "<NAME>", + "x-nullable": true + }, + "description": { + "type": "string", + "description": "Optional description for the rule.", + "x-example": "<DESCRIPTION>", + "x-nullable": true + }, + "limit": { + "type": "integer", + "description": "Maximum number of matching requests allowed in the configured interval.", + "x-example": 1, + "format": "int32", + "x-nullable": true + }, + "interval": { + "type": "integer", + "description": "Interval in seconds used for rate limiting.", + "x-example": 1, + "format": "int32", + "x-nullable": true + }, + "priority": { + "type": "integer", + "description": "Evaluation priority. Lower numbers run earlier.", + "x-example": -100000, + "format": "int32", + "x-nullable": true + }, + "enabled": { + "type": "boolean", + "description": "Set to false to disable the rule.", + "x-example": false, + "x-nullable": true + }, + "conditions": { + "type": "string", + "description": "Array of condition strings generated using the WAF Condition builder. Maximum of 100 conditions are allowed, each 4096 characters long.", + "x-example": null, + "x-nullable": true + } + } + } + } + } + } + } + }, + "\/waf\/rules\/redirect": { + "post": { + "summary": "Create a redirect WAF rule.", + "operationId": "wafCreateRedirectRule", + "tags": [ + "waf" + ], + "description": "Create a redirect WAF rule.\n", + "responses": { + "201": { + "description": "WafRuleRedirect", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/wafRuleRedirect" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "method": "createRedirectRule", + "group": "rules", + "cookies": false, + "type": "", + "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, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/waf\/create-redirect-rule.md", + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ { - "name": "total", - "description": "When set to false, the total count returned will be 0 and will not be calculated.", - "required": false, - "schema": { - "type": "boolean", - "x-example": false, - "default": true - }, - "in": "query" + "Project": [], + "Key": [] } - ] - }, - "post": { - "summary": "Create index", - "operationId": "vectorsDBCreateIndex", + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "ruleId": { + "type": "string", + "description": "Rule ID. Choose a custom ID or pass `ID.unique()` to generate a unique one.", + "x-example": "<RULE_ID>", + "x-appwrite": { + "idGenerator": "ID.unique" + } + }, + "resourceType": { + "type": "string", + "description": "Resource type the rule applies to.", + "x-example": "api" + }, + "resourceId": { + "type": "string", + "description": "Resource identifier. Required for functions and sites.", + "x-example": "<RESOURCE_ID>", + "x-nullable": true + }, + "name": { + "type": "string", + "description": "Rule name.", + "x-example": "<NAME>" + }, + "description": { + "type": "string", + "description": "Optional description for the rule.", + "default": "", + "x-example": "<DESCRIPTION>" + }, + "location": { + "type": "string", + "description": "Location used for redirect responses.", + "x-example": "<LOCATION>" + }, + "statusCode": { + "type": "integer", + "description": "Integer status code used for redirect responses.", + "x-example": 300, + "format": "int32" + }, + "priority": { + "type": "integer", + "description": "Evaluation priority. Lower numbers run earlier.", + "default": 0, + "x-example": -100000, + "format": "int32" + }, + "enabled": { + "type": "boolean", + "description": "Set to false to create the rule in a disabled state.", + "default": true, + "x-example": false + }, + "conditions": { + "type": "string", + "description": "Array of condition strings generated using the WAF Condition builder. Maximum of 100 conditions are allowed, each 4096 characters long.", + "default": [], + "x-example": null + } + }, + "required": [ + "ruleId", + "resourceType", + "name", + "location", + "statusCode" + ] + } + } + } + } + } + }, + "\/waf\/rules\/redirect\/{ruleId}": { + "patch": { + "summary": "Update a redirect WAF rule.", + "operationId": "wafUpdateRedirectRule", "tags": [ - "vectorsDB" + "waf" ], - "description": "Creates an index on the attributes listed. Your index should include all the attributes you will query in a single request.\nAttributes can be `key`, `fulltext`, and `unique`.", + "description": "Update a redirect WAF rule.\n", "responses": { - "202": { - "description": "Index", + "200": { + "description": "WafRuleRedirect", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/index" + "$ref": "#\/components\/schemas\/wafRuleRedirect" } } } @@ -64869,22 +73820,22 @@ }, "deprecated": false, "x-appwrite": { - "method": "createIndex", - "group": "indexes", + "method": "updateRedirectRule", + "group": "rules", "cookies": false, "type": "", - "demo": "vectorsdb\/create-index.md", + "demo": "waf\/update-redirect-rule.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "collections.write", + "scope": "wafRules.write", "platforms": [ "console", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/vectorsdb\/create-index.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/waf\/update-redirect-rule.md", "auth": { "Project": [], "Key": [] @@ -64898,22 +73849,12 @@ ], "parameters": [ { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "x-example": "<DATABASE_ID>" - }, - "in": "path" - }, - { - "name": "collectionId", - "description": "Collection ID. You can create a new collection using the Database service [server integration](https:\/\/appwrite.io\/docs\/server\/databases#databasesCreateCollection).", + "name": "ruleId", + "description": "Rule ID.", "required": true, "schema": { "type": "string", - "x-example": "<COLLECTION_ID>" + "x-example": "<RULE_ID>" }, "in": "path" } @@ -64924,95 +73865,84 @@ "schema": { "type": "object", "properties": { - "key": { + "resourceType": { "type": "string", - "description": "Index Key.", - "x-example": null + "description": "Resource type the rule applies to.", + "x-example": "api", + "x-nullable": true }, - "type": { + "resourceId": { "type": "string", - "description": "Index type.", - "x-example": "hnsw_euclidean", - "enum": [ - "hnsw_euclidean", - "hnsw_dot", - "hnsw_cosine", - "object", - "key", - "unique" - ], - "x-enum-name": "VectorsDBIndexType", - "x-enum-keys": [ - "hnsw_euclidean", - "hnsw_dot", - "hnsw_cosine", - "object", - "key", - "unique" - ] + "description": "Resource identifier. Required for functions and sites.", + "x-example": "<RESOURCE_ID>", + "x-nullable": true }, - "attributes": { - "type": "array", - "description": "Array of attributes to index. Maximum of 100 attributes are allowed, each 32 characters long.", - "x-example": null, - "items": { - "type": "string" - } + "name": { + "type": "string", + "description": "Rule name.", + "x-example": "<NAME>", + "x-nullable": true }, - "orders": { - "type": "array", - "description": "Array of index orders. Maximum of 100 orders are allowed.", - "default": [], - "x-example": null, - "items": { - "type": "string", - "enum": [ - "asc", - "desc" - ], - "x-enum-name": "OrderBy", - "x-enum-keys": [ - "asc", - "desc" - ] - } + "description": { + "type": "string", + "description": "Optional description for the rule.", + "x-example": "<DESCRIPTION>", + "x-nullable": true }, - "lengths": { - "type": "array", - "description": "Length of index. Maximum of 100", - "default": [], + "location": { + "type": "string", + "description": "Location used for redirect responses.", + "x-example": "<LOCATION>", + "x-nullable": true + }, + "statusCode": { + "type": "integer", + "description": "Integer status code used for redirect responses.", + "x-example": 300, + "format": "int32", + "x-nullable": true + }, + "priority": { + "type": "integer", + "description": "Evaluation priority. Lower numbers run earlier.", + "x-example": -100000, + "format": "int32", + "x-nullable": true + }, + "enabled": { + "type": "boolean", + "description": "Set to false to disable the rule.", + "x-example": false, + "x-nullable": true + }, + "conditions": { + "type": "string", + "description": "Array of condition strings generated using the WAF Condition builder. Maximum of 100 conditions are allowed, each 4096 characters long.", "x-example": null, - "items": { - "type": "integer" - } + "x-nullable": true } - }, - "required": [ - "key", - "type", - "attributes" - ] + } } } } } } }, - "\/vectorsdb\/{databaseId}\/collections\/{collectionId}\/indexes\/{key}": { + "\/waf\/rules\/{ruleId}": { "get": { - "summary": "Get index", - "operationId": "vectorsDBGetIndex", + "summary": "Get a WAF rule.", + "operationId": "wafGetRule", "tags": [ - "vectorsDB" + "waf" ], - "description": "Get index by ID.", + "description": "Get a WAF rule by its ID.\n", "responses": { "200": { - "description": "Index", + "description": "WafRule", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/index" + "$ref": "#\/components\/schemas\/wafRule" } } } @@ -65020,22 +73950,22 @@ }, "deprecated": false, "x-appwrite": { - "method": "getIndex", - "group": "indexes", + "method": "getRule", + "group": "rules", "cookies": false, "type": "", - "demo": "vectorsdb\/get-index.md", + "demo": "waf\/get-rule.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "collections.read", + "scope": "wafRules.read", "platforms": [ "console", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/vectorsdb\/get-index.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/waf\/get-rule.md", "auth": { "Project": [], "Key": [] @@ -65049,43 +73979,24 @@ ], "parameters": [ { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "x-example": "<DATABASE_ID>" - }, - "in": "path" - }, - { - "name": "collectionId", - "description": "Collection ID. You can create a new collection using the Database service [server integration](https:\/\/appwrite.io\/docs\/server\/databases#databasesCreateCollection).", + "name": "ruleId", + "description": "Rule ID.", "required": true, "schema": { "type": "string", - "x-example": "<COLLECTION_ID>" - }, - "in": "path" - }, - { - "name": "key", - "description": "Index Key.", - "required": true, - "schema": { - "type": "string" + "x-example": "<RULE_ID>" }, "in": "path" } ] }, "delete": { - "summary": "Delete index", - "operationId": "vectorsDBDeleteIndex", + "summary": "Delete a WAF rule.", + "operationId": "wafDeleteRule", "tags": [ - "vectorsDB" + "waf" ], - "description": "Delete an index.", + "description": "Delete a WAF rule.\n", "responses": { "204": { "description": "No content" @@ -65093,22 +74004,25 @@ }, "deprecated": false, "x-appwrite": { - "method": "deleteIndex", - "group": "indexes", + "method": "deleteRule", + "group": "rules", "cookies": false, "type": "", - "demo": "vectorsdb\/delete-index.md", + "demo": "waf\/delete-rule.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "collections.write", + "scope": "wafRules.write", "platforms": [ "console", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/vectorsdb\/delete-index.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/waf\/delete-rule.md", + "produces": [ + "application\/json" + ], "auth": { "Project": [], "Key": [] @@ -65122,31 +74036,12 @@ ], "parameters": [ { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "x-example": "<DATABASE_ID>" - }, - "in": "path" - }, - { - "name": "collectionId", - "description": "Collection ID. You can create a new collection using the Database service [server integration](https:\/\/appwrite.io\/docs\/server\/databases#databasesCreateCollection).", + "name": "ruleId", + "description": "Rule ID.", "required": true, "schema": { "type": "string", - "x-example": "<COLLECTION_ID>" - }, - "in": "path" - }, - { - "name": "key", - "description": "Index Key.", - "required": true, - "schema": { - "type": "string" + "x-example": "<RULE_ID>" }, "in": "path" } @@ -65686,10 +74581,6 @@ "name": "locale", "description": "The Locale service allows you to customize your app based on your users' location." }, - { - "name": "health", - "description": "The Health service allows you to both validate and monitor your Appwrite server's health." - }, { "name": "projects", "description": "The Project service allows you to manage all the projects in your Appwrite server." @@ -66801,34 +75692,6 @@ "templates": "" } }, - "healthStatusList": { - "description": "Status List", - "type": "object", - "properties": { - "total": { - "type": "integer", - "description": "Total number of statuses that matched your query.", - "x-example": 5, - "format": "int32" - }, - "statuses": { - "type": "array", - "description": "List of statuses.", - "items": { - "$ref": "#\/components\/schemas\/healthStatus" - }, - "x-example": "" - } - }, - "required": [ - "total", - "statuses" - ], - "example": { - "total": 5, - "statuses": "" - } - }, "proxyRuleList": { "description": "Rule List", "type": "object", @@ -67230,19 +76093,58 @@ "legacy", "tablesdb", "documentsdb", - "vectorsdb" - ] + "vectorsdb", + "mysql", + "postgresql", + "mongodb" + ], + "x-enum-name": "DatabaseType" }, "status": { "type": "string", - "description": "Database status. Possible values: `provisioning`, `ready` or `failed`", + "description": "Dedicated database lifecycle status. Null when the database has no valid dedicated backing.", "x-example": "ready", + "readOnly": true, "enum": [ "provisioning", "ready", - "failed" + "inactive", + "paused", + "failed", + "deleting", + "deleted", + "restoring", + "scaling", + "upgrading", + "migrating", + "pausing", + "resuming", + "failing-over" ], - "x-enum-name": "DatabaseStatus" + "x-enum-name": "DatabaseStatus", + "nullable": true + }, + "engine": { + "type": "string", + "description": "Underlying engine of the dedicated backing: postgresql, mysql, mariadb, 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.", + "x-example": "postgresql", + "readOnly": true, + "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.", + "x-example": "s-2vcpu-2gb", + "readOnly": true, + "nullable": true + }, + "replicas": { + "type": "integer", + "description": "Number of secondary high availability replicas, excluding the primary. Null when backing configuration is unavailable.", + "x-example": 0, + "format": "int32", + "readOnly": true, + "nullable": true }, "policies": { "type": "array", @@ -67250,7 +76152,8 @@ "items": { "$ref": "#\/components\/schemas\/backupPolicy" }, - "x-example": {} + "x-example": {}, + "nullable": true }, "archives": { "type": "array", @@ -67258,7 +76161,8 @@ "items": { "$ref": "#\/components\/schemas\/backupArchive" }, - "x-example": {} + "x-example": {}, + "nullable": true } }, "required": [ @@ -67267,10 +76171,7 @@ "$createdAt", "$updatedAt", "enabled", - "type", - "status", - "policies", - "archives" + "type" ], "example": { "$id": "5e5ea5c16897e", @@ -67280,6 +76181,9 @@ "enabled": false, "type": "legacy", "status": "ready", + "engine": "postgresql", + "specification": "s-2vcpu-2gb", + "replicas": 0, "policies": {}, "archives": {} } @@ -73309,6 +82213,144 @@ "jwt": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c" } }, + "locale": { + "description": "Locale", + "type": "object", + "properties": { + "ip": { + "type": "string", + "description": "User IP address.", + "x-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", + "x-example": "US" + }, + "country": { + "type": "string", + "description": "Country name. This field support localization.", + "x-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.", + "x-example": "NA" + }, + "continent": { + "type": "string", + "description": "Continent name. This field support localization.", + "x-example": "North America" + }, + "eu": { + "type": "boolean", + "description": "True if country is part of the European Union.", + "x-example": false + }, + "currency": { + "type": "string", + "description": "Currency code in [ISO 4217-1](http:\/\/en.wikipedia.org\/wiki\/ISO_4217) three-character format", + "x-example": "USD" + }, + "city": { + "type": "string", + "description": "City", + "x-example": "Kathmandu", + "nullable": true + }, + "timeZone": { + "type": "string", + "description": "Name of timezone", + "x-example": "Asia\/Kathmandu", + "nullable": true + }, + "postalCode": { + "type": "string", + "description": "Postal code", + "x-example": "44600", + "nullable": true + }, + "latitude": { + "type": "number", + "description": "Latitude", + "x-example": "82.345", + "format": "double", + "nullable": true + }, + "longitude": { + "type": "number", + "description": "Longitude", + "x-example": "82.345", + "format": "double", + "nullable": true + }, + "autonomousSystemNumber": { + "type": "string", + "description": "Autonomous System Number (ASN) of the IP", + "x-example": "15169", + "nullable": true + }, + "autonomousSystemOrganization": { + "type": "string", + "description": "Organization that owns the ASN", + "x-example": "GOOGLE", + "nullable": true + }, + "isp": { + "type": "string", + "description": "Internet service provider of the IP", + "x-example": "Google", + "nullable": true + }, + "connectionType": { + "type": "string", + "description": "Connection type of the IP (e.g. cable, cellular, corporate)", + "x-example": "cable", + "nullable": true + }, + "connectionUsageType": { + "type": "string", + "description": "User type classification of the IP (e.g. residential, business, hosting)", + "x-example": "residential", + "nullable": true + }, + "connectionOrganization": { + "type": "string", + "description": "Registered organization of the IP", + "x-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", @@ -75100,6 +84142,11 @@ "description": "Last time the project was accessed via console. Used with plan's projectInactivityDays to determine if project is paused.", "x-example": "2020-10-15T06:38:00.000+00:00" }, + "wafEnabled": { + "type": "boolean", + "description": "Whether WAF enforcement is enabled for the project.", + "x-example": true + }, "billingLimits": { "type": "object", "description": "Billing limits reached", @@ -75135,6 +84182,17 @@ ], "nullable": true }, + "oAuth2ServerDefaultScopes": { + "type": "array", + "description": "OAuth2 server scopes used when an authorization request omits the scope parameter", + "items": { + "type": "string" + }, + "x-example": [ + "read" + ], + "nullable": true + }, "oAuth2ServerAuthorizationDetailsTypes": { "type": "array", "description": "OAuth2 server accepted RFC 9396 authorization_details types", @@ -75240,7 +84298,8 @@ "services", "protocols", "blocks", - "consoleAccessedAt" + "consoleAccessedAt", + "wafEnabled" ], "example": { "$id": "5e5ea5c16897e", @@ -75272,6 +84331,7 @@ "protocols": {}, "blocks": "", "consoleAccessedAt": "2020-10-15T06:38:00.000+00:00", + "wafEnabled": true, "billingLimits": "", "oAuth2ServerEnabled": false, "oAuth2ServerAuthorizationUrl": "https:\/\/cloud.appwrite.io\/oauth2\/.well-known\/openid-configuration", @@ -75279,6 +84339,9 @@ "read", "write" ], + "oAuth2ServerDefaultScopes": [ + "read" + ], "oAuth2ServerAuthorizationDetailsTypes": [ "calendar" ], @@ -76984,6 +86047,44 @@ "endpoint": "https:\/\/gitlab.com" } }, + "oAuth2Appwrite": { + "description": "OAuth2Appwrite", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "OAuth2 provider ID.", + "x-example": "github" + }, + "enabled": { + "type": "boolean", + "description": "OAuth2 provider is active and can be used to create sessions.", + "x-example": false + }, + "clientId": { + "type": "string", + "description": "Appwrite OAuth2 client ID.", + "x-example": "6a42000000000000b5a0" + }, + "clientSecret": { + "type": "string", + "description": "Appwrite OAuth2 client secret.", + "x-example": "b86afd000000000000000000000000000000000000000000000000000ced5f93" + } + }, + "required": [ + "$id", + "enabled", + "clientId", + "clientSecret" + ], + "example": { + "$id": "github", + "enabled": false, + "clientId": "6a42000000000000b5a0", + "clientSecret": "b86afd000000000000000000000000000000000000000000000000000ced5f93" + } + }, "oAuth2Authentik": { "description": "OAuth2Authentik", "type": "object", @@ -77560,6 +86661,9 @@ { "$ref": "#\/components\/schemas\/oAuth2Gitlab" }, + { + "$ref": "#\/components\/schemas\/oAuth2Appwrite" + }, { "$ref": "#\/components\/schemas\/oAuth2Authentik" }, @@ -77624,6 +86728,7 @@ "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", @@ -78548,176 +87653,6 @@ "countryName": "United States" } }, - "healthAntivirus": { - "description": "Health Antivirus", - "type": "object", - "properties": { - "version": { - "type": "string", - "description": "Antivirus version.", - "x-example": "1.0.0" - }, - "status": { - "type": "string", - "description": "Antivirus status. Possible values are: `disabled`, `offline`, `online`", - "x-example": "online", - "enum": [ - "disabled", - "offline", - "online" - ] - } - }, - "required": [ - "version", - "status" - ], - "example": { - "version": "1.0.0", - "status": "online" - } - }, - "healthQueue": { - "description": "Health Queue", - "type": "object", - "properties": { - "size": { - "type": "integer", - "description": "Amount of actions in the queue.", - "x-example": 8, - "format": "int32" - } - }, - "required": [ - "size" - ], - "example": { - "size": 8 - } - }, - "healthStatus": { - "description": "Health Status", - "type": "object", - "properties": { - "name": { - "type": "string", - "description": "Name of the service.", - "x-example": "database" - }, - "ping": { - "type": "integer", - "description": "Duration in milliseconds how long the health check took.", - "x-example": 128, - "format": "int32" - }, - "status": { - "type": "string", - "description": "Service status. Possible values are: `pass`, `fail`", - "x-example": "pass", - "enum": [ - "pass", - "fail" - ], - "x-enum-name": "HealthCheckStatus" - } - }, - "required": [ - "name", - "ping", - "status" - ], - "example": { - "name": "database", - "ping": 128, - "status": "pass" - } - }, - "healthCertificate": { - "description": "Health Certificate", - "type": "object", - "properties": { - "name": { - "type": "string", - "description": "Certificate name", - "x-example": "\/CN=www.google.com" - }, - "subjectSN": { - "type": "string", - "description": "Subject SN", - "x-example": "" - }, - "issuerOrganisation": { - "type": "string", - "description": "Issuer organisation", - "x-example": "" - }, - "validFrom": { - "type": "string", - "description": "Valid from", - "x-example": "1704200998" - }, - "validTo": { - "type": "string", - "description": "Valid to", - "x-example": "1711458597" - }, - "signatureTypeSN": { - "type": "string", - "description": "Signature type SN", - "x-example": "RSA-SHA256" - } - }, - "required": [ - "name", - "subjectSN", - "issuerOrganisation", - "validFrom", - "validTo", - "signatureTypeSN" - ], - "example": { - "name": "\/CN=www.google.com", - "subjectSN": "", - "issuerOrganisation": "", - "validFrom": "1704200998", - "validTo": "1711458597", - "signatureTypeSN": "RSA-SHA256" - } - }, - "healthTime": { - "description": "Health Time", - "type": "object", - "properties": { - "remoteTime": { - "type": "integer", - "description": "Current unix timestamp on trustful remote server.", - "x-example": 1639490751, - "format": "int32" - }, - "localTime": { - "type": "integer", - "description": "Current unix timestamp of local server where Appwrite runs.", - "x-example": 1639490844, - "format": "int32" - }, - "diff": { - "type": "integer", - "description": "Difference of unix remote and local timestamps in milliseconds.", - "x-example": 93, - "format": "int32" - } - }, - "required": [ - "remoteTime", - "localTime", - "diff" - ], - "example": { - "remoteTime": 1639490751, - "localTime": 1639490844, - "diff": 93 - } - }, "headers": { "description": "Headers", "type": "object", @@ -79986,6 +88921,51 @@ "description": "Location.", "x-example": "US" }, + "continentCode": { + "type": "string", + "description": "Continent code.", + "x-example": "NA" + }, + "city": { + "type": "string", + "description": "City name.", + "x-example": "Mountain View" + }, + "subdivisions": { + "type": "string", + "description": "Region\/state chain.", + "x-example": "California" + }, + "isp": { + "type": "string", + "description": "Internet service provider.", + "x-example": "Google" + }, + "autonomousSystemNumber": { + "type": "string", + "description": "Autonomous System Number (ASN).", + "x-example": "15169" + }, + "autonomousSystemOrganization": { + "type": "string", + "description": "Organization that owns the ASN.", + "x-example": "GOOGLE" + }, + "connectionType": { + "type": "string", + "description": "Connection type (e.g. cable, cellular, corporate).", + "x-example": "cable" + }, + "connectionUsageType": { + "type": "string", + "description": "User type (e.g. residential, business, hosting).", + "x-example": "residential" + }, + "connectionOrganization": { + "type": "string", + "description": "Registered organization of the IP.", + "x-example": "Google LLC" + }, "time": { "type": "string", "description": "Log creation date in ISO 8601 format.", @@ -80005,6 +88985,16 @@ "type": "string", "description": "Hostname.", "x-example": "appwrite.io" + }, + "sdk": { + "type": "string", + "description": "Name of the SDK that triggered the event.", + "x-example": "web" + }, + "sdkVersion": { + "type": "string", + "description": "Version of the SDK that triggered the event.", + "x-example": "14.0.0" } }, "required": [ @@ -80022,10 +89012,21 @@ "ip", "mode", "country", + "continentCode", + "city", + "subdivisions", + "isp", + "autonomousSystemNumber", + "autonomousSystemOrganization", + "connectionType", + "connectionUsageType", + "connectionOrganization", "time", "projectId", "teamId", - "hostname" + "hostname", + "sdk", + "sdkVersion" ], "example": { "$id": "5e5ea5c16897e", @@ -80042,10 +89043,21 @@ "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" + "hostname": "appwrite.io", + "sdk": "web", + "sdkVersion": "14.0.0" } }, "additionalResource": { @@ -80203,6 +89215,188 @@ "resourceType": "database" } }, + "dedicatedDatabaseBackup": { + "description": "Backup", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "Backup ID.", + "x-example": "5e5ea5c16897e" + }, + "$createdAt": { + "type": "string", + "description": "Backup creation time in ISO 8601 format.", + "x-example": "2020-10-15T06:38:00.000+00:00" + }, + "databaseId": { + "type": "string", + "description": "Database ID this backup belongs to.", + "x-example": "5e5ea5c16897e" + }, + "projectId": { + "type": "string", + "description": "Project ID.", + "x-example": "5e5ea5c16897e" + }, + "policyId": { + "type": "string", + "description": "Backup policy ID when the backup was created by a schedule.", + "x-example": "5e5ea5c16897e" + }, + "trigger": { + "type": "string", + "description": "Backup trigger. Possible values: manual, schedule.", + "x-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).", + "x-example": "full" + }, + "status": { + "type": "string", + "description": "Backup status. Possible values: pending (queued for processing), running (currently in progress), completed (successfully finished), failed (encountered an error), verified (integrity check passed).", + "x-example": "completed" + }, + "sizeBytes": { + "type": "integer", + "description": "Backup size in bytes.", + "x-example": 1073741824, + "format": "int32" + }, + "startedAt": { + "type": "string", + "description": "Backup start time in ISO 8601 format.", + "x-example": "2020-10-15T06:38:00.000+00:00", + "nullable": true + }, + "completedAt": { + "type": "string", + "description": "Backup completion time in ISO 8601 format.", + "x-example": "2020-10-15T06:38:00.000+00:00", + "nullable": true + }, + "verifiedAt": { + "type": "string", + "description": "Backup verification time in ISO 8601 format.", + "x-example": "2020-10-15T06:38:00.000+00:00", + "nullable": true + }, + "expiresAt": { + "type": "string", + "description": "Backup expiration time in ISO 8601 format.", + "x-example": "2020-10-15T06:38:00.000+00:00", + "nullable": true + }, + "error": { + "type": "string", + "description": "Error message if backup failed.", + "x-example": "" + } + }, + "required": [ + "$id", + "$createdAt", + "databaseId", + "projectId", + "policyId", + "trigger", + "type", + "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", + "status": "completed", + "sizeBytes": 1073741824, + "startedAt": "2020-10-15T06:38:00.000+00:00", + "completedAt": "2020-10-15T06:38:00.000+00:00", + "verifiedAt": "2020-10-15T06:38:00.000+00:00", + "expiresAt": "2020-10-15T06:38:00.000+00:00", + "error": "" + } + }, + "dedicatedDatabaseBackupList": { + "description": "BackupList", + "type": "object", + "properties": { + "total": { + "type": "integer", + "description": "Total number of backups.", + "x-example": 5, + "format": "int32" + }, + "backups": { + "type": "array", + "description": "List of backups.", + "items": { + "$ref": "#\/components\/schemas\/dedicatedDatabaseBackup" + }, + "x-example": [] + } + }, + "required": [ + "total", + "backups" + ], + "example": { + "total": 5, + "backups": [] + } + }, + "dedicatedDatabaseBackupStorage": { + "description": "BackupStorageConfig", + "type": "object", + "properties": { + "provider": { + "type": "string", + "description": "Storage provider. Possible values: s3 (Amazon S3 or S3-compatible), gcs (Google Cloud Storage), azure (Azure Blob Storage).", + "x-example": "s3" + }, + "bucket": { + "type": "string", + "description": "Storage bucket or container name.", + "x-example": "my-backup-bucket" + }, + "region": { + "type": "string", + "description": "Storage region.", + "x-example": "us-east-1" + }, + "prefix": { + "type": "string", + "description": "Object key prefix for backups.", + "x-example": "backups\/" + }, + "endpoint": { + "type": "string", + "description": "Custom endpoint for S3-compatible storage.", + "x-example": "https:\/\/minio.example.com" + } + }, + "required": [ + "provider", + "bucket", + "region", + "prefix", + "endpoint" + ], + "example": { + "provider": "s3", + "bucket": "my-backup-bucket", + "region": "us-east-1", + "prefix": "backups\/", + "endpoint": "https:\/\/minio.example.com" + } + }, "billingLimits": { "description": "Limits", "type": "object", @@ -80348,6 +89542,12 @@ "x-example": 25, "format": "int32" }, + "wafRules": { + "type": "integer", + "description": "Maximum WAF rules per project", + "x-example": 2, + "format": "int32" + }, "projects": { "type": "integer", "description": "Projects", @@ -80486,6 +89686,19 @@ "x-example": 30, "format": "int32" }, + "usageLogsIntervals": { + "type": "array", + "description": "Usage log time intervals allowed for this plan (e.g. 15m, 1h, 1d).", + "items": { + "type": "string" + }, + "x-example": [ + "15m", + "1h", + "1d" + ], + "nullable": true + }, "projectInactivityDays": { "type": "integer", "description": "Number of days of console inactivity before a project is paused. 0 means pausing is disabled.", @@ -80703,6 +89916,7 @@ "screenshotsGenerated", "members", "webhooks", + "wafRules", "projects", "platforms", "users", @@ -80769,6 +89983,7 @@ "screenshotsGenerated": 50, "members": 25, "webhooks": 25, + "wafRules": 2, "projects": 2, "platforms": 3, "users": 25, @@ -80792,6 +90007,11 @@ "domains": 5, "activityLogs": 7, "usageLogs": 30, + "usageLogsIntervals": [ + "15m", + "1h", + "1d" + ], "projectInactivityDays": 7, "alertLimit": 80, "usage": null, @@ -81000,13 +90220,6 @@ "format": "int32", "nullable": true }, - "maxDatabasesPerProject": { - "type": "integer", - "description": "Maximum number of dedicated databases per project.", - "x-example": 10, - "format": "int32", - "nullable": true - }, "maxReplicas": { "type": "integer", "description": "Maximum number of high-availability replicas per dedicated database.", @@ -81124,7 +90337,6 @@ "maxMemoryMb": 65536, "minStorageGb": 1, "maxStorageGb": 16384, - "maxDatabasesPerProject": 10, "maxReplicas": 5, "maxConnections": 10000, "maxIpAllowlistSize": 100, @@ -81236,38 +90448,966 @@ }, "organizationId": { "type": "string", - "description": "ID of the organization that owns the project.", - "x-example": "5e5ea5c16897e" + "description": "ID of the organization that owns the project.", + "x-example": "5e5ea5c16897e" + }, + "billingPlan": { + "type": "string", + "description": "Billing plan of the organization that owns the project.", + "x-example": "pro" + } + }, + "required": [ + "$createdAt", + "resourceType", + "resourceId", + "mode", + "projectName", + "region", + "organizationName", + "organizationId", + "billingPlan" + ], + "example": { + "$createdAt": "2020-10-15T06:38:00.000+00:00", + "resourceType": "project", + "resourceId": "5e5ea5c16897e", + "mode": "readOnly", + "reason": "Payment overdue", + "expiredAt": "2020-10-15T06:38:00.000+00:00", + "projectName": "My Project", + "region": "fra", + "organizationName": "Acme Inc.", + "organizationId": "5e5ea5c16897e", + "billingPlan": "pro" + } + }, + "dedicatedDatabaseBranch": { + "description": "Branch", + "type": "object", + "properties": { + "branchId": { + "type": "string", + "description": "Branch identifier.", + "x-example": "a1b2c3d4" + }, + "branchName": { + "type": "string", + "description": "Branch name.", + "x-example": "branch-a1b2c3d4" + }, + "namespace": { + "type": "string", + "description": "Kubernetes namespace where the branch is deployed.", + "x-example": "db-myproject-mydb-branch-a1b2c3d4" + }, + "expiresAt": { + "type": "integer", + "description": "Unix timestamp when the branch expires.", + "x-example": 1711411200, + "format": "int32" + }, + "host": { + "type": "string", + "description": "Branch hostname for direct connections.", + "x-example": "db-myproject-mydb-a1b2c3d4.fra.appwrite.center" + }, + "port": { + "type": "integer", + "description": "Branch port.", + "x-example": 5432, + "format": "int32" + }, + "database": { + "type": "string", + "description": "Database name the client sends for routing to the branch.", + "x-example": "db-myproject-mydb-a1b2c3d4" + }, + "username": { + "type": "string", + "description": "Database username. Shared with the parent database.", + "x-example": "appwrite" + }, + "password": { + "type": "string", + "description": "Database password. Shared with the parent database.", + "x-example": "********" + }, + "ssl": { + "type": "boolean", + "description": "Whether SSL is required.", + "x-example": false + }, + "engine": { + "type": "string", + "description": "Database engine. Possible values: postgresql, mysql, mariadb, mongodb.", + "x-example": "postgresql" + }, + "connectionString": { + "type": "string", + "description": "Full connection string for the branch.", + "x-example": "postgresql:\/\/appwrite:****@db-myproject-mydb-a1b2c3d4.fra.appwrite.center:5432\/db-myproject-mydb-a1b2c3d4?sslmode=disable" + } + }, + "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=disable" + } + }, + "dedicatedDatabaseBranchList": { + "description": "BranchList", + "type": "object", + "properties": { + "branches": { + "type": "array", + "description": "List of branches.", + "items": { + "$ref": "#\/components\/schemas\/dedicatedDatabaseBranch" + }, + "x-example": [] + } + }, + "required": [ + "branches" + ], + "example": { + "branches": [] + } + }, + "dedicatedDatabase": { + "description": "DedicatedDatabase", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "Dedicated database ID.", + "x-example": "5e5ea5c16897e" + }, + "$createdAt": { + "type": "string", + "description": "Database creation time in ISO 8601 format.", + "x-example": "2020-10-15T06:38:00.000+00:00" + }, + "$updatedAt": { + "type": "string", + "description": "Database update date in ISO 8601 format.", + "x-example": "2020-10-15T06:38:00.000+00:00" + }, + "projectId": { + "type": "string", + "description": "Project ID that owns this database.", + "x-example": "5e5ea5c16897e" + }, + "name": { + "type": "string", + "description": "Database display name.", + "x-example": "My Production Database" + }, + "api": { + "type": "string", + "description": "Product API that owns this database: tablesdb, documentsdb, vectorsdb, mysql, postgresql, or mongodb.", + "x-example": "postgresql" + }, + "engine": { + "type": "string", + "description": "Database engine: postgresql, mysql, mariadb, or mongodb.", + "x-example": "postgresql" + }, + "version": { + "type": "string", + "description": "Database engine version.", + "x-example": "16" + }, + "specification": { + "type": "string", + "description": "Specification identifier.", + "x-example": "s-2vcpu-2gb" + }, + "backend": { + "type": "string", + "description": "Database backend provider. Possible values: prisma, edge.", + "x-example": "edge" + }, + "hostname": { + "type": "string", + "description": "Database hostname for connections.", + "x-example": "db-myproject-mydb.fra.appwrite.center" + }, + "connectionPort": { + "type": "integer", + "description": "Database port for connections.", + "x-example": 5432, + "format": "int32" + }, + "connectionUser": { + "type": "string", + "description": "Database username for connections.", + "x-example": "appwrite_user" + }, + "connectionPassword": { + "type": "string", + "description": "Database password for connections.", + "x-example": "\u2022\u2022\u2022\u2022\u2022\u2022\u2022\u2022" + }, + "connectionString": { + "type": "string", + "description": "Full database connection string (URI format).", + "x-example": "postgresql:\/\/user:pass@db-myproject-mydb.fra.appwrite.center:5432\/postgres?sslmode=require" + }, + "ssl": { + "type": "boolean", + "description": "Whether SSL\/TLS is required for client connections.", + "x-example": true + }, + "status": { + "type": "string", + "description": "Database status. Possible values: provisioning, ready, inactive, paused, failed, deleted, restoring, scaling.", + "x-example": "ready" + }, + "containerStatus": { + "type": "string", + "description": "Container status for lifecycle-managed database runtimes: active or inactive.", + "x-example": "active" + }, + "lastAccessedAt": { + "type": "string", + "description": "Last activity timestamp in ISO 8601 format.", + "x-example": "2020-10-15T06:38:00.000+00:00", + "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.", + "x-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.", + "x-example": "active" + }, + "idleTimeoutMinutes": { + "type": "integer", + "description": "Minutes of inactivity before container scales to zero.", + "x-example": 15, + "format": "int32" + }, + "cpu": { + "type": "integer", + "description": "CPU allocated in millicores.", + "x-example": 2000, + "format": "int32" + }, + "memory": { + "type": "integer", + "description": "Memory allocated in MB.", + "x-example": 4096, + "format": "int32" + }, + "storage": { + "type": "integer", + "description": "Storage allocated in GB.", + "x-example": 100, + "format": "int32" + }, + "storageClass": { + "type": "string", + "description": "Storage class. Currently always 'ssd'; DigitalOcean exposes a single block-storage class.", + "x-example": "ssd" + }, + "storageMaxGb": { + "type": "integer", + "description": "Maximum storage allowed in GB. 0 means use system default.", + "x-example": 100, + "format": "int32" + }, + "nodePool": { + "type": "string", + "description": "Kubernetes node pool where the database is scheduled.", + "x-example": "db-pool-4vcpu-8gb" + }, + "replicas": { + "type": "integer", + "description": "Number of high availability replicas. High availability is enabled when greater than 0.", + "x-example": 2, + "format": "int32" + }, + "syncMode": { + "type": "string", + "description": "Replication sync mode: async, sync, or quorum.", + "x-example": "async" + }, + "crossRegionReplicas": { + "type": "integer", + "description": "Number of cross-region replicas. Cross-region availability is enabled when greater than 0.", + "x-example": 1, + "format": "int32" + }, + "networkMaxConnections": { + "type": "integer", + "description": "Maximum concurrent connections.", + "x-example": 500, + "format": "int32" + }, + "networkIdleTimeoutSeconds": { + "type": "integer", + "description": "Connection idle timeout in seconds.", + "x-example": 900, + "format": "int32" + }, + "networkIPAllowlist": { + "type": "array", + "description": "IP addresses\/CIDR ranges allowed to connect.", + "items": { + "type": "string" + }, + "x-example": [ + "10.0.0.0\/8", + "192.168.1.0\/24" + ] + }, + "backupEnabled": { + "type": "boolean", + "description": "Whether automatic backups are enabled.", + "x-example": true + }, + "pitr": { + "type": "boolean", + "description": "Whether point-in-time recovery is enabled.", + "x-example": true + }, + "pitrRetentionDays": { + "type": "integer", + "description": "Number of days to retain PITR data.", + "x-example": 14, + "format": "int32" + }, + "storageAutoscaling": { + "type": "boolean", + "description": "Whether automatic storage expansion is enabled.", + "x-example": true + }, + "storageAutoscalingThresholdPercent": { + "type": "integer", + "description": "Storage usage percentage that triggers automatic expansion.", + "x-example": 85, + "format": "int32" + }, + "storageAutoscalingMaxGb": { + "type": "integer", + "description": "Maximum storage size in GB for autoscaling. 0 means no limit.", + "x-example": 500, + "format": "int32" + }, + "maintenanceWindowDay": { + "type": "string", + "description": "Day of the week for the maintenance window. Possible values: sun, mon, tue, wed, thu, fri, sat.", + "x-example": "sun" + }, + "maintenanceWindowHourUtc": { + "type": "integer", + "description": "Hour in UTC (0-23) when the maintenance window starts.", + "x-example": 3, + "format": "int32" + }, + "metricsEnabled": { + "type": "boolean", + "description": "Whether metrics collection is enabled.", + "x-example": false + }, + "sqlApiEnabled": { + "type": "boolean", + "description": "Whether the SQL API sidecar is enabled for this database.", + "x-example": true + }, + "sqlApiAllowedStatements": { + "type": "array", + "description": "Statement types accepted by the SQL API. 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" + }, + "x-example": "SELECT" + }, + "sqlApiMaxRows": { + "type": "integer", + "description": "Maximum rows returned per SQL API execution. Results larger than this are truncated.", + "x-example": 10000, + "format": "int32" + }, + "sqlApiMaxBytes": { + "type": "integer", + "description": "Maximum serialised SQL API result payload in bytes. Results larger than this are truncated.", + "x-example": 10485760, + "format": "int32" + }, + "sqlApiTimeoutSeconds": { + "type": "integer", + "description": "Maximum server-side SQL API execution time in seconds before the query is cancelled.", + "x-example": 30, + "format": "int32" + }, + "error": { + "type": "string", + "description": "Error message if status is failed.", + "x-example": "" + } + }, + "required": [ + "$id", + "$createdAt", + "$updatedAt", + "projectId", + "name", + "api", + "engine", + "version", + "specification", + "backend", + "hostname", + "connectionPort", + "connectionUser", + "connectionPassword", + "connectionString", + "ssl", + "status", + "containerStatus", + "lifecycleState", + "idleTimeoutMinutes", + "cpu", + "memory", + "storage", + "storageClass", + "storageMaxGb", + "nodePool", + "replicas", + "syncMode", + "crossRegionReplicas", + "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", + "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, + "storageClass": "ssd", + "storageMaxGb": 100, + "nodePool": "db-pool-4vcpu-8gb", + "replicas": 2, + "syncMode": "async", + "crossRegionReplicas": 1, + "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": 500, + "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": "object", + "additionalProperties": true, + "description": "Result rows as a list of column-name => value maps. Empty for non-returning statements.", + "x-example": [ + { + "id": 1, + "name": "example" + } + ] + }, + "rowCount": { + "type": "integer", + "description": "Number of rows returned (for SELECT) or affected (for INSERT\/UPDATE\/DELETE).", + "x-example": 1, + "format": "int32" + }, + "columns": { + "type": "array", + "description": "Column metadata in result-set order.", + "items": { + "$ref": "#\/components\/schemas\/dedicatedDatabaseExecutionColumn" + }, + "x-example": [] + }, + "durationMs": { + "type": "integer", + "description": "Server-side execution time in milliseconds.", + "x-example": 12, + "format": "int32" + }, + "truncated": { + "type": "boolean", + "description": "True when the configured row or byte cap was hit and the result was truncated.", + "x-example": false + }, + "bytes": { + "type": "integer", + "description": "Serialised payload size in bytes.", + "x-example": 1024, + "format": "int32" + } + }, + "required": [ + "rows", + "rowCount", + "columns", + "durationMs", + "truncated", + "bytes" + ], + "example": { + "rows": [ + { + "id": 1, + "name": "example" + } + ], + "rowCount": 1, + "columns": [], + "durationMs": 12, + "truncated": false, + "bytes": 1024 + } + }, + "dedicatedDatabaseExecutionColumn": { + "description": "ExecutionColumn", + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "Column name as returned by the database.", + "x-example": "id" + }, + "type": { + "type": "string", + "description": "Engine-specific column type (e.g. int4, text, timestamptz).", + "x-example": "int4" + } + }, + "required": [ + "name", + "type" + ], + "example": { + "name": "id", + "type": "int4" + } + }, + "dedicatedDatabaseRestoration": { + "description": "Restoration", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "Restoration ID.", + "x-example": "5e5ea5c16897e" + }, + "$createdAt": { + "type": "string", + "description": "Restoration creation time in ISO 8601 format.", + "x-example": "2020-10-15T06:38:00.000+00:00" + }, + "databaseId": { + "type": "string", + "description": "Database ID being restored.", + "x-example": "5e5ea5c16897e" + }, + "projectId": { + "type": "string", + "description": "Project ID.", + "x-example": "5e5ea5c16897e" + }, + "backupId": { + "type": "string", + "description": "Backup ID used for restoration (null for PITR).", + "x-example": "5e5ea5c16897e" + }, + "type": { + "type": "string", + "description": "Restoration type. Possible values: backup (restore from a specific backup snapshot), pitr (point-in-time recovery to a specific timestamp).", + "x-example": "backup" + }, + "status": { + "type": "string", + "description": "Restoration status. Possible values: pending (queued for processing), running (currently in progress), completed (successfully finished), failed (encountered an error).", + "x-example": "completed" + }, + "targetTime": { + "type": "string", + "description": "Target time for PITR restoration in ISO 8601 format.", + "x-example": "2020-10-15T06:38:00.000+00:00" + }, + "startedAt": { + "type": "string", + "description": "Restoration start time in ISO 8601 format.", + "x-example": "2020-10-15T06:38:00.000+00:00" + }, + "completedAt": { + "type": "string", + "description": "Restoration completion time in ISO 8601 format.", + "x-example": "2020-10-15T06:38:00.000+00:00" + }, + "error": { + "type": "string", + "description": "Error message if restoration failed.", + "x-example": "" + } + }, + "required": [ + "$id", + "$createdAt", + "databaseId", + "projectId", + "backupId", + "type", + "status", + "targetTime", + "startedAt", + "completedAt", + "error" + ], + "example": { + "$id": "5e5ea5c16897e", + "$createdAt": "2020-10-15T06:38:00.000+00:00", + "databaseId": "5e5ea5c16897e", + "projectId": "5e5ea5c16897e", + "backupId": "5e5ea5c16897e", + "type": "backup", + "status": "completed", + "targetTime": "2020-10-15T06:38:00.000+00:00", + "startedAt": "2020-10-15T06:38:00.000+00:00", + "completedAt": "2020-10-15T06:38:00.000+00:00", + "error": "" + } + }, + "databaseStatus": { + "description": "Status", + "type": "object", + "properties": { + "health": { + "type": "string", + "description": "Overall health status: healthy, degraded, or unhealthy.", + "x-example": "healthy" + }, + "ready": { + "type": "boolean", + "description": "Whether the database is ready to accept connections.", + "x-example": true + }, + "engine": { + "type": "string", + "description": "Database engine: postgresql, mysql, mariadb, or mongodb.", + "x-example": "postgresql" + }, + "version": { + "type": "string", + "description": "Database engine version.", + "x-example": "17" + }, + "uptime": { + "type": "integer", + "description": "Database uptime in seconds.", + "x-example": 86400, + "format": "int32" + }, + "connections": { + "type": "object", + "description": "Connection statistics.", + "x-example": { + "current": 12, + "max": 100 + }, + "allOf": [ + { + "$ref": "#\/components\/schemas\/databaseStatusConnections" + } + ] + }, + "replicas": { + "type": "array", + "description": "List of database replicas and their status.", + "items": { + "$ref": "#\/components\/schemas\/databaseStatusReplica" + }, + "x-example": [ + { + "index": 0, + "role": "primary", + "healthy": true, + "lagSeconds": null + }, + { + "index": 1, + "role": "replica", + "healthy": true, + "lagSeconds": 0.2 + } + ] + }, + "volumes": { + "type": "array", + "description": "Storage volume information.", + "items": { + "$ref": "#\/components\/schemas\/databaseStatusVolume" + }, + "x-example": { + "data": { + "path": "\/var\/lib\/postgresql\/data", + "usedPercent": "45%", + "available": "55GB", + "mounted": true + } + } + } + }, + "required": [ + "health", + "ready", + "engine", + "version", + "uptime", + "connections", + "replicas", + "volumes" + ], + "example": { + "health": "healthy", + "ready": true, + "engine": "postgresql", + "version": "17", + "uptime": 86400, + "connections": { + "current": 12, + "max": 100 + }, + "replicas": [ + { + "index": 0, + "role": "primary", + "healthy": true, + "lagSeconds": null + }, + { + "index": 1, + "role": "replica", + "healthy": true, + "lagSeconds": 0.2 + } + ], + "volumes": { + "data": { + "path": "\/var\/lib\/postgresql\/data", + "usedPercent": "45%", + "available": "55GB", + "mounted": true + } + } + } + }, + "dedicatedDatabaseExtensions": { + "description": "Extensions", + "type": "object", + "properties": { + "installed": { + "type": "array", + "description": "List of installed extensions.", + "items": { + "type": "string" + }, + "x-example": [ + "pgvector", + "uuid-ossp" + ] + }, + "available": { + "type": "array", + "description": "List of available extensions that can be installed.", + "items": { + "type": "string" + }, + "x-example": [ + "postgis", + "pg_trgm" + ] + }, + "metadata": { + "type": "array", + "description": "Curated metadata (display name, description, category) for each available extension.", + "items": { + "$ref": "#\/components\/schemas\/postgresExtension" + }, + "x-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.", + "x-example": "1" + }, + "role": { + "type": "string", + "description": "Member role. Possible values: primary (accepts reads and writes), replica (read-only follower).", + "x-example": "replica" + }, + "status": { + "type": "string", + "description": "Member pod status. Possible values: 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.", + "x-example": "active" }, - "billingPlan": { + "lagSeconds": { + "type": "number", + "description": "Replication lag in seconds.", + "x-example": 0.5, + "format": "double" + } + }, + "required": [ + "$id", + "role", + "status", + "lagSeconds" + ], + "example": { + "$id": "1", + "role": "replica", + "status": "active", + "lagSeconds": 0.5 + } + }, + "dedicatedDatabaseReplicas": { + "description": "Replicas", + "type": "object", + "properties": { + "replicas": { + "type": "integer", + "description": "Number of configured replicas. Zero means high availability is disabled.", + "x-example": 2, + "format": "int32" + }, + "syncMode": { "type": "string", - "description": "Billing plan of the organization that owns the project.", - "x-example": "pro" + "description": "Replication sync mode. Possible values: async (asynchronous, fastest), sync (synchronous, strong consistency), quorum (quorum-based, majority of replicas must confirm).", + "x-example": "async" + }, + "members": { + "type": "array", + "description": "Per-pod statuses for the primary and every replica.", + "items": { + "$ref": "#\/components\/schemas\/dedicatedDatabaseMember" + }, + "x-example": [] } }, "required": [ - "$createdAt", - "resourceType", - "resourceId", - "mode", - "projectName", - "region", - "organizationName", - "organizationId", - "billingPlan" + "replicas", + "syncMode", + "members" ], "example": { - "$createdAt": "2020-10-15T06:38:00.000+00:00", - "resourceType": "project", - "resourceId": "5e5ea5c16897e", - "mode": "readOnly", - "reason": "Payment overdue", - "expiredAt": "2020-10-15T06:38:00.000+00:00", - "projectName": "My Project", - "region": "fra", - "organizationName": "Acme Inc.", - "organizationId": "5e5ea5c16897e", - "billingPlan": "pro" + "replicas": 2, + "syncMode": "async", + "members": [] } }, "organization": { @@ -81562,6 +91702,30 @@ "projects": "" } }, + "dedicatedDatabasePITRWindows": { + "description": "PITRWindows", + "type": "object", + "properties": { + "earliest": { + "type": "string", + "description": "Earliest available recovery point.", + "x-example": "2020-10-15T06:38:00.000+00:00" + }, + "latest": { + "type": "string", + "description": "Latest available recovery point.", + "x-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", @@ -81663,1424 +91827,2493 @@ "enabled": true } }, - "policyDenyAliasedEmail": { - "description": "Policy Deny Aliased Email", + "policyDenyAliasedEmail": { + "description": "Policy Deny Aliased Email", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "Policy ID.", + "x-example": "password-dictionary" + }, + "enabled": { + "type": "boolean", + "description": "Whether the deny aliased email policy is enabled.", + "x-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.", + "x-example": "password-dictionary" + }, + "enabled": { + "type": "boolean", + "description": "Whether the deny disposable email policy is enabled.", + "x-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.", + "x-example": "password-dictionary" + }, + "enabled": { + "type": "boolean", + "description": "Whether the deny free email policy is enabled.", + "x-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.", + "x-example": "password-dictionary" + }, + "enabled": { + "type": "boolean", + "description": "Whether the deny non-corporate email policy is enabled.", + "x-example": true + } + }, + "required": [ + "$id", + "enabled" + ], + "example": { + "$id": "password-dictionary", + "enabled": true + } + }, + "dedicatedDatabasePooler": { + "description": "PoolerConfig", + "type": "object", + "properties": { + "enabled": { + "type": "boolean", + "description": "Whether connection pooling is enabled.", + "x-example": true + }, + "mode": { + "type": "string", + "description": "Connection pool mode. Possible values: transaction (releases connections back to pool after each transaction), session (holds connections for the entire client session).", + "x-example": "transaction" + }, + "maxConnections": { + "type": "integer", + "description": "Maximum number of pooled connections.", + "x-example": 200, + "format": "int32" + }, + "defaultPoolSize": { + "type": "integer", + "description": "Default pool size per user.", + "x-example": 25, + "format": "int32" + }, + "port": { + "type": "integer", + "description": "Pooler listening port.", + "x-example": 6432, + "format": "int32" + }, + "readWriteSplitting": { + "type": "boolean", + "description": "Whether SELECTs are routed to HA replicas while writes and locked reads stay on the primary. Active only when HA is enabled.", + "x-example": true + }, + "poolerCpuRequest": { + "type": "string", + "description": "Effective CPU request applied to the pooler sidecar container (Kubernetes quantity). Returns the proportional default (5% of DB CPU, floor 100m) unless overridden.", + "x-example": "100m" + }, + "poolerCpuLimit": { + "type": "string", + "description": "Effective CPU limit applied to the pooler sidecar container (Kubernetes quantity). Returns the proportional default (10% of DB CPU, floor 200m) unless overridden.", + "x-example": "200m" + }, + "poolerMemoryRequest": { + "type": "string", + "description": "Effective memory request applied to the pooler sidecar container (Kubernetes quantity). Returns the proportional default (7.5% of DB memory, floor 64Mi) unless overridden.", + "x-example": "64Mi" + }, + "poolerMemoryLimit": { + "type": "string", + "description": "Effective memory limit applied to the pooler sidecar container (Kubernetes quantity). Returns the proportional default (15% of DB memory, floor 128Mi) unless overridden.", + "x-example": "128Mi" + } + }, + "required": [ + "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.", + "x-example": "vector" + }, + "name": { + "type": "string", + "description": "Human-readable extension name.", + "x-example": "pgvector" + }, + "description": { + "type": "string", + "description": "Short description of what the extension provides.", + "x-example": "Vector data type and similarity search for embeddings." + }, + "category": { + "type": "string", + "description": "Category the extension belongs to.", + "x-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", + "x-example": "" + }, + "title": { + "type": "string", + "description": "Program title", + "x-example": "" + }, + "description": { + "type": "string", + "description": "Program description", + "x-example": "" + }, + "tag": { + "type": "string", + "description": "Program tag for highlighting on console", + "x-example": null + }, + "icon": { + "type": "string", + "description": "Program icon for highlighting on console", + "x-example": null + }, + "url": { + "type": "string", + "description": "URL for more information on this program", + "x-example": "" + }, + "active": { + "type": "boolean", + "description": "Whether this program is active", + "x-example": false + }, + "external": { + "type": "boolean", + "description": "Whether this program is external", + "x-example": false + }, + "billingPlanId": { + "type": "string", + "description": "Billing plan ID that this is program is associated with.", + "x-example": "" + } + }, + "required": [ + "$id", + "title", + "description", + "tag", + "icon", + "url", + "active", + "external", + "billingPlanId" + ], + "example": { + "$id": "", + "title": "", + "description": "", + "tag": null, + "icon": null, + "url": "", + "active": false, + "external": false, + "billingPlanId": "" + } + }, + "backupRestoration": { + "description": "Restoration", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "Restoration ID.", + "x-example": "5e5ea5c16897e" + }, + "$createdAt": { + "type": "string", + "description": "Restoration creation time in ISO 8601 format.", + "x-example": "2020-10-15T06:38:00.000+00:00" + }, + "$updatedAt": { + "type": "string", + "description": "Restoration update date in ISO 8601 format.", + "x-example": "2020-10-15T06:38:00.000+00:00" + }, + "archiveId": { + "type": "string", + "description": "Backup archive ID.", + "x-example": "did8jx6ws45jana098ab7" + }, + "policyId": { + "type": "string", + "description": "Backup policy ID.", + "x-example": "did8jx6ws45jana098ab7" + }, + "status": { + "type": "string", + "description": "The status of the restoration. Possible values: pending, downloading, processing, completed, failed.", + "x-example": "completed" + }, + "startedAt": { + "type": "string", + "description": "The backup start time.", + "x-example": "2020-10-15T06:38:00.000+00:00" + }, + "migrationId": { + "type": "string", + "description": "Migration ID.", + "x-example": "did8jx6ws45jana098ab7" + }, + "services": { + "type": "array", + "description": "The services that are backed up by this policy.", + "items": { + "type": "string" + }, + "x-example": "['databases', 'storage']" + }, + "resources": { + "type": "array", + "description": "The resources that are backed up by this policy.", + "items": { + "type": "string" + }, + "x-example": "['databases', 'collections', 'attributes', 'indexes']" + }, + "options": { + "type": "string", + "description": "Optional data in key-value object. ", + "x-example": "{databases.database[{oldId, newId, newName}]}" + } + }, + "required": [ + "$id", + "$createdAt", + "$updatedAt", + "archiveId", + "policyId", + "status", + "startedAt", + "migrationId", + "services", + "resources", + "options" + ], + "example": { + "$id": "5e5ea5c16897e", + "$createdAt": "2020-10-15T06:38:00.000+00:00", + "$updatedAt": "2020-10-15T06:38:00.000+00:00", + "archiveId": "did8jx6ws45jana098ab7", + "policyId": "did8jx6ws45jana098ab7", + "status": "completed", + "startedAt": "2020-10-15T06:38:00.000+00:00", + "migrationId": "did8jx6ws45jana098ab7", + "services": "['databases', 'storage']", + "resources": "['databases', 'collections', 'attributes', 'indexes']", + "options": "{databases.database[{oldId, newId, newName}]}" + } + }, + "dedicatedDatabaseRestorationList": { + "description": "Dedicated database restorations list", + "type": "object", + "properties": { + "total": { + "type": "integer", + "description": "Total number of restorations that matched your query.", + "x-example": 5, + "format": "int32" + }, + "restorations": { + "type": "array", + "description": "List of restorations.", + "items": { + "$ref": "#\/components\/schemas\/dedicatedDatabaseRestoration" + }, + "x-example": "" + } + }, + "required": [ + "total", + "restorations" + ], + "example": { + "total": 5, + "restorations": "" + } + }, + "dedicatedDatabaseSpecification": { + "description": "Specification", + "type": "object", + "properties": { + "slug": { + "type": "string", + "description": "Specification slug. Use this value when creating a dedicated database.", + "x-example": "s-2vcpu-2gb" + }, + "name": { + "type": "string", + "description": "Human readable specification name.", + "x-example": "Standard" + }, + "price": { + "type": "number", + "description": "Monthly price of the specification in USD.", + "x-example": 20, + "format": "double" + }, + "cpu": { + "type": "integer", + "description": "Allocated CPU in millicores.", + "x-example": 2000, + "format": "int32" + }, + "memory": { + "type": "integer", + "description": "Allocated memory in MB.", + "x-example": 2048, + "format": "int32" + }, + "maxConnections": { + "type": "integer", + "description": "Maximum number of concurrent connections.", + "x-example": 200, + "format": "int32" + }, + "includedStorage": { + "type": "integer", + "description": "Included storage in GB before overage charges apply.", + "x-example": 25, + "format": "int32" + }, + "includedBandwidth": { + "type": "integer", + "description": "Included bandwidth in GB before overage charges apply.", + "x-example": 200, + "format": "int32" + }, + "enabled": { + "type": "boolean", + "description": "Whether the specification is available on the current plan.", + "x-example": true + } + }, + "required": [ + "slug", + "name", + "price", + "cpu", + "memory", + "maxConnections", + "includedStorage", + "includedBandwidth", + "enabled" + ], + "example": { + "slug": "s-2vcpu-2gb", + "name": "Standard", + "price": 20, + "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" + }, + "x-example": [] + }, + "total": { + "type": "integer", + "description": "Total number of specifications.", + "x-example": 9, + "format": "int32" + }, + "pricing": { + "type": "object", + "description": "Overage and add-on pricing shared across all specifications.", + "x-example": null, + "allOf": [ + { + "$ref": "#\/components\/schemas\/dedicatedDatabaseSpecificationPricing" + } + ] + } + }, + "required": [ + "specifications", + "total", + "pricing" + ], + "example": { + "specifications": [], + "total": 9, + "pricing": null + } + }, + "dedicatedDatabaseSpecificationPricing": { + "description": "SpecificationPricing", + "type": "object", + "properties": { + "storageOverageRate": { + "type": "number", + "description": "Price per GB of storage above the included amount, per month, in USD.", + "x-example": 0.125, + "format": "double" + }, + "bandwidthOverageRate": { + "type": "number", + "description": "Price per GB of bandwidth above the included amount, per month, in USD.", + "x-example": 0.08, + "format": "double" + }, + "replicaRate": { + "type": "number", + "description": "High availability replica price as a fraction of the specification cost.", + "x-example": 1, + "format": "double" + }, + "crossRegionReplicaRate": { + "type": "number", + "description": "Cross-region replica price as a fraction of the specification cost.", + "x-example": 1, + "format": "double" + }, + "pitrRate": { + "type": "number", + "description": "Point-in-time recovery price as a fraction of the specification cost.", + "x-example": 0.2, + "format": "double" + } + }, + "required": [ + "storageOverageRate", + "bandwidthOverageRate", + "replicaRate", + "crossRegionReplicaRate", + "pitrRate" + ], + "example": { + "storageOverageRate": 0.125, + "bandwidthOverageRate": 0.08, + "replicaRate": 1, + "crossRegionReplicaRate": 1, + "pitrRate": 0.2 + } + }, + "databaseStatusConnections": { + "description": "Connections", "type": "object", "properties": { - "$id": { - "type": "string", - "description": "Policy ID.", - "x-example": "password-dictionary" + "current": { + "type": "integer", + "description": "Current number of active connections.", + "x-example": 12, + "format": "int32" }, - "enabled": { - "type": "boolean", - "description": "Whether the deny aliased email policy is enabled.", - "x-example": true + "max": { + "type": "integer", + "description": "Maximum allowed connections.", + "x-example": 100, + "format": "int32" } }, "required": [ - "$id", - "enabled" + "current", + "max" ], "example": { - "$id": "password-dictionary", - "enabled": true + "current": 12, + "max": 100 } }, - "policyDenyDisposableEmail": { - "description": "Policy Deny Disposable Email", + "databaseStatusReplica": { + "description": "Replica", "type": "object", "properties": { - "$id": { + "index": { + "type": "integer", + "description": "StatefulSet pod index (0 = primary, 1+ = replicas).", + "x-example": 0, + "format": "int32" + }, + "role": { "type": "string", - "description": "Policy ID.", - "x-example": "password-dictionary" + "description": "Replica role: primary or replica.", + "x-example": "primary" }, - "enabled": { + "healthy": { "type": "boolean", - "description": "Whether the deny disposable email policy is enabled.", + "description": "Whether the replica is healthy.", "x-example": true + }, + "lagSeconds": { + "type": "number", + "description": "Replication lag in seconds (null for primary).", + "x-example": 0.2, + "format": "double", + "nullable": true } }, "required": [ - "$id", - "enabled" + "index", + "role", + "healthy" ], "example": { - "$id": "password-dictionary", - "enabled": true + "index": 0, + "role": "primary", + "healthy": true, + "lagSeconds": 0.2 } }, - "policyDenyFreeEmail": { - "description": "Policy Deny Free Email", + "databaseStatusVolume": { + "description": "Volume", "type": "object", "properties": { - "$id": { + "path": { "type": "string", - "description": "Policy ID.", - "x-example": "password-dictionary" + "description": "Mount path of the volume.", + "x-example": "\/var\/lib\/postgresql\/data" }, - "enabled": { + "usedPercent": { + "type": "string", + "description": "Percentage of storage used.", + "x-example": "45%" + }, + "available": { + "type": "string", + "description": "Available storage space.", + "x-example": "55GB" + }, + "mounted": { "type": "boolean", - "description": "Whether the deny free email policy is enabled.", + "description": "Whether the volume is mounted.", "x-example": true } }, "required": [ - "$id", - "enabled" + "path", + "usedPercent", + "available", + "mounted" ], "example": { - "$id": "password-dictionary", - "enabled": true + "path": "\/var\/lib\/postgresql\/data", + "usedPercent": "45%", + "available": "55GB", + "mounted": true } }, - "policyDenyCorporateEmail": { - "description": "Policy Deny Corporate Email", + "usageBillingPlan": { + "description": "usageBillingPlan", "type": "object", "properties": { - "$id": { - "type": "string", - "description": "Policy ID.", - "x-example": "password-dictionary" + "bandwidth": { + "type": "object", + "description": "Bandwidth additional resources", + "x-example": null, + "allOf": [ + { + "$ref": "#\/components\/schemas\/additionalResource" + } + ] }, - "enabled": { - "type": "boolean", - "description": "Whether the deny non-corporate email policy is enabled.", - "x-example": true + "executions": { + "type": "object", + "description": "Executions additional resources", + "x-example": null, + "allOf": [ + { + "$ref": "#\/components\/schemas\/additionalResource" + } + ] + }, + "member": { + "type": "object", + "description": "Member additional resources", + "x-example": null, + "allOf": [ + { + "$ref": "#\/components\/schemas\/additionalResource" + } + ] + }, + "realtime": { + "type": "object", + "description": "Realtime additional resources", + "x-example": null, + "allOf": [ + { + "$ref": "#\/components\/schemas\/additionalResource" + } + ] + }, + "realtimeMessages": { + "type": "object", + "description": "Realtime messages additional resources", + "x-example": null, + "allOf": [ + { + "$ref": "#\/components\/schemas\/additionalResource" + } + ] + }, + "realtimeBandwidth": { + "type": "object", + "description": "Realtime bandwidth additional resources", + "x-example": null, + "allOf": [ + { + "$ref": "#\/components\/schemas\/additionalResource" + } + ] + }, + "storage": { + "type": "object", + "description": "Storage additional resources", + "x-example": null, + "allOf": [ + { + "$ref": "#\/components\/schemas\/additionalResource" + } + ] + }, + "users": { + "type": "object", + "description": "User additional resources", + "x-example": null, + "allOf": [ + { + "$ref": "#\/components\/schemas\/additionalResource" + } + ] + }, + "GBHours": { + "type": "object", + "description": "GBHour additional resources", + "x-example": null, + "allOf": [ + { + "$ref": "#\/components\/schemas\/additionalResource" + } + ] + }, + "imageTransformations": { + "type": "object", + "description": "Image transformation additional resources", + "x-example": null, + "allOf": [ + { + "$ref": "#\/components\/schemas\/additionalResource" + } + ] + }, + "credits": { + "type": "object", + "description": "Credits additional resources", + "x-example": null, + "allOf": [ + { + "$ref": "#\/components\/schemas\/additionalResource" + } + ] } }, "required": [ - "$id", - "enabled" + "bandwidth", + "executions", + "member", + "realtime", + "realtimeMessages", + "realtimeBandwidth", + "storage", + "users", + "GBHours", + "imageTransformations", + "credits" ], "example": { - "$id": "password-dictionary", - "enabled": true + "bandwidth": null, + "executions": null, + "member": null, + "realtime": null, + "realtimeMessages": null, + "realtimeBandwidth": null, + "storage": null, + "users": null, + "GBHours": null, + "imageTransformations": null, + "credits": null } }, - "program": { - "description": "Program", + "app": { + "description": "App", "type": "object", "properties": { "$id": { "type": "string", - "description": "Program ID", - "x-example": "" + "description": "App ID.", + "x-example": "5e5ea5c16897e" }, - "title": { + "$createdAt": { "type": "string", - "description": "Program title", - "x-example": "" + "description": "App creation time in ISO 8601 format.", + "x-example": "2020-10-15T06:38:00.000+00:00" + }, + "$updatedAt": { + "type": "string", + "description": "App update date in ISO 8601 format.", + "x-example": "2020-10-15T06:38:00.000+00:00" + }, + "name": { + "type": "string", + "description": "Application name.", + "x-example": "My Application" }, "description": { "type": "string", - "description": "Program description", - "x-example": "" + "description": "Application description shown to users during OAuth2 consent.", + "x-example": "Connect your workspace to My Application." }, - "tag": { + "clientUri": { "type": "string", - "description": "Program tag for highlighting on console", - "x-example": null + "description": "Application homepage URL shown to users during OAuth2 consent.", + "x-example": "https:\/\/example.com" }, - "icon": { + "logoUri": { "type": "string", - "description": "Program icon for highlighting on console", - "x-example": null + "description": "Application logo URL shown to users during OAuth2 consent.", + "x-example": "https:\/\/example.com\/logo.png" }, - "url": { + "privacyPolicyUrl": { "type": "string", - "description": "URL for more information on this program", - "x-example": "" + "description": "Application privacy policy URL shown to users during OAuth2 consent.", + "x-example": "https:\/\/example.com\/privacy" }, - "active": { + "termsUrl": { + "type": "string", + "description": "Application terms of service URL shown to users during OAuth2 consent.", + "x-example": "https:\/\/example.com\/terms" + }, + "contacts": { + "type": "array", + "description": "Application support or security contact emails.", + "items": { + "type": "string" + }, + "x-example": [ + "support@example.com" + ] + }, + "tagline": { + "type": "string", + "description": "Application tagline shown to users during OAuth2 consent.", + "x-example": "Automate your workspace." + }, + "tags": { + "type": "array", + "description": "Application tags shown to users during OAuth2 consent.", + "items": { + "type": "string" + }, + "x-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" + }, + "x-example": [ + "featured" + ] + }, + "images": { + "type": "array", + "description": "Application image URLs shown to users during OAuth2 consent.", + "items": { + "type": "string" + }, + "x-example": [ + "https:\/\/example.com\/screenshot.png" + ] + }, + "supportUrl": { + "type": "string", + "description": "Application support URL shown to users during OAuth2 consent.", + "x-example": "https:\/\/example.com\/support" + }, + "dataDeletionUrl": { + "type": "string", + "description": "Application data deletion URL shown to users during OAuth2 consent.", + "x-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" + }, + "x-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" + }, + "x-example": [ + "https:\/\/example.com\/logged-out" + ] + }, + "enabled": { "type": "boolean", - "description": "Whether this program is active", - "x-example": false + "description": "Whether the app is enabled or not.", + "x-example": true }, - "external": { + "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.", + "x-example": "confidential" + }, + "deviceFlow": { "type": "boolean", - "description": "Whether this program is external", + "description": "Whether this client may use the OAuth2 Device Authorization Grant (RFC 8628).", "x-example": false }, - "billingPlanId": { + "teamId": { "type": "string", - "description": "Billing plan ID that this is program is associated with.", - "x-example": "" + "description": "ID of team that owns the application, if owned by team. Otherwise, user ID will be used.", + "x-example": "5e5ea5c16897e" + }, + "userId": { + "type": "string", + "description": "ID of user who owns the application, if owned by user. Otherwise, team ID will be used.", + "x-example": "5e5ea5c16897e" + }, + "secrets": { + "type": "array", + "description": "List of application secrets.", + "items": { + "$ref": "#\/components\/schemas\/appSecret" + }, + "x-example": [] } }, "required": [ "$id", - "title", + "$createdAt", + "$updatedAt", + "name", "description", - "tag", - "icon", - "url", - "active", - "external", - "billingPlanId" + "clientUri", + "logoUri", + "privacyPolicyUrl", + "termsUrl", + "contacts", + "tagline", + "tags", + "labels", + "images", + "supportUrl", + "dataDeletionUrl", + "redirectUris", + "postLogoutRedirectUris", + "enabled", + "type", + "deviceFlow", + "teamId", + "userId", + "secrets" ], "example": { - "$id": "", - "title": "", - "description": "", - "tag": null, - "icon": null, - "url": "", - "active": false, - "external": false, - "billingPlanId": "" + "$id": "5e5ea5c16897e", + "$createdAt": "2020-10-15T06:38:00.000+00:00", + "$updatedAt": "2020-10-15T06:38:00.000+00:00", + "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", + "secrets": [] } }, - "backupRestoration": { - "description": "Restoration", + "appSecret": { + "description": "AppSecret", "type": "object", "properties": { "$id": { "type": "string", - "description": "Restoration ID.", + "description": "Secret ID.", "x-example": "5e5ea5c16897e" }, "$createdAt": { "type": "string", - "description": "Restoration creation time in ISO 8601 format.", + "description": "Secret creation time in ISO 8601 format.", "x-example": "2020-10-15T06:38:00.000+00:00" }, "$updatedAt": { "type": "string", - "description": "Restoration update date in ISO 8601 format.", + "description": "Secret update time in ISO 8601 format.", "x-example": "2020-10-15T06:38:00.000+00:00" }, - "archiveId": { + "appId": { "type": "string", - "description": "Backup archive ID.", - "x-example": "did8jx6ws45jana098ab7" + "description": "Application ID this secret belongs to.", + "x-example": "5e5ea5c16897e" }, - "policyId": { + "secret": { "type": "string", - "description": "Backup policy ID.", - "x-example": "did8jx6ws45jana098ab7" + "description": "Always empty. The application client secret is returned only once, in the response of the createSecret method.", + "x-example": "" }, - "status": { + "hint": { "type": "string", - "description": "The status of the restoration. Possible values: pending, downloading, processing, completed, failed.", - "x-example": "completed" + "description": "Last few characters of the client secret, used to help identify it.", + "x-example": "f5c6c7" }, - "startedAt": { + "createdById": { "type": "string", - "description": "The backup start time.", - "x-example": "2020-10-15T06:38:00.000+00:00" + "description": "ID of the user who created the secret.", + "x-example": "5e5ea5c16897e" }, - "migrationId": { + "createdByName": { "type": "string", - "description": "Migration ID.", - "x-example": "did8jx6ws45jana098ab7" - }, - "services": { - "type": "array", - "description": "The services that are backed up by this policy.", - "items": { - "type": "string" - }, - "x-example": "['databases', 'storage']" - }, - "resources": { - "type": "array", - "description": "The resources that are backed up by this policy.", - "items": { - "type": "string" - }, - "x-example": "['databases', 'collections', 'attributes', 'indexes']" + "description": "Name of the user who created the secret.", + "x-example": "Walter White" }, - "options": { + "lastAccessedAt": { "type": "string", - "description": "Optional data in key-value object. ", - "x-example": "{databases.database[{oldId, newId, newName, newSpecification}]}" + "description": "Time the secret was last used for authentication in ISO 8601 format. Null if never used.", + "x-example": "2020-10-15T06:38:00.000+00:00", + "nullable": true } }, - "required": [ - "$id", - "$createdAt", - "$updatedAt", - "archiveId", - "policyId", - "status", - "startedAt", - "migrationId", - "services", - "resources", - "options" + "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", - "archiveId": "did8jx6ws45jana098ab7", - "policyId": "did8jx6ws45jana098ab7", - "status": "completed", - "startedAt": "2020-10-15T06:38:00.000+00:00", - "migrationId": "did8jx6ws45jana098ab7", - "services": "['databases', 'storage']", - "resources": "['databases', 'collections', 'attributes', 'indexes']", - "options": "{databases.database[{oldId, newId, newName, newSpecification}]}" + "appId": "5e5ea5c16897e", + "secret": "", + "hint": "f5c6c7", + "createdById": "5e5ea5c16897e", + "createdByName": "Walter White", + "lastAccessedAt": "2020-10-15T06:38:00.000+00:00" } }, - "cloudLocale": { - "description": "Locale", + "appSecretPlaintext": { + "description": "AppSecretPlaintext", "type": "object", "properties": { - "ip": { + "$id": { "type": "string", - "description": "User IP address.", - "x-example": "127.0.0.1" + "description": "Secret ID.", + "x-example": "5e5ea5c16897e" }, - "countryCode": { + "$createdAt": { "type": "string", - "description": "Country code in [ISO 3166-1](http:\/\/en.wikipedia.org\/wiki\/ISO_3166-1) two-character format", - "x-example": "US" + "description": "Secret creation time in ISO 8601 format.", + "x-example": "2020-10-15T06:38:00.000+00:00" }, - "country": { + "$updatedAt": { "type": "string", - "description": "Country name. This field support localization.", - "x-example": "United States" + "description": "Secret update time in ISO 8601 format.", + "x-example": "2020-10-15T06:38:00.000+00:00" }, - "continentCode": { + "appId": { "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.", - "x-example": "NA" + "description": "Application ID this secret belongs to.", + "x-example": "5e5ea5c16897e" }, - "continent": { + "secret": { "type": "string", - "description": "Continent name. This field support localization.", - "x-example": "North America" - }, - "eu": { - "type": "boolean", - "description": "True if country is part of the European Union.", - "x-example": false + "description": "Application client secret. Returned only when the secret is created; subsequent reads always return an empty value.", + "x-example": "5f3c8d2a1b9e4f7a6c8b2d1e9f4a7b3c5d8e1f2a9b4c7d6e3f5a8b1c4d7e2f9a" }, - "currency": { + "hint": { "type": "string", - "description": "Currency code in [ISO 4217-1](http:\/\/en.wikipedia.org\/wiki\/ISO_4217) three-character format", - "x-example": "USD" + "description": "Last few characters of the client secret, used to help identify it.", + "x-example": "f5c6c7" }, - "city": { + "createdById": { "type": "string", - "description": "City", - "x-example": "Kathmandu", - "nullable": true + "description": "ID of the user who created the secret.", + "x-example": "5e5ea5c16897e" }, - "timeZone": { + "createdByName": { "type": "string", - "description": "Name of timezone", - "x-example": "Asia\/Kathmandu", - "nullable": true + "description": "Name of the user who created the secret.", + "x-example": "Walter White" }, - "postalCode": { + "lastAccessedAt": { "type": "string", - "description": "Postal code", - "x-example": "44600", - "nullable": true - }, - "latitude": { - "type": "number", - "description": "Latitude", - "x-example": "82.345", - "format": "double", - "nullable": true - }, - "longitude": { - "type": "number", - "description": "Longitude", - "x-example": "82.345", - "format": "double", + "description": "Time the secret was last used for authentication in ISO 8601 format. Null if never used.", + "x-example": "2020-10-15T06:38:00.000+00:00", "nullable": true - }, - "autonomousSystemNumber": { + } + }, + "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": "Autonomous System Number (ASN) of the IP", - "x-example": "15169", - "nullable": true + "description": "Scope value as requested by apps.", + "x-example": "organization:organization.read" }, - "autonomousSystemOrganization": { + "description": { "type": "string", - "description": "Organization that owns the ASN", - "x-example": "GOOGLE", - "nullable": true + "description": "Human-readable description of what the scope grants.", + "x-example": "Access to read the organization" }, - "isp": { + "type": { "type": "string", - "description": "Internet service provider of the IP", - "x-example": "Google", - "nullable": true + "description": "What the scope grants access to. One of `account`, `project`, or `organization`. Only `project` and `organization` scopes are installable.", + "x-example": "organization" }, - "connectionType": { + "category": { "type": "string", - "description": "Connection type of the IP (e.g. cable, cellular, corporate)", - "x-example": "cable", - "nullable": true + "description": "Scope category, used to group scopes on consent and installation screens.", + "x-example": "Organization" }, - "connectionUsageType": { + "deprecated": { + "type": "boolean", + "description": "Whether the scope is deprecated. Deprecated scopes can still be requested but should not be offered for new grants.", + "x-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 + } + }, + "oauth2Authorize": { + "description": "OAuth2 Authorize", + "type": "object", + "properties": { + "grantId": { "type": "string", - "description": "User type classification of the IP (e.g. residential, business, hosting)", - "x-example": "residential", - "nullable": true + "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.", + "x-example": "5e5ea5c16897e" }, - "connectionOrganization": { + "redirectUrl": { "type": "string", - "description": "Registered organization of the IP", - "x-example": "Google LLC", - "nullable": true + "description": "URL the end user should be redirected to when the flow can complete without consent. Empty when consent is still required.", + "x-example": "https:\/\/example.com\/callback?code=abcde&state=fghij" } }, "required": [ - "ip", - "countryCode", - "country", - "continentCode", - "continent", - "eu", - "currency" + "grantId", + "redirectUrl" ], "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" + "grantId": "5e5ea5c16897e", + "redirectUrl": "https:\/\/example.com\/callback?code=abcde&state=fghij" } }, - "usageBillingPlan": { - "description": "usageBillingPlan", + "oauth2Approve": { + "description": "OAuth2 Approve", "type": "object", "properties": { - "bandwidth": { - "type": "object", - "description": "Bandwidth additional resources", - "x-example": null, - "allOf": [ - { - "$ref": "#\/components\/schemas\/additionalResource" - } - ] - }, - "executions": { - "type": "object", - "description": "Executions additional resources", - "x-example": null, - "allOf": [ - { - "$ref": "#\/components\/schemas\/additionalResource" - } - ] - }, - "member": { - "type": "object", - "description": "Member additional resources", - "x-example": null, - "allOf": [ - { - "$ref": "#\/components\/schemas\/additionalResource" - } - ] - }, - "realtime": { - "type": "object", - "description": "Realtime additional resources", - "x-example": null, - "allOf": [ - { - "$ref": "#\/components\/schemas\/additionalResource" - } - ] - }, - "realtimeMessages": { - "type": "object", - "description": "Realtime messages additional resources", - "x-example": null, - "allOf": [ - { - "$ref": "#\/components\/schemas\/additionalResource" - } - ] - }, - "realtimeBandwidth": { - "type": "object", - "description": "Realtime bandwidth additional resources", - "x-example": null, - "allOf": [ - { - "$ref": "#\/components\/schemas\/additionalResource" - } - ] - }, - "storage": { - "type": "object", - "description": "Storage additional resources", - "x-example": null, - "allOf": [ - { - "$ref": "#\/components\/schemas\/additionalResource" - } - ] - }, - "users": { - "type": "object", - "description": "User additional resources", - "x-example": null, - "allOf": [ - { - "$ref": "#\/components\/schemas\/additionalResource" - } - ] - }, - "GBHours": { - "type": "object", - "description": "GBHour additional resources", - "x-example": null, - "allOf": [ - { - "$ref": "#\/components\/schemas\/additionalResource" - } - ] - }, - "imageTransformations": { - "type": "object", - "description": "Image transformation additional resources", - "x-example": null, - "allOf": [ - { - "$ref": "#\/components\/schemas\/additionalResource" - } - ] - }, - "credits": { - "type": "object", - "description": "Credits additional resources", - "x-example": null, - "allOf": [ - { - "$ref": "#\/components\/schemas\/additionalResource" - } - ] + "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`.", + "x-example": "https:\/\/example.com\/callback?code=abcde&state=fghij" } }, "required": [ - "bandwidth", - "executions", - "member", - "realtime", - "realtimeMessages", - "realtimeBandwidth", - "storage", - "users", - "GBHours", - "imageTransformations", - "credits" + "redirectUrl" ], "example": { - "bandwidth": null, - "executions": null, - "member": null, - "realtime": null, - "realtimeMessages": null, - "realtimeBandwidth": null, - "storage": null, - "users": null, - "GBHours": null, - "imageTransformations": null, - "credits": null + "redirectUrl": "https:\/\/example.com\/callback?code=abcde&state=fghij" } }, - "usageDataPoint": { - "description": "usageDataPoint", + "oauth2Reject": { + "description": "OAuth2 Reject", "type": "object", "properties": { - "time": { - "type": "string", - "description": "Bucket start timestamp (ISO 8601). When `interval` is omitted this is the request end time, marking the aggregate as-of moment.", - "x-example": "2026-04-09T12:00:00.000+00:00" - }, - "value": { - "type": "integer", - "description": "Aggregated value for the bucket.", - "x-example": 5000, - "format": "int32" - }, - "path": { - "type": "string", - "description": "API endpoint path when broken down by `path`.", - "x-example": "\/v1\/storage\/files", - "nullable": true - }, - "method": { - "type": "string", - "description": "HTTP method when broken down by `method`.", - "x-example": "POST", - "nullable": true - }, - "status": { + "redirectUrl": { "type": "string", - "description": "HTTP status code when broken down by `status`.", - "x-example": "201", - "nullable": true - }, - "service": { + "description": "URL the end user should be redirected to after the grant is rejected, carrying an `access_denied` error.", + "x-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": "API service segment when broken down by `service`.", - "x-example": "storage", - "nullable": true + "description": "Grant ID.", + "x-example": "5e5ea5c16897e" }, - "country": { + "$createdAt": { "type": "string", - "description": "Country code when broken down by `country`.", - "x-example": "us", - "nullable": true + "description": "Grant creation time in ISO 8601 format.", + "x-example": "2020-10-15T06:38:00.000+00:00" }, - "region": { + "$updatedAt": { "type": "string", - "description": "Appwrite region when broken down by `region`.", - "x-example": "fra", - "nullable": true + "description": "Grant update date in ISO 8601 format.", + "x-example": "2020-10-15T06:38:00.000+00:00" }, - "hostname": { + "userId": { "type": "string", - "description": "Caller origin hostname when broken down by `hostname`.", - "x-example": "app.example.com", - "nullable": true + "description": "ID of the user the grant belongs to.", + "x-example": "5e5ea5c16897e" }, - "ip": { + "appId": { "type": "string", - "description": "Caller IP address when broken down by `ip`.", - "x-example": "192.0.2.44", - "nullable": true + "description": "ID of the OAuth2 client (app) the grant was requested for.", + "x-example": "5e5ea5c16897e" }, - "osName": { - "type": "string", - "description": "Operating system name when broken down by `osName`.", - "x-example": "iOS", - "nullable": true + "scopes": { + "type": "array", + "description": "Requested OAuth2 scopes the user is being asked to consent to.", + "items": { + "type": "string" + }, + "x-example": [ + "openid", + "email", + "profile" + ] }, - "clientType": { - "type": "string", - "description": "Client type when broken down by `clientType`.", - "x-example": "browser", - "nullable": true + "resources": { + "type": "array", + "description": "Requested RFC 8707 resource indicators the user is being asked to consent to.", + "items": { + "type": "string" + }, + "x-example": [ + "https:\/\/api.example.com\/" + ] }, - "clientName": { + "authorizationDetails": { "type": "string", - "description": "Client name when broken down by `clientName`.", - "x-example": "Chrome", - "nullable": true + "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.", + "x-example": "[{\"type\":\"calendar\",\"identifier\":\"primary\",\"actions\":[\"read_events\",\"create_event\"]}]" }, - "deviceName": { + "prompt": { "type": "string", - "description": "Device classification when broken down by `deviceName`.", - "x-example": "smartphone", - "nullable": true + "description": "OIDC prompt directive the consent screen should honor. Space-separated list of: login, consent, select_account.", + "x-example": "login" }, - "teamId": { + "redirectUri": { "type": "string", - "description": "Owning team ID when broken down by `teamId`.", - "x-example": "team_abc", - "nullable": true + "description": "Redirect URI the user will be sent to after the flow completes.", + "x-example": "https:\/\/example.com\/callback" }, - "resourceId": { - "type": "string", - "description": "External resource ID when broken down by `resourceId`.", - "x-example": "abc123", - "nullable": true + "authTime": { + "type": "integer", + "description": "Unix timestamp of when the user last authenticated.", + "x-example": 1592981250, + "format": "int32" }, - "resourceType": { + "expire": { "type": "string", - "description": "Resource type when broken down by `resourceType`.", - "x-example": "bucket", - "nullable": true + "description": "Grant expiration time in ISO 8601 format.", + "x-example": "2020-10-15T06:38:00.000+00:00" } }, "required": [ - "time", - "value" + "$id", + "$createdAt", + "$updatedAt", + "userId", + "appId", + "scopes", + "resources", + "authorizationDetails", + "prompt", + "redirectUri", + "authTime", + "expire" ], "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": "fra", - "hostname": "app.example.com", - "ip": "192.0.2.44", - "osName": "iOS", - "clientType": "browser", - "clientName": "Chrome", - "deviceName": "smartphone", - "teamId": "team_abc", - "resourceId": "abc123", - "resourceType": "bucket" + "$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" } }, - "usageEventList": { - "description": "usageEventList", + "oauth2DeviceAuthorization": { + "description": "OAuth2 Device Authorization", "type": "object", "properties": { - "interval": { + "device_code": { + "type": "string", + "description": "Device verification code used by the client to poll the token endpoint.", + "x-example": "5f3c8d2a1b9e4f7a6c8b2d1e9f4a7b3c5d8e1f2a9b4c7d6e3f5a8b1c4d7e2f9a" + }, + "user_code": { + "type": "string", + "description": "Short code the end user enters on the verification page.", + "x-example": "ABCD-EFGH" + }, + "verification_uri": { + "type": "string", + "description": "URL where the end user enters the user code.", + "x-example": "https:\/\/cloud.appwrite.io\/console\/oauth2\/device" + }, + "verification_uri_complete": { "type": "string", - "description": "Time interval size (1h or 1d). Empty when the request omits `interval` \u2014 points then carry the request end time as their as-of marker.", - "x-example": "1d" + "description": "Verification URL with the user code prefilled as a query parameter.", + "x-example": "https:\/\/cloud.appwrite.io\/console\/oauth2\/device?user_code=ABCD-EFGH" }, - "metrics": { - "type": "array", - "description": "One entry per requested metric, each carrying its own points[] time series (sums per bucket \/ dimension over time).", - "items": { - "$ref": "#\/components\/schemas\/usageMetric" - }, - "x-example": "" + "expires_in": { + "type": "integer", + "description": "Lifetime of the device code and user code in seconds.", + "x-example": 900, + "format": "int32" + }, + "interval": { + "type": "integer", + "description": "Minimum polling interval for the token endpoint in seconds.", + "x-example": 5, + "format": "int32" } }, "required": [ - "interval", - "metrics" + "device_code", + "user_code", + "verification_uri", + "verification_uri_complete", + "expires_in", + "interval" ], "example": { - "interval": "1d", - "metrics": "" + "device_code": "5f3c8d2a1b9e4f7a6c8b2d1e9f4a7b3c5d8e1f2a9b4c7d6e3f5a8b1c4d7e2f9a", + "user_code": "ABCD-EFGH", + "verification_uri": "https:\/\/cloud.appwrite.io\/console\/oauth2\/device", + "verification_uri_complete": "https:\/\/cloud.appwrite.io\/console\/oauth2\/device?user_code=ABCD-EFGH", + "expires_in": 900, + "interval": 5 } }, - "usageGaugeList": { - "description": "usageGaugeList", + "oauth2PAR": { + "description": "OAuth2 PAR", "type": "object", "properties": { - "interval": { + "request_uri": { "type": "string", - "description": "Time interval size (1h or 1d). Empty when the request omits `interval` \u2014 points then carry the request end time as their as-of marker.", - "x-example": "1d" + "description": "Authorization request handle to pass to the authorize endpoint.", + "x-example": "urn:appwrite:oauth2:request:5e5ea5c16897e" }, - "metrics": { - "type": "array", - "description": "One entry per requested metric, each carrying its own points[] time series (latest-snapshot per bucket \/ dimension via argMax over time).", - "items": { - "$ref": "#\/components\/schemas\/usageMetric" - }, - "x-example": "" + "expires_in": { + "type": "integer", + "description": "Lifetime of the authorization request handle in seconds.", + "x-example": 600, + "format": "int32" } }, "required": [ - "interval", - "metrics" + "request_uri", + "expires_in" ], "example": { - "interval": "1d", - "metrics": "" + "request_uri": "urn:appwrite:oauth2:request:5e5ea5c16897e", + "expires_in": 600 } }, - "usageMetric": { - "description": "usageMetric", + "oauth2Token": { + "description": "OAuth2 Token", "type": "object", "properties": { - "metric": { + "access_token": { "type": "string", - "description": "Metric key this series describes.", - "x-example": "files.storage" + "description": "OAuth2 access token.", + "x-example": "eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiJ9..." }, - "points": { - "type": "array", - "description": "Data points for this metric, ordered by time ascending. With `interval`, each entry is one bucket; without, each entry is one row of the dimensional or aggregate breakdown.", - "items": { - "$ref": "#\/components\/schemas\/usageDataPoint" - }, - "x-example": "" + "token_type": { + "type": "string", + "description": "OAuth2 token type.", + "x-example": "Bearer" + }, + "expires_in": { + "type": "integer", + "description": "Access token lifetime in seconds.", + "x-example": 3600, + "format": "int32" + }, + "refresh_token": { + "type": "string", + "description": "OAuth2 refresh token.", + "x-example": "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9..." + }, + "scope": { + "type": "string", + "description": "Space-separated scopes granted to the access token.", + "x-example": "openid email profile" + }, + "authorization_details": { + "type": "string", + "description": "Granted RFC 9396 authorization details as a JSON string.", + "x-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.", + "x-example": "eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiJ9...", + "nullable": true } }, "required": [ - "metric", - "points" + "access_token", + "token_type", + "expires_in", + "refresh_token", + "scope" ], "example": { - "metric": "files.storage", - "points": "" + "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..." } }, - "app": { - "description": "App", + "oauth2Consent": { + "description": "OAuth2 Consent", "type": "object", "properties": { "$id": { "type": "string", - "description": "App ID.", + "description": "Consent ID.", "x-example": "5e5ea5c16897e" }, "$createdAt": { "type": "string", - "description": "App creation time in ISO 8601 format.", + "description": "Consent creation time in ISO 8601 format.", "x-example": "2020-10-15T06:38:00.000+00:00" }, "$updatedAt": { "type": "string", - "description": "App update date in ISO 8601 format.", + "description": "Consent update date in ISO 8601 format.", "x-example": "2020-10-15T06:38:00.000+00:00" }, - "name": { - "type": "string", - "description": "Application name.", - "x-example": "My Application" - }, - "description": { - "type": "string", - "description": "Application description shown to users during OAuth2 consent.", - "x-example": "Connect your workspace to My Application." - }, - "clientUri": { - "type": "string", - "description": "Application homepage URL shown to users during OAuth2 consent.", - "x-example": "https:\/\/example.com" - }, - "logoUri": { - "type": "string", - "description": "Application logo URL shown to users during OAuth2 consent.", - "x-example": "https:\/\/example.com\/logo.png" - }, - "privacyPolicyUrl": { - "type": "string", - "description": "Application privacy policy URL shown to users during OAuth2 consent.", - "x-example": "https:\/\/example.com\/privacy" - }, - "termsUrl": { - "type": "string", - "description": "Application terms of service URL shown to users during OAuth2 consent.", - "x-example": "https:\/\/example.com\/terms" - }, - "contacts": { - "type": "array", - "description": "Application support or security contact emails.", - "items": { - "type": "string" - }, - "x-example": [ - "support@example.com" - ] - }, - "tagline": { + "userId": { "type": "string", - "description": "Application tagline shown to users during OAuth2 consent.", - "x-example": "Automate your workspace." - }, - "tags": { - "type": "array", - "description": "Application tags shown to users during OAuth2 consent.", - "items": { - "type": "string" - }, - "x-example": [ - "productivity", - "automation" - ] - }, - "images": { - "type": "array", - "description": "Application image URLs shown to users during OAuth2 consent.", - "items": { - "type": "string" - }, - "x-example": [ - "https:\/\/example.com\/screenshot.png" - ] + "description": "ID of the user the consent belongs to.", + "x-example": "5e5ea5c16897e" }, - "supportUrl": { + "appId": { "type": "string", - "description": "Application support URL shown to users during OAuth2 consent.", - "x-example": "https:\/\/example.com\/support" + "description": "ID of the registered app the consent was given to. Empty for URL-form (CIMD) clients.", + "x-example": "5e5ea5c16897e" }, - "dataDeletionUrl": { + "cimdUrl": { "type": "string", - "description": "Application data deletion URL shown to users during OAuth2 consent.", - "x-example": "https:\/\/example.com\/data-deletion" + "description": "Client ID metadata document URL of the client the consent was given to. Empty for registered apps.", + "x-example": "https:\/\/example.com\/.well-known\/client-metadata.json" }, - "redirectUris": { + "scopes": { "type": "array", - "description": "List of authorized redirect URIs. These URIs can be used to redirect users after they authenticate.", + "description": "OAuth2 scopes the user consented to.", "items": { "type": "string" }, "x-example": [ - "https:\/\/example.com\/callback" + "openid", + "email", + "profile" ] }, - "postLogoutRedirectUris": { + "resources": { "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.", + "description": "RFC 8707 resource indicators the user consented to.", "items": { "type": "string" }, "x-example": [ - "https:\/\/example.com\/logged-out" + "https:\/\/api.example.com\/" ] }, - "enabled": { - "type": "boolean", - "description": "Whether the app is enabled or not.", - "x-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.", - "x-example": "confidential" - }, - "deviceFlow": { - "type": "boolean", - "description": "Whether this client may use the OAuth2 Device Authorization Grant (RFC 8628).", - "x-example": false - }, - "teamId": { + "authorizationDetails": { "type": "string", - "description": "ID of team that owns the application, if owned by team. Otherwise, user ID will be used.", - "x-example": "5e5ea5c16897e" + "description": "Authorization details the user consented to, as a JSON string. Each entry has a `type` plus project-defined fields.", + "x-example": "[{\"type\":\"calendar\",\"identifier\":\"primary\",\"actions\":[\"read_events\",\"create_event\"]}]" }, - "userId": { + "expire": { "type": "string", - "description": "ID of user who owns the application, if owned by user. Otherwise, team ID will be used.", - "x-example": "5e5ea5c16897e" - }, - "secrets": { - "type": "array", - "description": "List of application secrets.", - "items": { - "$ref": "#\/components\/schemas\/appSecret" - }, - "x-example": [] + "description": "Consent expiration time in ISO 8601 format. Empty when the consent has no token-bound expiry yet.", + "x-example": "2020-10-15T06:38:00.000+00:00" } }, "required": [ "$id", "$createdAt", "$updatedAt", - "name", - "description", - "clientUri", - "logoUri", - "privacyPolicyUrl", - "termsUrl", - "contacts", - "tagline", - "tags", - "images", - "supportUrl", - "dataDeletionUrl", - "redirectUris", - "postLogoutRedirectUris", - "enabled", - "type", - "deviceFlow", - "teamId", "userId", - "secrets" + "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", - "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" - ], - "images": [ - "https:\/\/example.com\/screenshot.png" - ], - "supportUrl": "https:\/\/example.com\/support", - "dataDeletionUrl": "https:\/\/example.com\/data-deletion", - "redirectUris": [ - "https:\/\/example.com\/callback" + "userId": "5e5ea5c16897e", + "appId": "5e5ea5c16897e", + "cimdUrl": "https:\/\/example.com\/.well-known\/client-metadata.json", + "scopes": [ + "openid", + "email", + "profile" ], - "postLogoutRedirectUris": [ - "https:\/\/example.com\/logged-out" + "resources": [ + "https:\/\/api.example.com\/" ], - "enabled": true, - "type": "confidential", - "deviceFlow": false, - "teamId": "5e5ea5c16897e", - "userId": "5e5ea5c16897e", - "secrets": [] + "authorizationDetails": "[{\"type\":\"calendar\",\"identifier\":\"primary\",\"actions\":[\"read_events\",\"create_event\"]}]", + "expire": "2020-10-15T06:38:00.000+00:00" } }, - "appSecret": { - "description": "AppSecret", + "oauth2ConsentToken": { + "description": "OAuth2 Consent Token", "type": "object", "properties": { "$id": { "type": "string", - "description": "Secret ID.", + "description": "Token family ID.", "x-example": "5e5ea5c16897e" }, "$createdAt": { "type": "string", - "description": "Secret creation time in ISO 8601 format.", + "description": "Token creation time in ISO 8601 format.", "x-example": "2020-10-15T06:38:00.000+00:00" }, "$updatedAt": { "type": "string", - "description": "Secret update time in ISO 8601 format.", + "description": "Token update date in ISO 8601 format. Refreshing the token family updates this.", "x-example": "2020-10-15T06:38:00.000+00:00" }, - "appId": { + "consentId": { "type": "string", - "description": "Application ID this secret belongs to.", + "description": "ID of the consent the token family was issued under.", "x-example": "5e5ea5c16897e" }, - "secret": { + "userId": { "type": "string", - "description": "Hashed application client secret.", - "x-example": "$argon2i$v=19$m=16,t=2,p=1$MTIzMTIzMTIzMTIzMQ$3\/ZUl3IWERBO2RIm5rHltg" + "description": "ID of the user the token family belongs to.", + "x-example": "5e5ea5c16897e" }, - "hint": { + "appId": { "type": "string", - "description": "Last few characters of the client secret, used to help identify it.", - "x-example": "f5c6c7" + "description": "ID of the registered app the token family was issued to. Empty for URL-form (CIMD) clients.", + "x-example": "5e5ea5c16897e" }, - "createdById": { + "cimdUrl": { "type": "string", - "description": "ID of the user who created the secret.", - "x-example": "5e5ea5c16897e" + "description": "Client ID metadata document URL of the client the token family was issued to. Empty for registered apps.", + "x-example": "https:\/\/example.com\/.well-known\/client-metadata.json" }, - "createdByName": { + "scopes": { + "type": "array", + "description": "OAuth2 scopes granted on the token family.", + "items": { + "type": "string" + }, + "x-example": [ + "openid", + "email", + "profile" + ] + }, + "resources": { + "type": "array", + "description": "RFC 8707 resource indicators granted on the token family.", + "items": { + "type": "string" + }, + "x-example": [ + "https:\/\/api.example.com\/" + ] + }, + "authorizationDetails": { "type": "string", - "description": "Name of the user who created the secret.", - "x-example": "Walter White" + "description": "Authorization details granted on the token family, as a JSON string. Each entry has a `type` plus project-defined fields.", + "x-example": "[{\"type\":\"calendar\",\"identifier\":\"primary\",\"actions\":[\"read_events\",\"create_event\"]}]" }, - "lastAccessedAt": { + "expire": { "type": "string", - "description": "Time the secret was last used for authentication in ISO 8601 format. Null if never used.", - "x-example": "2020-10-15T06:38:00.000+00:00", - "nullable": true + "description": "Expiration time of the current access token of this family in ISO 8601 format.", + "x-example": "2020-10-15T06:38:00.000+00:00" } }, "required": [ "$id", "$createdAt", "$updatedAt", + "consentId", + "userId", "appId", - "secret", - "hint", - "createdById", - "createdByName" + "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", - "secret": "$argon2i$v=19$m=16,t=2,p=1$MTIzMTIzMTIzMTIzMQ$3\/ZUl3IWERBO2RIm5rHltg", - "hint": "f5c6c7", - "createdById": "5e5ea5c16897e", - "createdByName": "Walter White", - "lastAccessedAt": "2020-10-15T06:38:00.000+00:00" + "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" } }, - "appSecretPlaintext": { - "description": "AppSecretPlaintext", + "wafRule": { + "description": "WafRule", "type": "object", "properties": { "$id": { "type": "string", - "description": "Secret ID.", - "x-example": "5e5ea5c16897e" + "description": "Rule ID.", + "x-example": "wafRule1" }, "$createdAt": { "type": "string", - "description": "Secret creation time in ISO 8601 format.", + "description": "WAF rule creation time in ISO 8601 format.", "x-example": "2020-10-15T06:38:00.000+00:00" }, "$updatedAt": { "type": "string", - "description": "Secret update time in ISO 8601 format.", + "description": "WAF rule last update time in ISO 8601 format.", "x-example": "2020-10-15T06:38:00.000+00:00" }, - "appId": { + "name": { "type": "string", - "description": "Application ID this secret belongs to.", - "x-example": "5e5ea5c16897e" + "description": "Human friendly rule name.", + "x-example": "Block anonymous POST traffic" }, - "secret": { + "description": { "type": "string", - "description": "Application client secret. Returned in full only when the secret is created; subsequent reads return a masked value.", - "x-example": "5f3c8d2a1b9e4f7a6c8b2d1e9f4a7b3c5d8e1f2a9b4c7d6e3f5a8b1c4d7e2f9a" + "description": "Optional description for the rule.", + "x-example": "Blocks anonymous POST calls to \/v1\/graphql" }, - "hint": { + "teamId": { "type": "string", - "description": "Last few characters of the client secret, used to help identify it.", - "x-example": "f5c6c7" + "description": "Team ID.", + "x-example": "5e5ea5c16897e" }, - "createdById": { + "projectId": { "type": "string", - "description": "ID of the user who created the secret.", - "x-example": "5e5ea5c16897e" + "description": "Project ID.", + "x-example": "cloudConsole" }, - "createdByName": { + "resourceType": { "type": "string", - "description": "Name of the user who created the secret.", - "x-example": "Walter White" + "description": "Resource type the rule is scoped to.", + "x-example": "functions" }, - "lastAccessedAt": { + "resourceId": { "type": "string", - "description": "Time the secret was last used for authentication in ISO 8601 format. Null if never used.", - "x-example": "2020-10-15T06:38:00.000+00:00", - "nullable": true + "description": "Resource identifier. Empty for API-wide rules.", + "x-example": "functionId" + }, + "action": { + "type": "string", + "description": "Action performed when the rule matches.", + "x-example": "deny", + "enum": [ + "bypass", + "deny", + "challenge", + "rateLimit", + "redirect" + ], + "x-enum-name": "WafRuleAction" + }, + "priority": { + "type": "integer", + "description": "Evaluation priority. Lower values execute earlier.", + "x-example": 100, + "format": "int32" + }, + "enabled": { + "type": "boolean", + "description": "Whether the rule is active.", + "x-example": true + }, + "conditions": { + "type": "object", + "additionalProperties": true, + "description": "List of conditions evaluated for this rule.", + "x-example": [ + { + "method": "equal", + "attribute": "ip", + "values": [ + "127.0.0.1" + ] + } + ] + }, + "config": { + "type": "object", + "additionalProperties": true, + "description": "Action specific configuration.", + "x-example": [] } }, "required": [ "$id", "$createdAt", "$updatedAt", - "appId", - "secret", - "hint", - "createdById", - "createdByName" + "name", + "description", + "teamId", + "projectId", + "resourceType", + "resourceId", + "action", + "priority", + "enabled", + "conditions", + "config" ], "example": { - "$id": "5e5ea5c16897e", + "$id": "wafRule1", "$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" + "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": [] } }, - "oauth2Authorize": { - "description": "OAuth2 Authorize", + "wafRuleBypass": { + "description": "WafRuleBypass", "type": "object", "properties": { - "grantId": { + "$id": { "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.", - "x-example": "5e5ea5c16897e" + "description": "Rule ID.", + "x-example": "wafRule1" }, - "redirectUrl": { + "$createdAt": { "type": "string", - "description": "URL the end user should be redirected to when the flow can complete without consent. Empty when consent is still required.", - "x-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": { + "description": "WAF rule creation time in ISO 8601 format.", + "x-example": "2020-10-15T06:38:00.000+00:00" + }, + "$updatedAt": { "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`.", - "x-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": { + "description": "WAF rule last update time in ISO 8601 format.", + "x-example": "2020-10-15T06:38:00.000+00:00" + }, + "name": { + "type": "string", + "description": "Human friendly rule name.", + "x-example": "Block anonymous POST traffic" + }, + "description": { + "type": "string", + "description": "Optional description for the rule.", + "x-example": "Blocks anonymous POST calls to \/v1\/graphql" + }, + "teamId": { + "type": "string", + "description": "Team ID.", + "x-example": "5e5ea5c16897e" + }, + "projectId": { + "type": "string", + "description": "Project ID.", + "x-example": "cloudConsole" + }, + "resourceType": { "type": "string", - "description": "URL the end user should be redirected to after the grant is rejected, carrying an `access_denied` error.", - "x-example": "https:\/\/example.com\/callback?error=access_denied&state=fghij" + "description": "Resource type the rule is scoped to.", + "x-example": "functions" + }, + "resourceId": { + "type": "string", + "description": "Resource identifier. Empty for API-wide rules.", + "x-example": "functionId" + }, + "action": { + "type": "string", + "description": "Action performed when the rule matches.", + "x-example": "deny", + "enum": [ + "bypass", + "deny", + "challenge", + "rateLimit", + "redirect" + ], + "x-enum-name": "WafRuleAction" + }, + "priority": { + "type": "integer", + "description": "Evaluation priority. Lower values execute earlier.", + "x-example": 100, + "format": "int32" + }, + "enabled": { + "type": "boolean", + "description": "Whether the rule is active.", + "x-example": true + }, + "conditions": { + "type": "object", + "additionalProperties": true, + "description": "List of conditions evaluated for this rule.", + "x-example": [ + { + "method": "equal", + "attribute": "ip", + "values": [ + "127.0.0.1" + ] + } + ] + }, + "config": { + "type": "object", + "additionalProperties": true, + "description": "Action specific configuration.", + "x-example": [] } }, "required": [ - "redirectUrl" + "$id", + "$createdAt", + "$updatedAt", + "name", + "description", + "teamId", + "projectId", + "resourceType", + "resourceId", + "action", + "priority", + "enabled", + "conditions", + "config" ], "example": { - "redirectUrl": "https:\/\/example.com\/callback?error=access_denied&state=fghij" + "$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": [] } }, - "oauth2Grant": { - "description": "OAuth2 Grant", + "wafRuleDeny": { + "description": "WafRuleDeny", "type": "object", "properties": { "$id": { "type": "string", - "description": "Grant ID.", - "x-example": "5e5ea5c16897e" + "description": "Rule ID.", + "x-example": "wafRule1" }, "$createdAt": { "type": "string", - "description": "Grant creation time in ISO 8601 format.", + "description": "WAF rule creation time in ISO 8601 format.", "x-example": "2020-10-15T06:38:00.000+00:00" }, "$updatedAt": { "type": "string", - "description": "Grant update date in ISO 8601 format.", + "description": "WAF rule last update time in ISO 8601 format.", "x-example": "2020-10-15T06:38:00.000+00:00" }, - "userId": { + "name": { "type": "string", - "description": "ID of the user the grant belongs to.", - "x-example": "5e5ea5c16897e" + "description": "Human friendly rule name.", + "x-example": "Block anonymous POST traffic" }, - "appId": { + "description": { "type": "string", - "description": "ID of the OAuth2 client (app) the grant was requested for.", - "x-example": "5e5ea5c16897e" + "description": "Optional description for the rule.", + "x-example": "Blocks anonymous POST calls to \/v1\/graphql" }, - "scopes": { - "type": "array", - "description": "Requested OAuth2 scopes the user is being asked to consent to.", - "items": { - "type": "string" - }, - "x-example": [ - "openid", - "email", - "profile" - ] + "teamId": { + "type": "string", + "description": "Team ID.", + "x-example": "5e5ea5c16897e" }, - "resources": { - "type": "array", - "description": "Requested RFC 8707 resource indicators the user is being asked to consent to.", - "items": { - "type": "string" - }, - "x-example": [ - "https:\/\/api.example.com\/" - ] + "projectId": { + "type": "string", + "description": "Project ID.", + "x-example": "cloudConsole" }, - "authorizationDetails": { + "resourceType": { "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.", - "x-example": "[{\"type\":\"calendar\",\"identifier\":\"primary\",\"actions\":[\"read_events\",\"create_event\"]}]" + "description": "Resource type the rule is scoped to.", + "x-example": "functions" }, - "prompt": { + "resourceId": { "type": "string", - "description": "OIDC prompt directive the consent screen should honor. Space-separated list of: login, consent, select_account.", - "x-example": "login" + "description": "Resource identifier. Empty for API-wide rules.", + "x-example": "functionId" }, - "redirectUri": { + "action": { "type": "string", - "description": "Redirect URI the user will be sent to after the flow completes.", - "x-example": "https:\/\/example.com\/callback" + "description": "Action performed when the rule matches.", + "x-example": "deny", + "enum": [ + "bypass", + "deny", + "challenge", + "rateLimit", + "redirect" + ], + "x-enum-name": "WafRuleAction" }, - "authTime": { + "priority": { "type": "integer", - "description": "Unix timestamp of when the user last authenticated.", - "x-example": 1592981250, + "description": "Evaluation priority. Lower values execute earlier.", + "x-example": 100, "format": "int32" }, - "expire": { - "type": "string", - "description": "Grant expiration time in ISO 8601 format.", - "x-example": "2020-10-15T06:38:00.000+00:00" + "enabled": { + "type": "boolean", + "description": "Whether the rule is active.", + "x-example": true + }, + "conditions": { + "type": "object", + "additionalProperties": true, + "description": "List of conditions evaluated for this rule.", + "x-example": [ + { + "method": "equal", + "attribute": "ip", + "values": [ + "127.0.0.1" + ] + } + ] + }, + "config": { + "type": "object", + "additionalProperties": true, + "description": "Action specific configuration.", + "x-example": [] } }, "required": [ "$id", "$createdAt", "$updatedAt", - "userId", - "appId", - "scopes", - "resources", - "authorizationDetails", - "prompt", - "redirectUri", - "authTime", - "expire" + "name", + "description", + "teamId", + "projectId", + "resourceType", + "resourceId", + "action", + "priority", + "enabled", + "conditions", + "config" ], "example": { - "$id": "5e5ea5c16897e", + "$id": "wafRule1", "$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\/" + "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" + ] + } ], - "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" + "config": [] } }, - "oauth2DeviceAuthorization": { - "description": "OAuth2 Device Authorization", + "wafRuleRateLimit": { + "description": "WafRuleRateLimit", "type": "object", "properties": { - "device_code": { + "$id": { "type": "string", - "description": "Device verification code used by the client to poll the token endpoint.", - "x-example": "5f3c8d2a1b9e4f7a6c8b2d1e9f4a7b3c5d8e1f2a9b4c7d6e3f5a8b1c4d7e2f9a" + "description": "Rule ID.", + "x-example": "wafRule1" }, - "user_code": { + "$createdAt": { "type": "string", - "description": "Short code the end user enters on the verification page.", - "x-example": "ABCD-EFGH" + "description": "WAF rule creation time in ISO 8601 format.", + "x-example": "2020-10-15T06:38:00.000+00:00" }, - "verification_uri": { + "$updatedAt": { "type": "string", - "description": "URL where the end user enters the user code.", - "x-example": "https:\/\/cloud.appwrite.io\/console\/oauth2\/device" + "description": "WAF rule last update time in ISO 8601 format.", + "x-example": "2020-10-15T06:38:00.000+00:00" }, - "verification_uri_complete": { + "name": { "type": "string", - "description": "Verification URL with the user code prefilled as a query parameter.", - "x-example": "https:\/\/cloud.appwrite.io\/console\/oauth2\/device?user_code=ABCD-EFGH" + "description": "Human friendly rule name.", + "x-example": "Block anonymous POST traffic" }, - "expires_in": { + "description": { + "type": "string", + "description": "Optional description for the rule.", + "x-example": "Blocks anonymous POST calls to \/v1\/graphql" + }, + "teamId": { + "type": "string", + "description": "Team ID.", + "x-example": "5e5ea5c16897e" + }, + "projectId": { + "type": "string", + "description": "Project ID.", + "x-example": "cloudConsole" + }, + "resourceType": { + "type": "string", + "description": "Resource type the rule is scoped to.", + "x-example": "functions" + }, + "resourceId": { + "type": "string", + "description": "Resource identifier. Empty for API-wide rules.", + "x-example": "functionId" + }, + "action": { + "type": "string", + "description": "Action performed when the rule matches.", + "x-example": "deny", + "enum": [ + "bypass", + "deny", + "challenge", + "rateLimit", + "redirect" + ], + "x-enum-name": "WafRuleAction" + }, + "priority": { "type": "integer", - "description": "Lifetime of the device code and user code in seconds.", - "x-example": 900, + "description": "Evaluation priority. Lower values execute earlier.", + "x-example": 100, + "format": "int32" + }, + "enabled": { + "type": "boolean", + "description": "Whether the rule is active.", + "x-example": true + }, + "conditions": { + "type": "object", + "additionalProperties": true, + "description": "List of conditions evaluated for this rule.", + "x-example": [ + { + "method": "equal", + "attribute": "ip", + "values": [ + "127.0.0.1" + ] + } + ] + }, + "config": { + "type": "object", + "additionalProperties": true, + "description": "Action specific configuration.", + "x-example": [] + }, + "limit": { + "type": "integer", + "description": "Maximum number of matching requests allowed for the given interval.", + "x-example": 1000, "format": "int32" }, "interval": { "type": "integer", - "description": "Minimum polling interval for the token endpoint in seconds.", - "x-example": 5, + "description": "Interval in seconds for the rate limit window.", + "x-example": 60, "format": "int32" } }, "required": [ - "device_code", - "user_code", - "verification_uri", - "verification_uri_complete", - "expires_in", + "$id", + "$createdAt", + "$updatedAt", + "name", + "description", + "teamId", + "projectId", + "resourceType", + "resourceId", + "action", + "priority", + "enabled", + "conditions", + "config", + "limit", "interval" ], "example": { - "device_code": "5f3c8d2a1b9e4f7a6c8b2d1e9f4a7b3c5d8e1f2a9b4c7d6e3f5a8b1c4d7e2f9a", - "user_code": "ABCD-EFGH", - "verification_uri": "https:\/\/cloud.appwrite.io\/console\/oauth2\/device", - "verification_uri_complete": "https:\/\/cloud.appwrite.io\/console\/oauth2\/device?user_code=ABCD-EFGH", - "expires_in": 900, - "interval": 5 + "$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 } }, - "oauth2PAR": { - "description": "OAuth2 PAR", + "wafRuleRedirect": { + "description": "WafRuleRedirect", "type": "object", "properties": { - "request_uri": { + "$id": { "type": "string", - "description": "Authorization request handle to pass to the authorize endpoint.", - "x-example": "urn:appwrite:oauth2:request:5e5ea5c16897e" + "description": "Rule ID.", + "x-example": "wafRule1" }, - "expires_in": { + "$createdAt": { + "type": "string", + "description": "WAF rule creation time in ISO 8601 format.", + "x-example": "2020-10-15T06:38:00.000+00:00" + }, + "$updatedAt": { + "type": "string", + "description": "WAF rule last update time in ISO 8601 format.", + "x-example": "2020-10-15T06:38:00.000+00:00" + }, + "name": { + "type": "string", + "description": "Human friendly rule name.", + "x-example": "Block anonymous POST traffic" + }, + "description": { + "type": "string", + "description": "Optional description for the rule.", + "x-example": "Blocks anonymous POST calls to \/v1\/graphql" + }, + "teamId": { + "type": "string", + "description": "Team ID.", + "x-example": "5e5ea5c16897e" + }, + "projectId": { + "type": "string", + "description": "Project ID.", + "x-example": "cloudConsole" + }, + "resourceType": { + "type": "string", + "description": "Resource type the rule is scoped to.", + "x-example": "functions" + }, + "resourceId": { + "type": "string", + "description": "Resource identifier. Empty for API-wide rules.", + "x-example": "functionId" + }, + "action": { + "type": "string", + "description": "Action performed when the rule matches.", + "x-example": "deny", + "enum": [ + "bypass", + "deny", + "challenge", + "rateLimit", + "redirect" + ], + "x-enum-name": "WafRuleAction" + }, + "priority": { "type": "integer", - "description": "Lifetime of the authorization request handle in seconds.", - "x-example": 600, + "description": "Evaluation priority. Lower values execute earlier.", + "x-example": 100, + "format": "int32" + }, + "enabled": { + "type": "boolean", + "description": "Whether the rule is active.", + "x-example": true + }, + "conditions": { + "type": "object", + "additionalProperties": true, + "description": "List of conditions evaluated for this rule.", + "x-example": [ + { + "method": "equal", + "attribute": "ip", + "values": [ + "127.0.0.1" + ] + } + ] + }, + "config": { + "type": "object", + "additionalProperties": true, + "description": "Action specific configuration.", + "x-example": [] + }, + "location": { + "type": "string", + "description": "Target location for the redirect.", + "x-example": "\/maintenance" + }, + "statusCode": { + "type": "integer", + "description": "HTTP status code used for the redirect.", + "x-example": 301, "format": "int32" } }, "required": [ - "request_uri", - "expires_in" + "$id", + "$createdAt", + "$updatedAt", + "name", + "description", + "teamId", + "projectId", + "resourceType", + "resourceId", + "action", + "priority", + "enabled", + "conditions", + "config", + "location", + "statusCode" ], "example": { - "request_uri": "urn:appwrite:oauth2:request:5e5ea5c16897e", - "expires_in": 600 + "$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 } }, - "oauth2Token": { - "description": "OAuth2 Token", + "wafRuleList": { + "description": "WAF rule list", "type": "object", "properties": { - "access_token": { - "type": "string", - "description": "OAuth2 access token.", - "x-example": "eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiJ9..." - }, - "token_type": { - "type": "string", - "description": "OAuth2 token type.", - "x-example": "Bearer" - }, - "expires_in": { + "total": { "type": "integer", - "description": "Access token lifetime in seconds.", - "x-example": 3600, + "description": "Total number of rules that matched your query.", + "x-example": 5, "format": "int32" }, - "refresh_token": { - "type": "string", - "description": "OAuth2 refresh token.", - "x-example": "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9..." - }, - "scope": { - "type": "string", - "description": "Space-separated scopes granted to the access token.", - "x-example": "openid email profile" - }, - "authorization_details": { - "type": "string", - "description": "Granted RFC 9396 authorization details as a JSON string.", - "x-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.", - "x-example": "eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiJ9...", - "nullable": true + "rules": { + "type": "array", + "description": "List of rules.", + "items": { + "$ref": "#\/components\/schemas\/wafRule" + }, + "x-example": "" } }, "required": [ - "access_token", - "token_type", - "expires_in", - "refresh_token", - "scope" + "total", + "rules" ], "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..." + "total": 5, + "rules": "" } }, "oauth2Project": { @@ -83187,6 +94420,62 @@ "organizations": "" } }, + "oauth2ConsentList": { + "description": "OAuth2 consents list", + "type": "object", + "properties": { + "total": { + "type": "integer", + "description": "Total number of consents that matched your query.", + "x-example": 5, + "format": "int32" + }, + "consents": { + "type": "array", + "description": "List of consents.", + "items": { + "$ref": "#\/components\/schemas\/oauth2Consent" + }, + "x-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.", + "x-example": 5, + "format": "int32" + }, + "tokens": { + "type": "array", + "description": "List of tokens.", + "items": { + "$ref": "#\/components\/schemas\/oauth2ConsentToken" + }, + "x-example": "" + } + }, + "required": [ + "total", + "tokens" + ], + "example": { + "total": 5, + "tokens": "" + } + }, "activityEventList": { "description": "Activity event list", "type": "object", @@ -83299,6 +94588,34 @@ "restorations": "" } }, + "dedicatedDatabaseList": { + "description": "Dedicated databases list", + "type": "object", + "properties": { + "total": { + "type": "integer", + "description": "Total number of databases that matched your query.", + "x-example": 5, + "format": "int32" + }, + "databases": { + "type": "array", + "description": "List of databases.", + "items": { + "$ref": "#\/components\/schemas\/dedicatedDatabase" + }, + "x-example": "" + } + }, + "required": [ + "total", + "databases" + ], + "example": { + "total": 5, + "databases": "" + } + }, "appsList": { "description": "Apps list", "type": "object", @@ -83354,6 +94671,34 @@ "total": 5, "secrets": "" } + }, + "appScopeList": { + "description": "App scopes list", + "type": "object", + "properties": { + "total": { + "type": "integer", + "description": "Total number of scopes that matched your query.", + "x-example": 5, + "format": "int32" + }, + "scopes": { + "type": "array", + "description": "List of scopes.", + "items": { + "$ref": "#\/components\/schemas\/appScope" + }, + "x-example": "" + } + }, + "required": [ + "total", + "scopes" + ], + "example": { + "total": 5, + "scopes": "" + } } }, "securitySchemes": {